konsep template/theme di CMS

Umumnya disetiap CMS ada fitur yg mengijinkan kita utk menggunakan berbagai template/theme. Penggunaan theme menjadikan salah satu daya pikat CMS, dimana kita bisa dengan mudah merubah tampilan layout/style. Tergantung dari jenis CMS yg kita gunakan, konsep template bisa berbeda-beda . Di artikel ini kita akan membahas sekilas mengenai konsep template di Mambo CMS.

Yg dibahas kali ini bukan mengenai penggunaan template engine ataupun membuat template mambo, tetapi bagaimana konsep dasar pemrograman yg digunakan Mambo untuk meng-handle sistem template agar bisa kita aplikasikan di tempat lain.

Kunci dari konsep template sebenernya cukup sederhana, yaitu menggunakan fungsi2 output buffering. Dengan output buffering, kita bisa menyimpan output apapun yg dikeluarkan utk nantinya kita flush/echo di file template. Perhatikan snippet berikut:

ob_start();

//include modul file
if (isset($_GET['m']) AND is_file($_GET['m'].'.php')) {
	require_once( $_GET['m'].'.php' );
//display default text
} else {
	echo 'halaman depan';
}

$CONTENT = ob_get_contents();

ob_end_clean();

yg penting dari kode diatas adalah penggunaan fungsi ob_start(), ob_get_contents() dan ob_end_clean(). fungsi ob_start akan memulai buffering output, kemudian ob_get_contents akan menyimpan buffer kedalam variabel yg dalam hal ini kita simpan ke variabel $CONTENT. variabel $CONTENT inilah yang akan kita echo di file template. Terakhir kita hapus buffering menggunakan ob_end_clean. Didalam kode diatas juga bisa dilihat bagaimana kita menginclude sebuah file yg menjelaskan konsep modular dengan meng include kan file secara dinamis.

Selanjutnya, buatlah sebuah file php biasa yg berfungsi sebagai template/theme kita. misal kita namakan template.php:

<html>
<body>
<?php
echo $CONTENT;
?>
</body>
</html>

intinya, file template tersebut berfungsi sebagai placeholder dari hasil buffer yg disimpan di variabel $CONTENT. Untuk memahami lebih jelas, buat sebuah file php misalkan index.php dan pastikan file index.php dan template.php berada di direktori yg sama

ob_start();

//include modul file
if (isset($_GET['m']) AND is_file($_GET['m'].'.php')) {
	require_once( $_GET['m'].'.php' );
//display default text
} else {
	echo 'halaman depan';
}

$CONTENT = ob_get_contents();

ob_end_clean();

require_once( 'template.php' );

jadi cukup dengan meng include kan file template.php, kita dapat menggunakan metode penggunaan template/theme seperti di sebuah CMS. Tentu saja konsep ini bisa berbeda-beda tergantung dari jenis CMS. Namun paling tidak, kita bisa sedikit memahami bagaimana mengunakan konsep tersebut secara cepat dan mudah.

happy coding!

About Adi Setiawan

web developer, @startupbali initiator, ubuntu user, proud father. Living in-between space

10. February 2007 by Adi Setiawan
Categories: Mambo CMS, PHP | 1 comment

Leave a Reply

Required fields are marked *

*