Fork me on GitHub
 Like...


13 Dec
2011
KATEGORI : TUTORIAL CODEIGNITER - Dibaca : 3581 kali
Ditulis oleh :    Ada 13 Komentar Seru

Tutorial CodeIgniter : Membuat Permalink Sederhana Pada Artikel di CodeIgniter

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….!!!!

Download Aplikasi

Tentang Gede Lumbung
Seorang anak SMK yang gak keren, bocah ingusan & kutu kupret yang haus pengen terus belajar segala hal yang baru, makhluk aneh yang tertarik dengan gemerlap dunia Informatika dan Open Source. Pokoknya gak ada yang keren dari bocah lulusan SMK ini.

13 Komentar Seru

  • 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.. :D
      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

  • 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

  • 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 :D

Ayoookkk di-komen brow...