Welcome to Abdul Malik Ikhsan's Blog

Simulasi Master Detail dengan Template Parser (CodeIgniter)

Posted in Tutorial PHP by samsonasik on August 28, 2008

Pada materi codeIgniter sebelumnya, kita sudah membahas tentang pagination, di mana di dalamnya pun sudah tampil contoh aplikasi Master Detail,hanya saja, di layer View, masih campur aduk antara coding PHP dan HTML, nah, sekarang, akan kita coba pisahkan coding PHP dan HTML tersebut, yaitu dengan menggunakan library parser yang dimiliki oleh CodeIgniter.
Salah satu kelemahan dari codeIgniter adalah (saya belum menemukan pengindekan dalam view dengan cara parser – red) dalam hal pengindekan di layer view seperti halnya yang bisa kita lakukan di smarty.
Nah, untuk menanggulanginya adalah dengan cara, kita akali di layer Controller dengan memanfaatkan array, hm…, lagi-lagi array ya …, he..he..
Ok, let’s begin :
Kita ambil contoh :
— ada master ‘entries’, berisi title & body
— ada detail entries, kita beri nama ‘comment’, berisi nama & comment.
The Controller :

<?php
//------------SIMULASI MASTER DETAIL-------------//
// @author 	: Abdul Malik Ikhsan
// @thanks to	: CodeIgniter's Forums, Bos2
// @fileName    : parser.php

class Parser extends Controller{
	function __construct(){
		parent::Controller();
	}
	function index(){
			$this->load->library('parser');
			//entries blog...
			$entries = array(
   						array('title' => 'Hallo...', 'body' => 'Namaku Ikhsan'),
   						array('title' => 'Met Pagi...!', 'body' => 'Bagaimana kabar Anda hari ini ?'),
   						array('title' => 'Hai semua :)!', 'body' => 'Apakah Anda sudah sarapan hari ini?'),
						);			

			//sisipkan index lain ke dalam array, kita beri nama no, comment, numcomment misalnya
			foreach ($entries as $key => $entry)
			{
				$no = $key+1;
   				$entries[$key]['no'] = $no;
   				$entries[$key]['comment'] = array(
   								array('nama'=>'samson'.$no,'comment'=>'comment'.$no),
   								array('nama'=>'ryan'.$no,'comment'=>'komentar'.$no)
   								);
   				foreach($entries[$key]['comment'] as $keys => $val){
							$entries[$key]['comment'][$keys]['numcomment'] = $keys + 1;
   				}
			}										

			$this->parser->parse('template', array('blog_entries' => $entries));
	}
}
//------------------End of Class------------------//

The View :

<!-- @filename : template.php -->
{blog_entries}
     Tulisan ke : {no}
     {title} &nbsp;
     {body}  &nbsp;
     <b>Komentar dari tulisan di atas : </b>
     		 {comment}
     		 		{numcomment}. {nama} &nbsp; {comment}
     		 {/comment}
{/blog_entries}

Untuk database tinggal diimplementasikan lebih lanjut saja 🙂

Advertisements

Leave a Reply

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 / Change )

Twitter picture

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

Facebook photo

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

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: