تغطية مباشرة لأحداث منتدى الإعلام الجديد المقام بمدينة أبوظبي
هل تقترح تمديد مسابقة سوالف كاست؟

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد  
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: 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
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#2 (permalink)  

السﻻم عليكم
بالنسبة للرابط الذي وضعته فهو خاص بمحرك برمجته انا ولم يكن في المستوى وتخليت عنه ... كذلك الشرح

بالنسبة لكلمة new و -> فقم بزيارة هذا الموضوع http://www.swalif.net/softs/swalif45/softs180086/

اما اذا اردت استخدام محركات جاهزة فاختر من بين:

القالب السهل - الرئيسية

قوالب سمارتي SMARTY خطوة بخطوة - الجزء الأول - منتدى بي اتش بي PHP

http://www.swalif.net/softs/swalif45/softs111724/

اما اذا اردت برمجة محرك خاص بك فاستخد احد المحركات التي وضعتها لك "وتعلم منها خصوصا محرك easy"






عبد الواحد البشيري غير متواجد حالياً   قديم 12-05-2008, 11:16 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2008-
#3 (permalink)  

شكرا على ردك , واعذرني على الانتقاد.






alm7trf غير متواجد حالياً   قديم 12-05-2008, 11:53 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#4 (permalink)  

ﻻ تعتذر فانا اعترف بما قلته






عبد الواحد البشيري غير متواجد حالياً   قديم 13-05-2008, 12:31 AM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: Jun 2007-
#5 (permalink)  

هناك طريقة سهلة لاستخدام القوالب
افترض أن لدي الجدول التالي(lessoncat) :
كود:
 
CREATE TABLE `lessoncat` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM
أضف الدالة التالية إلى موقعك
كود PHP:
function Get_Template($name)
{
 
$template_dir="template/";
 if (
$name!=urlencode($name)) {
  return 
null;
 }
 
$result=file_get_contents($template_dir.urlencode($name).".html");
 
$result=addslashes($result);
 
$result=str_replace("\'","'",$result);
 return 
$result;

وعند الاستدعاء
كود PHP:
 $result=mysql_query("SELECT * FROM lessoncat ORDER BY id;");
 if (
mysql_numrows($result)>0) {
  while (
$row=mysql_fetch_array($result)) {
   
extract($row);
   eval(
"echo \"".Get_Template('list_cat')."\";");
  }
 } 
طبعاً ملف القالب('list_cat) يجب أن يحتوي التالي
كود بلغة HTML:
<div align="center"> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="table2"> <tr> <td align="center" style="padding: 5px" rowspan="3" valign="top"> <img border="0" src="cat.jpg" width="50" ></td> <td width="100%" valign="top" style="padding: 3px"><a style="font-weight: bold" href="lesson.php?idcat=$id"> <font color="#722000">$name</font></a></font></td> </tr> <tr> <td width="100%" valign="top" style="padding: 5px">$text</td> </tr> </table> </div>

أرجو أن يكون الشرح واضح






مهندس نت غير متواجد حالياً   قديم 13-05-2008, 03:37 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#6 (permalink)  

لقد كانت لي تجربة بسيطة مع نظم القوالب خرجت بها بقالب بسيط ، قد يفيدك في التعلم منه كبداية لاساسيات نظم القوالب ..
اقتباس:
-- المبدوء بـ # تم تنفيذه
نظام cache
امكانية عدم وجود مجلد cache ويتم تخزين الملفات في مجلد temp
التعرف التلقائي على المتغيرات
دالة تكرار loop
دالة شرط if/elseif/else
# دالة استيراد include
دالة تنفيذ كود php
دالة تبديل switch
# خاصية التعليقات
# امكانية حفظ القالب في متغير
# عرض اخطاء القالب
علامات المقارنة تكون نص بدلا عن رمز eq , neq , gt , lt
# التأكد من ان المتغير ليس فارغاً
# تبديل المتغيرات بقيمها في الملفات المستوردة
اما عن النظام الذي انصح به لاستخدام القوالب فهو نظام القالب السهل ، وان اردت شيئاً اكثر تشعباً فلديك smarty او النسخة الخفيفة منه template_lite .






الملفات المرفقة
نوع الملف: zip template.zip‏ (2.5 كيلوبايت, المشاهدات 27)
dev11 غير متواجد حالياً   قديم 13-05-2008, 04:18 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2008-
#7 (permalink)  

مشكورين على الرد جميعكم.






alm7trf غير متواجد حالياً   قديم 14-05-2008, 12:20 PM
رد مع اقتباس
رد


 

أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
درس ابدع فى بولتون(vbulletin) (index.php) Mr.eslam إصلاح وصيانة المنتديات 2 05-08-2006 09:10 PM
طريقه وضع اطار لي قوانين المنتدى حركه رائعه شرح NighT إصلاح وصيانة المنتديات 11 30-05-2005 02:43 PM
واجهة عالية الدقة (احترافية)للبيع + لكل من تعامل مع الرومنس ماسنجر الدخول للضرورة شبكة طيبة خدمات البيع والشراء والإعلانات التجارية 6 01-02-2005 02:55 AM
ياشباب الجدول الذكي مارأيكم في فكرتي عبدالله عيد PHP 1 27-06-2004 03:22 PM


الساعة الآن: 10:24 AM بتوقيت المملكة العربية السعودية