Freelancer's Playground! New knowledges every now and then

9May/082

Output Buffering Untuk Template

Ceritanya saya dikasih script sama client. Script tersebut punya header.php dan footer.php sebagai include untuk, well, template. Nah, oleh client saya, saya disuruh untuk mengimplementasikan template HTML yang dia buat. Lebih jauh, dia juga minta supaya ada interface admin untuk mengubah template tersebut kalau suatu saat sudah bosan. Hmm... buat interface admin sih mudah, yang jadi masalah, file header.php itu meng-include beberapa file berupa menu.php yang isinya berupa file PHP untuk meng-generate menu secara dinamis. Dari sini saya memakai solusi output buffering seperti pada posting sebelumnya tentang logging file transaksi. Potongan scriptnya seperti berikut:

//ini function:
function getHTMLFromInclude($thefile)
{
	ob_start();
	include($thefile);
	$stream = ob_get_contents();
	ob_end_clean();
	return $stream;
}
//ini penggunaannya:
include('template_handler.php');
/*isinya template_handler.php gak usah dijelaskan ya, cuman beberapa baris code deklarasi untuk template saja kok*/

$arrTemplate['{TOPMENU}'] = getHTMLFromInclude('menu.php');
$arrTemplate['{SIDEMENU}'] = getHTMLFromInclude('menuleft.php');

$stream = stripslashes(file_get_contents('templates/t.fp.header.php'));
//ini bagian parsing template tag
foreach($arrTemplate as $template => $value)
{
	$stream = str_replace($template, $value, $stream);
}
echo $stream;

Nah, sekarang di interface admin untuk template, tinggal taruh tag {TOPMENU} sesuai kebutuhan saja, tanpa harus repot-repot dengan include untuk menu.php.

10 Most Popular Search Terms

  • http://zulfikars.org/ Fikar

    Terima Kasih Infonya..
    Salam Kenal mas…

    author reply:Salam kenal juga mas.

  • http://zulfikars.org Fikar

    Terima Kasih Infonya..
    Salam Kenal mas…

    author reply:

    Salam kenal juga mas.