Membuat Tag dengan Codeigniter

Assalamualaykum.. ^^
Disclaimer : Tulisan ini ditujukan bagi para pemula seperti saya agar tidak melupakan ilmu yang telah saya dapatkan :)

Pada postingan kali ini saya akan mengulas tentang cara membuat tag pada suatu aplikasi web yang berbasis php.
Apa itu tag? Tag adalah adalah kata kunci (keyword) yang gunanya untuk mempermudah pengunjung melakukan pencarian artikel atau konten suatu web. Dan yang akan saya jabarkan disini hanya fitur tagnya saja, belum termasuk relasi dengan artikelnya :P *peace

Pada contoh ini saya akan menggunakan framework codeigniter dengan taggly library.

  1. Pastikan bahwa Anda telah mendownload Codeigniter, extract pada folder htdocs wwwatau atau, dalam contoh ini saya me-rename foldernya menjadi belajar_ci.
  2. Download library taggly dan letakkan di folder application/libraries.
  3. Buat database mysql dengan nama : taggly dan satu buah tabel dengan nama tags. Field weight merupakan jumlah banyaknya tag terpakai di artikel (contoh). Isikan beberapa tag dan weightnya misalkan 10 record saja.
    DROP TABLE IF EXISTS `tags`;
    
    CREATE TABLE `tags` (
      `tag_id` int(11) NOT NULL AUTO_INCREMENT,
      `tag_name` varchar(255) DEFAULT NULL,
      `weight` int(11) DEFAULT NULL,
      PRIMARY KEY (`tag_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=latin1;
    

Lakukan konfigurasi pada file-file berikut ini [application/config]:

  • config.php (base url) :

$config['base_url']	= "http://localhost/belajar_ci/";

  • database.php (mengatur koneksi ke database berita secara default) :
    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "taggly";
    $db['default']['dbdriver'] = "mysql";
    $db['default']['dbprefix'] = "";
    $db['default']['pconnect'] = TRUE;
    $db['default']['db_debug'] = TRUE;
    $db['default']['cache_on'] = FALSE;
    $db['default']['cachedir'] = "";
    $db['default']['char_set'] = "utf8";
    $db['default']['dbcollat'] = "utf8_general_ci";
    
  • autoload.php (untuk pemanggilan langsung (autoload) beberapa komponen yang diperlukan seperti library, helper dan model) :

$autoload['libraries'] = array('database','taggly');

$autoload['helper'] = array('url');

$autoload['model'] = array('tagmodel');

  1. Kemudian, kita buat untuk modelnya sebagai berikut, simpan dengan nama tagmodel.php :

<?php
	class Tagmodel extends CI_Model {
		function __construct()
		{
			// Call the Model constructor
			parent::__construct();
		}

		//Get list tag
		function GetListTag()
		{
			$this->db->select('*');
			$this->db->from('tags');
			$getData = $this->db->get();

			if($getData->num_rows() > 0)
				return $getData->result_array();
			else
				return null;
		}

  1. Untuk controllernya, simpan dengan nama tags.php :
    </pre>
    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    
    class Tag extends CI_Controller {
    
    public function index()
     {
     $data['TagClouds'] = $this->tagmodel->GetListTag();
    
     $this->load->vars($data);
     $this->load->view('view_tag');
     }
    }
    
    /* End of file tag.php */
    /* Location: ./application/controllers/tag.php */
    <pre>
  2. Kemudian yang terakhir adalah untuk viewnya, simpan dengan nama view_tag.php

    <?php
            foreach($TagClouds as $tags):
                $tagsArray[] = array($tags['weight'], $tags['tag_name'], '#');
            endforeach;
    
            //Output Taggly Cloud
            echo $this->taggly->cloud($tagsArray);
    ?>
    

Dan hasilnya kira-kira seperti ini (klik pada gambar untuk memperbesar):

Taggly library ini akan mengenerate weight pada tag dan menyesuaikan ukurannya pada tampilan.
Tadinya pengen ditambahin pakai CSS tag atau Jquery Tag Cloud tapi kapan-kapan aja lah ya.. 

5 Komentar

  1. Wah artikelnya mengena banget neh mba, sama dengan yang lagi aku buat, paling tidak aku dapet masukan dari sisi databasenya…

    salam kenal mba, kerja programmer dimana ya ? …

  2. jadi ini mah kita bikin database tag nya yah kak ? tag sebuah postingan, secara otomatis digenerate tag nya oleh taggly nya, bukan tiap postingan kita tentuin sendiri tag nya yang mana … (begitu bukan? apa salah? hehe) … :)

    • tabel tagsnya cuma sebagai referensi aja, kan aku udah bilang di postingannya belum dibuatkan relasi dengan artikelnya :P hehe

  3. mau komentar kok bengong liat postingan ini -___-

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 1.199 pengikut lainnya.