بسم الله الرحمن الرحيم
اثناء تصفحي للانترنت لاحظت شغلة مهمة جدا بأحد المواقع , وهي كانت القوالب ونظمتها , وهذي الانظمة بتغني في اغلب الاحيان عن الcss وهي مبرمجة بالphp (في حالتنا هذه) , بحثت عن الموضوع في جوجل وغيرو عن هذي القوالب لقيت في اكثر من برنامج عربي لأنظمة القوالب , نزلت اكثر من برنامج لكن انا شايفها معقدة ومش عارف كيف استعملها مع انه في شرح الها ,لكن الشرح مش كافي لأنه ما بشرح الكود متل هذا الموقع http://bp.ma/Udem/chareh.php?Awid=chareh_1 شارح بطريقة غير مفهومة ,, حاولت ابحث عن درس يعلم كيف ممكن الواحد يعمل مثل هذي القوالب ولقيت ولله الحمد , وكان الشرح بردو مش كافي لأنه لما يشرح عن كود معين بقول(هذا الكود لعمل كذا وكذا ) ما بشرح الي داخل الكود من دوال وامور تانية متلا : كلمة new شو بتعني بالبرمجة او الاشارة <- او شو علاقة المتغير بـ<- ....وهكذا .
من خلال البحث عرفت انه في اكتر من برنامج ومن ضمنها smarty , umed , my templete وغيرها .
الان انا حاولت اعمل قالب بطريقتي الخاصة وهي عن طريق تبديل الكلمات بأخرى , ولكن واجهتي بعض المشاكل..
اولا عملت صفحة اسمها function.php , وهي مختصة بالدوال الي بدنا نستخدمها (حاليا دالة وحدة):
<?php
function get_temp($file){
$fp=fopen($file,"r");
$temp= fread($fp,filesize($file));
fclose($fp);
return $temp;
}
?>
عرّفت في الدالة السابقة انه يفتح الصفحة الي اسمها بدل المتغير $file الي هو رح يكون الصفحة التانية الي فيها رح يكون البرمجيات الخاصة , وبعدها يقرأ الموجود داخل الملف .
صفحة القالب وهي مكونه من جدول (صف للهيدر , صف بداخلة 3 اعمدة :يمين و يسار و وسط: , وصف لاسفل الصفحة) templete.html.
<html>
<body>
<table width="100%" height="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td colspan="3"> {head} </td>
</tr>
<tr height="100%">
<td> {left} </td>
<td> {midlle} </td>
<td> {right} </td>
</tr>
<tr>
<td colspan="3"> {footer} </td>
</tr>
</table>
</body>
</html>
الان وضعت داخل كل حقل اسم بدنا نستبدله متل : {head},{footer},{left} والباقي..
الان صفحة الاستبدال replace.php وفيها رح نعرف الشغل الى اشتغلناه فوق , ورح نحط الكلمات الي بدنا نستبدلهم بمصفوفة بسيطة(وهون بتبدا المشكلة):
<?php
//نقوم بتضمين ملف الفنكشن والذي يحتوي على دالة قراءة الملف
include("function.php");
//يتم إسناد نتيجة الدالة والتي ستكون منطقياً هي نص الملف المراد فتحه
$temp_item = get_temp("templete.html");
//هنا نقوم بإستخدام دالة الإستبدال ، ونقوم بإستبدال متغيراتنا السابقة بما نريده كما يلي
$old_temp= array('{head}','{footer}','{right}','{left}','{midlle}');
$new_temp= array('alm7trf.cscript','©','right-block','left-block','main body');
$output = str_replace($old_temp,$new_temp,$temp_item);
//طباعة الملف بعد عملية الإستبدال
echo $output;
?>
لحد الان كل شي تمام (استدعينا ملف الدالة , وعرفنا ملف القالب داخل دالتنا, عملنا متغير عباره عن مصفوفة الكلام السابق , ومتغير للمصفوفة للكلام الجديد, وابدلنا الكلام عن طريق الدالة str_replace و اخرجنا الكلام) وعملت تجربة وزبطت 100% ,,
المشكلة هو اني عامل صفحة لكل متغير (head,footer,left,right) حتى تكون كل صفحة مختصة بشيء ,الان انا بدي ابدل الكلام الموجود بصفحة القالب مع الكلام الموجود بكل صفحة , حاولت اعمل استدعاء عن طريق include ما زبط لأنه كان يعرض الكلام كلو بأعلى الصفحة وما بعرضة بمكانه الصحيح .
كانت هذي مشكلة رقم واحد
المشكلة رقم 2 هي انه كيف بدي اعمل صفحات السكربت واستدعي القالب فيها ,, يعني لازم بكل صفحة اكتب (اخر كود) ولاّ لأ ..
ــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــــــــ
بتمنى من اي واحد عندو اقتراح او حل ينجدني بسرعة لأني تعبت من هذي المشاكل
والي بيعرف طريقة اسهل او احسن يعرفني بيها و ان شا الله تكون في ميزان حسناته.
واتمنى التوفبق للجميع