السلام عليكم و رحمة الله و بركاته ..
نظام قوالب بسيط .. ليس فيه أي تجديد .. فقط استخدم فيه إضافة قالب و تحرير و حذف + شرح لطريقة تكرار جزء محدد من أي قالب ..
أولاً نزرع في القاعدة هذا الجدول الخاص بحفظ القوالب :
كود PHP:
CREATE TABLE template (
id int(10) unsigned NOT NULL auto_increment,
name varchar(30) NOT NULL default '',
html text NOT NULL,
KEY id (id)
) TYPE=MyISAM;
في الملف admin.php ضمن المرفقات ستجد لوحة تحكم بسيطة لإضافة قالب أو تحرير أو حذف
لطباعة قالب معيّن مع استبدال المتغيرات فيه نكتب التالي :
كود PHP:
eval("echo \"". GetTemplate ( 'templatename' ) ."\";");
(templatename تستبدلها باسم القالب)
لتكرار جزء معيّن من القالب .. و في المثال عندي صفحة لعرض اسماء الأعضاء و أريد أن أكرر فقط الجزء الخاص بالأسماء بلا بيانات الصفحة كلها في القالب index
محتويات القالب index
كود PHP:
<html
dir=rtl>
<title>السلام
عليكم</title>
<body bgcolor=#0c0c0c>
<center><b>قائمة
أسماء الأعضاء<br></b>
<loop>
<br>$name
<loop>
</body>
</html>
نلاحظ أولاً أن الجزء الذي أريد تكراره محدد بالوسم <loop> و هو وسم اختياري من اختيارك
الآن أنشئ مصفوفة تقسّم القالب index إلى ثلاثة أجزاء .. الجزء الأول قبل الوسم <loop> الأولى و الجزء الثاني الجزء المكرر و الجزء الثالث بقية القالب ..
أمر انشاء الأقسام :
كود PHP:
$pindex= explode ("<loop>",GetTemplate ( index));
$pindex[0] للجزء الأول
$pindex[1] للجزء المكرر
$pindex[2] للجزء الثالث
فلنفترض كمثال أن الأسماء مخزّنة في القاعدة في جدول اسمه names
محتويات الملف و لاحظ فيه أن العنصر الثاني من المصفوفة يقع داخل حلقة تكرار و لاحظ أن هناك دالة في أول الملف ضرورية جداً لاستخراج القوالب من قاعدة البيانات و اسمها GetTemplate :
كود PHP:
<?
include("c/config.php");
//
function GetTemplate ($Name) {
$Sql = "select * from template Where name = '$Name'
";
$Result = mysql_query($Sql);
while ($Row = mysql_fetch_array($Result))
{
extract($Row);
$html = addslashes("$html");
}
return ($html);
}
//
eval("echo \"". $pindex[0] ."\";");
$Sql = "select * from names ORDER BY id ASC";
$Result = mysql_query($Sql);
while ($Row = mysql_fetch_array($Result))
{
extract($Row);
eval("echo \"". $pindex[1] ."\";");
}
eval("echo \"". $pindex[2] ."\";");
أتمنى أن تكون الطريقة واضحة و سهلة و تؤدي الغرض ..
المرفق : ملف دالة استخراج القوالب + ملف لزرع الجداول في القاعدة + مجلد يحتوي ملف لإعدادات قاعدة البيانات و ملف للتحكم في القوالب .