عرض مشاركة واحدة
عضو نشيط
تاريخ التسجيل: May 2008-
#1 (permalink)  
Question القوالب (التمبلت) شغلة مهمة لكل مبرمج php(ارجو الدخول للضرورة)


بسم الله الرحمن الرحيم


اثناء تصفحي للانترنت لاحظت شغلة مهمة جدا بأحد المواقع , وهي كانت القوالب ونظمتها , وهذي الانظمة بتغني في اغلب الاحيان عن ال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','&copy','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 هي انه كيف بدي اعمل صفحات السكربت واستدعي القالب فيها ,, يعني لازم بكل صفحة اكتب (اخر كود) ولاّ لأ ..

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

بتمنى من اي واحد عندو اقتراح او حل ينجدني بسرعة لأني تعبت من هذي المشاكل
والي بيعرف طريقة اسهل او احسن يعرفني بيها و ان شا الله تكون في ميزان حسناته.

واتمنى التوفبق للجميع






alm7trf غير متواجد حالياً   قديم 11-05-2008, 06:29 PM
رد مع اقتباس