السلام عليكم ورحمة الله وبركاته
اليوم معكم في درس مقدم لكم من الأخ يـوسف من منتديـات سـتـارتيـمـز
مرحبا بكم اخوتي الكرام في درس جديد من دورة برمجة منتدى بلغة PHP
درس اليوم مختلف قليلا عن الدرس السابق والدروس القادمة ان شاء الله
كما أنه يفيد الجميع حتى ولو لم يكونوا متابعين للدورة ..
درس اليوم عن نظام القوالب .. وأعتقد أن الكثير يعرف هذا النوع من الأنظمة فهو يتيح فصل الكود البرمجي عن التصميم
وبالتالي له عدة فوائد فهو يسمح لكل من المبرمج والمصمم أن يعملا منفصلين وفي وقت واحد
وكذلك بحكم أن المصممين عادة لا تكون لهم فكرة على الكود البرمجي وبالتالي تفادي وقوعه في تلف غير مقصود بالكود
الشرح سوف يكون مقسما على جزئين .. جزء خاص باكواد ملفات التصميم -للمصممين-
web designers
وجزء خاص باكواد البرمجة -للمبرمجين-
PHP developers
كنت قد قررت في البداية أن أستخدم القالب السهل وهو برمجة عربية لكن المشكل أن اخر تحديث له كان سنة 2008
مما يؤدي لظهور عدة مشاكل نظرا لوجود دوال قد تم الإستغناء عليها نهائيا
بحثت قليلا في بعض القوالب الشهيرة ووجدت أحد القوالب هو بسيط كسابقه يحتاج ملف واحد فقط
والكثير من مستخدميه يثنون عليه .. إنه قالب Rain TPL
أولا نبدأ مع رابط التحميل من الموقع الرسمي
ثم إختيار اخر تحديث
نبدأ الأن بالتعامل مع القالب برمجيا
أولا المتطلبات وكما هو واضح من الموقع الرسمي فالقالب متوافق مع PHP5
ثانيا الإستدعاء
كما تلاحظون ففي السطر السابع قمت بإستدعاء ملف القالب .. ولكن لمواكبة برمجة المنتدى أنصحكم أن تضعوا الملف
داخل مجلد include
في السطر الثامن قمت بوضع اسم المجلد الذي يحوي القوالب وهو templates
ومجلد القالب الرئيسي default .. سوف نضع مكانه متغير لاحقا في الدرس القادم ان شاء الله بعد ربطه بلوحة التحكم
السطر التاسع هو متغير مجلد الكاش
السطر العاشر يحوي متغير امتداد ملفات القوالب .. وضعته html يمكنكم أن تختاروا امتدادا اخر مثل tpl
ثم في السطر الثاني عشر قمت بنشاء كائن جديد وهو المتغير هو الذي سوف نقوم باستخدامه في تعاملاتنا مع الكلاس
جيد .. الان القالب مستدعى مع خياراته الاساسية .. سوف نتجه الان الى بعض الدوال الرئيسية في التعامل مع القالب
غالبا ما نحتاج اثنتين وسوف أقوم بشرحها .. أبدا أولا بدالة assign ..
ما فائدة هذه الدالة ؟؟ هذه الدالة هي التي تقوم بتخصيص او تعيين متغير ما على انه تابع لملف القالب بعد تمرير المتغير
على الدالة ،
في الأسطر 14-15 و 16 قمت بوضع متغيرات
في السطر 18 مصفوفة تحوي على عنصرين وكل عنصر يمثل احد المتغيرات السابقة
في السطر العشرين قمت بمتمرير المتغير first name على دالة assign حتى يصبح لها دلالة في ملفات القوالب
في السطر 21 قمت بتمرير متغير المصفوفة على الدالة .
طريقة عرضهم في ملف القالب سوف اشرحها لاحقا ...
على كل حال متغير العمر في السطر 16 ليس له اي معنى في ملف القالب لاننا لم نقم بتمريره عبر الدالة assign!!
الان سوف اقوم بشرح الدالة الثانية وهي دالة draw
ما فائدتها ؟؟ من خلال هذه الدالة سوف نقوم باستدعاء ملفات القوالب ولكن دون كتابة امتداداتها
مثال .. من بين ملفات القوالب لدينا ملف الهيدر header.html او header.tpl
استدعائه يكون كالتالي
الأن بعدما شرحنا أهم طرق التعامل برمجيا مع الملف سوف نتجه للتعامل مع ملفات التصميم
سوف نعمل على ملف header.html على سبيل المثال
اولا نبدا مع المتغيرات والتي تاخذ صيغة {$variable} في ملف القالب مثال
هكذا نقوم باستدعاء المتغيرات في ملف التصميم .. لكن الم تلاحظوا وجود خطا!!
نعم ان طبقتم الملف سوف يظهر لكم خطا في السطر 12 لان المتغير age غير معرف بحث اننا لم نقم بتمريره
عبر دالة assign ;)
يمكننا ان نقوم بعمليات حسابية داخل ملف القالب ايضا مثال
والاستدعاء
النتيجة
الان مع {$GLOBALS}
والتي تسمح لنا بعرض المتغيرات الثابتة في php مثل
_SESSION, _GET, _POST, _SERVER
طريق العرض .. مثال لل GET
ثانيا سوف نمر على المتغيرات الثابتة define /
{#constant#}
الإستدعاء
النتيجة
....
ثالثا الجمل الشرطية if/elseif/else
في ملفات php نستخدم الجمل الشرطية كالتالي
كيف نترجم هذه الجمل الشرطية في ملف القالب ؟؟ بسيطة .. كالتالي
كما تروا الفكرة بسيطة جدا
الان لحلقة التكرار loop وهي نطقة مهما جدا في هذا الدرس .. الحلقة تحمل مصفوفة لتقوم بعرضها
مثال على ذلك في ملف php
في السطر 16 قمنا بنشاء مصفوفة تحوي على عنصرين
المفتاح الاول هو first_name ومتغيره هو youcef
المفتاح الثاني هو last_name ومتغيره هو geologue
قمنا بتعريف متغير المصفوفة داخل دالة assign حتى تتم قراءتها داخل ملف القالب
الان نتجه لملف القالب لعرض التكرار .. الكود كالتالي
التكرار يكون محصول بين عباره loop و /loop
المتغير {$key} يمثل مفتاح المصفوفة
المتغير {$counter} يمثل عداد العرض والذي يبدا افتراضيا من الرقم 0
والمتغير {$value} الذي يعرض قيمة كل مفتاح من المصفوفة
مثال على العرض
هناك خاصية else تضاف داخل حلقة التكرار بحيث تعرض لمنا نص في حال ما اذا كانت النتيجة 0 اي المصفوفة فارغة
طريق الاستدعاء كالتالي
الان مع عبارة استدعاء ملف داخل ملف قالب
على سبيل المثال نقوم باستدعاء الفوتر والهيدر داخل ملف معين . العبارة المطلوبة هي
{include="header"}
بحيث ان header تمثل اسم الملف المراد استدعاءه
....
الان مذا لو اردنا اضافة تعليق داخل ملف التصميم دون أن يظهر للمستخدم ؟؟
سوف نحتاج عبارة {* comment *} بحيث انه مكان comment نكتب اي تعليق نريده.
هذه تقريبا اهم الأوامر التي سوف نحتاجها في دروسنا القادمة
هناك اوامر اخرى لم ارد التطرق لها .. يمكنكم متابعتها من الموقع الرسمي
اتمنى ان تكون الفكرة قد وصلتك .. والدرس قد اعجبكم ..
كما أشكر كثيرا الاخوة الذين يتابعون الدورة ويدعمونني وخاصة الاخ صالح السوفي
مع تحياتي لكم جميعا :)

0 تعليقات