dalim13
2010-10-28, 20:18
السلام عليكم ورحمة الله
في الاول سوف نتطرق على نظرة بسيطة في نظام القوالب :
لا شك ان الكثير من المبرمجين يعتمدون على نظام القوالب (فصل البرمجة عن التصميم) في برمجياتهم
لتسهيل التصميم على المصمم وكذلك لتسهيل الامر على المبرمج نفسه
الثيم عادة ما يكون مجلد يحوي على عدة ملفات وهي القوالب وكل قالب مسؤول عن اظهار مكان معين
مثال :
http://www.traidnt.net/vb/attachment.php?attachmentid=525580&stc=1&d=1287079205
الان بعدما تطرقنا على لمحة بسيطة في نظام القوالب سوف نقوم بشرح التحكم في ملفات القوالب من الادارة دون اللجوء الى تحميلها للجهاز وتعديلها :
اولا سوف ننشا ملف جديد ونضع مصفوفة تحوي على جميع القوالب مع اسماء لها
مثلا لدينا الشكل السابق يحوي على 5 قوالب وهي
header.html
right.html
left.html
center.htm
footer.html
المصفوفة سوف تكون كالتالي
<?php
$tp_array = array(
"center" => "center.html" ,
"right" => "right.html" ,
"left" => "left.html" ,
"footer" => "footer.html" ,
"header" => "header.html");
?>
الان ننشا جدول بسيط لعرض القوالب مع اسمائها
<table border="1" width="50%">
<tr>
<td>القالب</td>
<td>تعديل</td>
</tr>
<tr>
<td>الهيدر</td>
<td><a href="templates.php?type=edit&tp=header">تعديل</a></td>
</tr>
<tr>
<td>الفوتر</td>
<td><a href="templates.php?type=edit&tp=footer">تعديل</a></td>
</tr>
<tr>
<td>اليمين</td>
<td><a href="templates.php?type=edit&tp=right">تعديل</a></td>
</tr>
<tr>
<td>الوسط</td>
<td><a href="templates.php?type=edit&tp=center">تعديل</a></td>
</tr>
<tr>
<td>اليسار</td>
<td><a href="templates.php?type=edit&tp=left">تعديل</a></td>
</tr>
</table>
مثال
http://www.traidnt.net/vb/attachment.php?attachmentid=525585&stc=1&d=1287080211
رابط تعديل اي قالب يكون كالتالي
templates.php?type=edit&tp=footer
الذي باللون الاحمر هو اسم ملف تعديل القوالب يمكن تغييره
اللون الاخضر يوضخ اسم القالب الموجود في المصفوفة مثال
"footer" => "footer.html" ,
الان صفحة التعديل اي
type=edit
<?php
$style_f = "default"; // مجلد الستايل المراد تعديله
$tp1 = $_GET['tp'];
$tp = $templates_array[$tp1]; // استخراج اسم الملف انطلاقا من اسمه في المصفوفة
$file_c = $style_f."/".$tp;
$f1 = fopen($file_c, "r+") or die("تعذر فتح الملف");
$f2 = fread($f1, filesize($file_c));
?>
<form action="templates.php?type=up_style" method="POST">
<input type="hidden" name="temp" value="<?=$tp;?>">
<input type="hidden" name="temp1" value="<?=$tp1;?>">
<table border="0">
<tr>
<td bgcolor="#FFFFFF">محتويات القالب :</td>
<td bgcolor="#FFFFFF"><textarea dir="ltr" name="temp_cont" cols="85" rows="25"><?=htmlspecialchars($f2);?></textarea></td>
</tr>
<tr>
<td colspan="2" bgcolor="#FFFFFF"><input type="submit" value="تحديث القالب"></td>
</tr>
</table>
</form>
قمنا بفتح ملف الستايل وعرضه في textarea داخل فورم الان نقوم بتعديل القالب كما نريد
ثم صفحة الاستقبال التالية التي تقوم بحفظ التغيرات وهي
type=up_style
<?php
$tp = $_POST['temp'];
$tp1 = $_POST['temp1'];
$temp_cont = stripslashes($_POST['temp_cont']);
$filename = "default/".$temp;
$filehandle = fopen($filename, 'w') or die("تعذر فتح الملف");
$stringData = $temp_cont;
$bnvc = fwrite($filehandle, $stringData);
fclose($filehandle);
?>
واعتقد ان الكود واضح فتحنا الملف من جديد وقمنا بحفظ الاعدادات الجديدة فيه
هذا كل ما في الامر مع اني اختصرت عدة اشياء واي استفسار فمرحب به
في الاول سوف نتطرق على نظرة بسيطة في نظام القوالب :
لا شك ان الكثير من المبرمجين يعتمدون على نظام القوالب (فصل البرمجة عن التصميم) في برمجياتهم
لتسهيل التصميم على المصمم وكذلك لتسهيل الامر على المبرمج نفسه
الثيم عادة ما يكون مجلد يحوي على عدة ملفات وهي القوالب وكل قالب مسؤول عن اظهار مكان معين
مثال :
http://www.traidnt.net/vb/attachment.php?attachmentid=525580&stc=1&d=1287079205
الان بعدما تطرقنا على لمحة بسيطة في نظام القوالب سوف نقوم بشرح التحكم في ملفات القوالب من الادارة دون اللجوء الى تحميلها للجهاز وتعديلها :
اولا سوف ننشا ملف جديد ونضع مصفوفة تحوي على جميع القوالب مع اسماء لها
مثلا لدينا الشكل السابق يحوي على 5 قوالب وهي
header.html
right.html
left.html
center.htm
footer.html
المصفوفة سوف تكون كالتالي
<?php
$tp_array = array(
"center" => "center.html" ,
"right" => "right.html" ,
"left" => "left.html" ,
"footer" => "footer.html" ,
"header" => "header.html");
?>
الان ننشا جدول بسيط لعرض القوالب مع اسمائها
<table border="1" width="50%">
<tr>
<td>القالب</td>
<td>تعديل</td>
</tr>
<tr>
<td>الهيدر</td>
<td><a href="templates.php?type=edit&tp=header">تعديل</a></td>
</tr>
<tr>
<td>الفوتر</td>
<td><a href="templates.php?type=edit&tp=footer">تعديل</a></td>
</tr>
<tr>
<td>اليمين</td>
<td><a href="templates.php?type=edit&tp=right">تعديل</a></td>
</tr>
<tr>
<td>الوسط</td>
<td><a href="templates.php?type=edit&tp=center">تعديل</a></td>
</tr>
<tr>
<td>اليسار</td>
<td><a href="templates.php?type=edit&tp=left">تعديل</a></td>
</tr>
</table>
مثال
http://www.traidnt.net/vb/attachment.php?attachmentid=525585&stc=1&d=1287080211
رابط تعديل اي قالب يكون كالتالي
templates.php?type=edit&tp=footer
الذي باللون الاحمر هو اسم ملف تعديل القوالب يمكن تغييره
اللون الاخضر يوضخ اسم القالب الموجود في المصفوفة مثال
"footer" => "footer.html" ,
الان صفحة التعديل اي
type=edit
<?php
$style_f = "default"; // مجلد الستايل المراد تعديله
$tp1 = $_GET['tp'];
$tp = $templates_array[$tp1]; // استخراج اسم الملف انطلاقا من اسمه في المصفوفة
$file_c = $style_f."/".$tp;
$f1 = fopen($file_c, "r+") or die("تعذر فتح الملف");
$f2 = fread($f1, filesize($file_c));
?>
<form action="templates.php?type=up_style" method="POST">
<input type="hidden" name="temp" value="<?=$tp;?>">
<input type="hidden" name="temp1" value="<?=$tp1;?>">
<table border="0">
<tr>
<td bgcolor="#FFFFFF">محتويات القالب :</td>
<td bgcolor="#FFFFFF"><textarea dir="ltr" name="temp_cont" cols="85" rows="25"><?=htmlspecialchars($f2);?></textarea></td>
</tr>
<tr>
<td colspan="2" bgcolor="#FFFFFF"><input type="submit" value="تحديث القالب"></td>
</tr>
</table>
</form>
قمنا بفتح ملف الستايل وعرضه في textarea داخل فورم الان نقوم بتعديل القالب كما نريد
ثم صفحة الاستقبال التالية التي تقوم بحفظ التغيرات وهي
type=up_style
<?php
$tp = $_POST['temp'];
$tp1 = $_POST['temp1'];
$temp_cont = stripslashes($_POST['temp_cont']);
$filename = "default/".$temp;
$filehandle = fopen($filename, 'w') or die("تعذر فتح الملف");
$stringData = $temp_cont;
$bnvc = fwrite($filehandle, $stringData);
fclose($filehandle);
?>
واعتقد ان الكود واضح فتحنا الملف من جديد وقمنا بحفظ الاعدادات الجديدة فيه
هذا كل ما في الامر مع اني اختصرت عدة اشياء واي استفسار فمرحب به