كائن القوالب MyTemplate Engine 1.3.1 Alpha للمناقشة
مدرج تحت قسم: أدوات
29
أكتوبر
2007
أود أن أعرض عليكم كائن القوالب MyTemplate Engine في إصداره الجديد 1.3.1 بتغيير جذري في الدالة assign، حيت أصبحث غير محددة.
مثال في الإصدارات الاولى
$Temp1 = $BT->disply("index_body.html");
$array = array(
title => "Bruce php Developer",
desc => "My Template Engine & php Class and Function"
);
$BT->assign($array);
$BT->show();
أما حالياً فأصبحث
$Temp1 = $BT->disply("index_body.html");
$Mytemp->assign(array(
title => "Bruce php Developer",
desc => "My Template Engene & php Class and Function"
);
$BT->show();
طبعا بهذة الطريقة تخلصنا من التحديد
$BT->assign($array);
حيث كان مختص بمصفوفة واحدة ولايمكن إضافة أكثر من مصفوفة
وبالنسبة لملف المحرك 1.3.1 Alpha فهذا:
page = $page;
if(!file_exists("$this->Tempdir$this->page")){
echo "ERROR : The $this->page Template Not Found";
}else{
include("$this->Tempdir$this->page");
}
$this->pageTemp = ob_get_clean();
return $this->pageTemp;
}
function assign($vars = array()){
foreach ($vars as $key => $value) {
$this->pageTemp = ereg_replace('{'.$key.'}',$value,$this->pageTemp);
}
}
function show(){
if (empty($this->cachedir)) {
$this->cachedir = $_ENV["TEMP"];
}
if (!is_writeable( $this->cachedir ) ) {
echo "ERROR : could not be write in cach folder";
}
$npage = 'MyTempl_' . $this->page . ".php";
$tpage = @filemtime("$this->cachedir/$npage");
if($tpage >= ($tpage+(3600*$this->cachetime))){
unlink("$this->cachedir/$npage");
}
if(file_exists("$this->cachedir/$npage")){
include("$this->cachedir/$npage");
}else{
$filenum = @fopen("$this->cachedir/$npage", 'w');
flock($filenum, LOCK_EX);
@fwrite($filenum, $this->pageTemp);
fclose($filenum);
include("$this->cachedir/$npage");
}
}
}
?>
لكل من يملك افكار للرقي بالقالب، أتمنى منه أن يضعها وذلك لمناقشتها واختيار الأفضل
سلامات


أشكرك أخي Bruce ، بصراحة أستخدم هذا القالب حالياً ، وفر علي الكثير وخاصة أنه أسهل محرك قوالب حالياً (وجهة نظري) ..
وخاصة أنني كنت سأضع دروس خاصة بهذا القالب( لمن يريد أن يبدأ ببرمجة برامج ضخمة ) فقمت ببرمجة إدارة محتوى (مدونة ، برنامج لإدارة صفحات الموقع) بإسخدام هذا القالب ..
يفضل وضع الأوامر كلها على شكل دوال مثلاً :
function EditPage () {
$BT->disply(”index_body.html”);
$result=mysql_query(”SELECT * FROM pages WHERE page_id = ‘{$_GET['id']}’”);
$row=mysql_fetch_array($result);
$array = array (
page_id => $row['page_id'] ,
page_title => $row['page_title'] ,
page_content => $row['page_content']
);
$BT->assign($array);
$BT->show();
}
إلخ ، .. ، من الترتيبات .. كما أنني قمت بتجربة تقنية الأجاكس عليها ..
بارك الله فيك أخي الكريم :)
درس جميل ووافي ورائع
بالتوفيق لكم
السلام عليكم
mobde3 حقيقة اسعد كثيرا حين اجد شخص يستخدم الكلاس وان شاء الله يفيدك بالمطلوب
ملاحظة/ الاصدار الجديد 1.3.1 المعتمد يدعم
1. If الشرطية
2. php داخل قالب
3. التكرار Loop
4. تضمين ملف قالب في قالب
5. تضمين ملف برمجي
تم الانتهاء منهن باذن الله وتم التغير في الهيكلية كلها حيث يختلف عن 1.3.1 Alpha
طبعا لاانسي شكر صديقي Saanina فقد قام بالمساعدة الكاملة لي
——————————-
LiMoO
شكرا للمرور
سلامات
مشكور على القالب
تم التجربة