Acara KKN tadi siang terasa agak berbeda dibanding hari-hari sebelumnya, walaupun sama-sama membosankan juga. Diawali dengan hadir lebih awal dari jadwal yang sudah disepakati, karena pak dosen pembimbing akan memberikan sedikit pencerahan dan motivasi untuk jiwa-jiwa yang sedang Galau #eeaaa. Dilanjutkan dengan memberikan pelatihan komputer kepada pegawai di kecamatan dan lumayan susah mengajarkan pegawai yang rata-rata sudah berkepala 3 itu. Dan sialnya, saya malah kebagian untuk mengajarkan pegawai yang kurang gesit (baca : LOLA). Syukurnya waktu berlalu dengan cepat, pelatihan yang berjalan alon-alon tersebut akhirnya selesai juga. Mampir ke pak Giras untuk mengisi perut dan saya dipanggil ke ruang server untuk membantu “Sunan Jogo Server”. Lumayanlah, ada tempat untuk numpang donlod SDK Android yang dari tadi malam gagal terus saya donlod dengan koneksi modem cap keong.
Lagi enak-enaknya donlod SDK, tiba-tiba ada yang ngChat via YM dan bertanya cara untuk membuat sebuah permalink di CodeIgniter. “Apaan tuh permalink…???”. Setau saya, permalink adalah sebuah link yang mudah dibaca dan biasanya diambil dari judul artikel yang terdapat pada link tersebut. Permalink banyak digunakan untuk meningkatkan kualitas SEO sebuah website di mesin pencari, otomatis link url terlihat lebih cantik (secantik ayu ting-ting). Nah, pada postingan kali ini saya akan membahas cara membuat permalink di CodeIgniter, cekidot gan.
1. Agar bisa digunakan berulang-ulang dan tanpa membuat kode yang sam lagi, saya buatkan file helper yang berfungsi untuk menangani permalink ini. Simpan dengan nama permalink_helper.php di folder application/helpers.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); if ( ! function_exists('set_permalink')) { function set_permalink($id,$content) { $karakter = array ('{','}',')','(','|','`','~','!','@','%','$','^','&','*','=','?','+','-','/','\\',',','.','#',':',';','\'','"','[',']'); $hapus_karakter_aneh = strtolower(str_replace($karakter,"",$content)); $tambah_strip = strtolower(str_replace(' ', '-', $hapus_karakter_aneh)); $link_akhir = $id.'-'.$tambah_strip; return $link_akhir; } }
2. Selanjutnya kita buat sebuah controller yang memuat dua buah function, dan jangan lupa di bagian __construct() panggil file helper yang telah kita buat tadi.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Permalink extends CI_Controller { function __construct() { parent::__construct(); $this->load->model('permalink_model'); $this->load->helper('permalink_helper'); } function index() { $data["artikel"] = $this->permalink_model->semua_artikel(); $this->load->view('permalink/home',$data); } function detail() { $kode=''; if ($this->uri->segment(3) === FALSE) { $kode=''; } else { $kode = $this->uri->segment(3); } $p_kode = explode("-",$kode); $data["artikel"] = $this->permalink_model->detail_artikel($p_kode[0]); $this->load->view('permalink/detail',$data); } }
3. Jangan lupa untuk membuat sebuah model untuk memanggil query-query database, sama dengan file controller, cukup hanya 2 buah functions.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); Class permalink_model extends CI_Model { function __construct() { parent::__construct(); } function semua_artikel() { $q = $this->db->query("select * from tbl_content"); return $q; } function detail_artikel($id) { $q = $this->db->query("select * from tbl_content where id_content='$id'"); return $q; } }
4. Dan yang terakhir ialah membuat 2 buah file view, home.php dan detail.php.
home.php
<!DOCTYPE html> <html lang="en"> <head> <title>Contoh Permalink Artikel pada CodeIgniter</title> </head> <body> <?php foreach($artikel->result_array() as $a) { $link = set_permalink($a['id_content'],$a['judul_content']); echo '<a href="'.base_url().'permalink/detail/'.$link.'"><h1>'.$a['judul_content'].'</h1></a>'; echo '<code>'.strip_tags(substr($a['content'],0,400)).'</code>'; } ?> </body> </html>
detail.php
<!DOCTYPE html> <html lang="en"> <head> <title>Contoh Permalink Artikel pada CodeIgniter</title> </head> <body> <?php foreach($artikel->result_array() as $a) { echo '<h1>'.$a['judul_content'].'</h1>'; echo '<code>'.nl2br($a['content']).'</code>'; } ?> </body> </html>
Agar lebih SEO friendly, index.php saya hilangkan dengan menggunakan file .htaccess. Sebenarnya permalink yang saya paparkan kali ini gabungan dari kode content dengan judul content, dimana judul content sudah saya berikan proses replace untuk menghilangkan karakter-karakter aneh dengan fungsi milik php (str_replace()). OK deh, semoga sedikit tips ini bisa bermanfaat untuk rekan-rekan yang kebetulan ingin menambahkan permalink pada website yang sedang dibuat.
Happy Blogging and Keep Coding
Cheerrrssโฆ.!!!!
mantab gan..
mas, boleh tau imelnya ?
saya mau tanya ttg implementasi accordion menu dari database, saya niubi abis mas dan butuh bimbingan ๐
langsung ke alamat imel saya aja ya mas : mulki_akbar@yahoo.com atau mq.akbar@gmail.com
thx & wassalam,
chat via YM aja mas brow, saya jarang buka email.. ๐
itu YM saya setia nangkring di widget kanan bawah…
[SHARE]kalo pake helper yang url_title() kan dah ada mas? jadi gak usah pusing pake gituan??
Ini maksudnya apa sih?
Permalink biasa saya pakai di WordPress
Permalink di CI ini akan menghasilkan URL yang seperti apa?
misal URL saya
http://web.com/post/detail/1/aku-cinta-ibu
apa bisa menjadi
http://web.com/aku-cinta-ibu
??
saya biasa pake url_title() saja untuk aku-cinta-ibu
heee,,
iya, maksud saya linknya berubah jadi http://web.com/post/detail/1/aku-cinta-ibu
makasi atas koreksinya, ini saya coba dulu pas baru belajar CI, blum tau kalo di helper url sudah disediakan url_title(), jadinya iseng buat sendiri ๐
yang ke 2 sama ke 3 itu dikasih nama filenya apa ya ? ^^
Fatal error: Call to a member function query() on a non-object in D:\xampp\htdocs\link\application\models\permalink_model.php on line 11
Kesalahnya apa mas
linkx koq malah jadi ginich mas,,….
http://localhost/link/http//localhost/link/permalink/detail/3-2d–1n-mount-bromo-tour
udah berhasil mas makasich baxaK…..
Thanks ya gan atas sharingnya
thumb :D,
terimakasih
gan gimana yah cara menghilangkan id nya maksudnya disable id nya gimana yah mohon bantunya
sebelumnya thx ๐
ha..ha..newbe baru masuk nih, salam kenal, mantap gan
mantaff running bro !
Terimakasih mas, wajib dicoba nih