Showing posts with label Codeigniter. Show all posts
Showing posts with label Codeigniter. Show all posts

7 December 2015

Membuat Sitemap Website Menggunakan Framework Codeigniter


Apa itu Sitemap ?
         Sitemap adalah salah satu alat bantu untuk para webmaster yang mempermudah dalam pengenalan peta situs di dalam website. Dengan begitu, mesin google dengan mudah menjelajah dan meraih halaman-halaman yang ada di dalamnya. Sama halnya dengan webiste pada umumnya, blog juga memerlukan sitemap agar mesin pencari dengan mudah mendeteksi konten di dalamnya. Dalam sistem sitemap ini pengguna dapat melakukan submit peta web berbasis XML langsung ke Google yang akan membantu Google mengindeks halaman web dengan mudah. [Sumber : Wikipedia]

          Jadi sitemap ini sangat diperlukan jika website anda ingin cepat ter-index oleh mesin pencari seperti Google , Yahoo , Bing dll. Tidak seperti halnya website yang dibangun dari CMS seperti Wordpress (sudah ada plugin otomatis sitemap-nya), kita harus membuat sitemap sendiri. Terus bagaimana meng-generate sitemap yang dinamis(otomatis meng-crawl link-link didalam website) ?.

          Disini saya menggunakan Framework Codeigniter v3.0.3. Kita hanya butuh 1 controller dan 1 view. Cekidot :

Buat controller Seo.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Seo extends CI_Controller {
    function sitemap()
    {
     $query = $this->db->query("SELECT * FROM post ORDER BY id desc");
        //load artikel dr database  
     //print_r($query->result_array());  
     $data1=array();
     foreach ($query->result_array() as $key) {
      $title_url=$key['judul_link'];     
      $data1[] = base_url().'watch/movie/'.$title_url; 
            //Editlah sesuai link single post anda (detail artikel) dll.
            //atau sesuaikan , sehingga bisa mencakup semua link yang ada diwebsite anda.     
     }
        $sitemap = $data1;
        header("Content-Type: text/xml;charset=iso-8859-1");
        $this->load->view("sitemap",array('sitemap' => $sitemap));
    }

}


Buat view sitemap.php
<?= '<?xml version="1.0" encoding="UTF-8" ?>' ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc><?= base_url();?></loc> 
        <priority>1.0</priority>
    </url>
    <?php foreach($sitemap as $url) { ?>
    <url>
        <loc><?= $url ?></loc>
        <priority>0.5</priority>
    </url>
    <?php } ?>
</urlset>


Untuk mengaksesnya, supaya url menjadi .../seo/sitemap.xml. Edit routes.php tambahkan script dibawah ini:
$route['seo/sitemap\.xml'] = "seo/sitemap";

Oke , sudah selesai. Jadinya seperti dibawah ini.
(saran tambahan : url rapikan tanpa index.php dengan .htaccess)


Tinggal taruh URL Sitemap tersebut di 'robots.txt' atau daftarkanURL Sitemap tersebut ke Google Webmaster anda.

Jika kurang jelas dan masih bingung , dibawah ini saya sertakan full project beserta database-nya.
Silahkan Download :
-Link 1 : Download [via mediafire.com | size: 2.3 Mb]

Terimakasih.


2 December 2015

Mengatasi Error 404 Not Found Pada Framework Codeigniter Ketika di Hosting



           Awalnya ketika saya mau mencoba versi Framework Codeigniter versi terbaru , ketika kami menulis ini pada versi 3.0.3 . Website sudah jadi dan saya ingin Hosting-kan di salah satu server hosting Indonesia. Nah aneh nya ketika upload sudah selesai , website saya tidak bisa dibuka dan muncul error 404 Not Found . Nah pasti bingung , kenapa dengan web saya padahal di local komputer saya ok-ok saja, sedangkan Setting configuration nama domain dan database juga sudah benar , apa yang salah????

        Saya coba pun nyari-nyari di Google , dan gak nemu juga. Setelah itu saya coba-coba edit sana edit sini (pake view edit filezilla). Akhirnya nemu juga. Nah di bawah ini saya coba jelaskan.

Nah kenapa Not Found ?
        Simple saja karena masalahnya terletak di penamaan class controller. Kita tahu bahwa pada Codeigniter sebelumnya ketika kita membuat class sebuah controller , nama awal file (ex: iniclass.php)  berhuruf kecil , dan nama class-nya harus berawalan huruf besar ( ex: class Iniclass extends CI_Controller {... ).

         Karena kita sudah terbiasa dari versi yang sebelumnya bahwa menamai file class controller nya memakai huruf kecil di awal dan nama classnya memakai huruf besar diawal. Bedanya versi Code igniter yg terbaru ini ,pattern penamaan file class controller-nya harus besar diawal dan nama class nya jg besar (jadi SAMA , kalau di C.I sebelumnya kan berbeda) . Dan pemanggilan class (mungkin di route.php) dengan huruf kecil semua (ex: $route['default_controller'] = 'iniclass'; ).

Jadi kenapa ?? ya karena si C.I ini tidak bisa memanggil class tersebut karena nama huruf file class controller awal nya kecil atau bisa di bilang class yang dipanggil tidak ada . jadi si C.I tidak memnukan class yang dipanggil dan akhirnya tidak terindex oleh si C.I nya, mangkanya Notfound.

Gimana solusinya ??
Sesuai diatas, ya rubah semua nama file class controller-nya menjadi  besar diawal.
Masalah simple (karena tidak membaca log release) dan penyelesainnya juga sangat mudah, tapi menemukan nya yang susah :'D ...

Ok sekian , maaf kalau tulisan saya ribet. Karena menulis itu susah -_- .
Salam.