نظام قوالب للمستوى المتوسط
يتسائل الكثير من مبرمجى لغة PHP عن كيفية عمل نظام قوالب و قد رأيت من أهمية الموضوع أن أكتب هذا المقال مع أن لكتابة نظام للقوالب هناك العديد من الطرق و لكن هذه الطريقة مبسطة و تفى بغرض الشرح لمفهوم عمل نظام القوالب.
تعالوا فى نظرة مبدئية نتعرف على المتغيرات التى سوف نستخدمها فى ملف main.html و الـPHP:
فى هذا المثال سوف نستخدم < % main %>كمتغير فى ملفات القوالب الـHTML ، و القائمة الآتية بها المتغيرات فى صفحة index.php:
[code]
$main و هو متغير يحتوى على النص المراد عرضه فى ملف القالب
$content بالطبع متغير لنص آخر تريد عرضه فى ملف القالب
$fd
$filename متغير به إسم ملف القالب
$template متغير يتم فيه و عن طريقه إستبدال المتغيرات بالرموز التى سوف نستخدمها فى ملفات القوالب
$action
[/code]
أما الدوال و الأوامر التى سوف نستخدمها ففى القائمة التالية:
[code]
function template();
function home();
fopen
fclose
global
stripslashes
eregi_replace
echo
switch
default:
break:
[/code]
هذا النوع من البرمجة (القوالب) سوف يقوم بإخراج قيمة متغير ما – $main فى المثال – إلى صفحة HTML.
< % main %>
و الآن إفتح ملف HTML جديد وليكن إسمه template.html و ضع داخله الشفرة التالية:
[code]
< code>
<html><body>
<table cellpadding="0" spacepadding="0" border="0">
<tr><td valign=top align=left>
<% main %>
</td></tr>
</table>
</body>
</html>
code>
[/code]
إفتح ملف index.php و ضع فيه الشفرة التالية:
[code]
< ?
function template($content) {
global $main;
$filename = "template.html"; if(!$fd = fopen($filename, "r")) {
$error = 1;
}
else {
$template = fread ($fd, filesize ($filename));
fclose ($fd);
$template = stripslashes($template);
$template = eregi_replace("< % main %>", "$main", $template);
$template = eregi_replace("< % content %>", "$content", $template);
echo "$template";
} } function home() {
global $main;
include ("test.php");
template("$data");
}
switch($action) {
default: // default switch
home();
break;
}
?>
[/code]
و الآن حان دور الملف الذى يحتوى على قيمة المتغير $main و ليكن إسمه test.php :
[code]
< ?
$main .= 'Testing templates take it easy with Zajil';
?>
[/code]

