shqawe
ربي أشرح لي صدري
بسم الله الرحمن الرحيم
الحمد لله والصلاة والسلام على رسول الله نبينا محمد عليه افضل الصلاة واتم التسليم
اللهم لا علم لنا إلا ما علمتنا، إنك أنت العليم الحكيم، اللهم علمنا ما ينفعنا، وانفعنا بما علمتنا، وزدنا علما،
بداية ً اعتذر عن التأخير الذي هو خارج عن ارادتي وأتمنى ان تعذروني على هذا الانقطاع فقد كان المفترض ان يكون هذا الدرس قبل عدة ايام ولكن الحمد لله على كل حال
نستكمل معكم اليوم ما بدنأه في الدرس السابق من دورة برمجة الاضافات ومن فاتته الدروس السابقة يستطيع مراجعة فهرس الدورة عن طريق الرابط التالي:
xenarabia.com
في الدرس السابق قمنا بانشاء اربع قوالب خاصة باضافتنا وهي
- قالب لعرض كلمة مدير الموقع
- قالب لعرض كلمة مدير الموقع
- قالب لعرض كلمة مدير الموقع
- قالب خاص بخيارات css
ودرسنا اليوم باذن الله هو كيفية تطبيق تعديلات القوالب تلقائيا بدون التعديل عليها يدوياً
لذا نقول بسم الله وعلى بركة الله
توجه الى لوحة التحكم > المظهر > تعديلات القالب > اضافة تعديل قالب
سوف تفتح لك هذه الصفحة :

لنشرح الخيارات:
القالب: هنا تضع اسم القالب الذي تريد استبدال الاكواد بداخله وسوف تلاحظ مجرد ما تبدأ بالكتابة سوف تظهر لك عدة قوال ونحن سوف نقوم بالتعديل على قالب PAGE_CONTAINER.
مفتاح التعديل: يستخدم هذا الخيار في حال اردت تحديث الاضافة واردت عمل تحديث لهذا التعديل لذا يفضل ان تضع هنا قيمة فريدة خاصة بالاضافة.
الوصف: هنا ضع وصف لهذا التعديل لكي يسهل عليك العودة له في حين اردت تعديله لانه في بعض الاضافات من الممكن ان تحتاج لاكثر من تعديل فتحتاج الى وصفها للتمييز بينها.
محتويات القالب: هنا تظهر محتويات القالب الذي تم اختياره وهي فقط للمشاهدة ولايمكنك التعديل عليه.
نوع البحث: وهذا الخيار يندرج تحته ثلاث خيارات
البحث: هنا نضع الكود الذي سوف تقوم الاضافة بالبحث عنه لكي يتم استبداله.
الاستبدال : هنا الكود الذي سوف نضعه لكي يتم استبداله بالكود السابق.
اولوية الطلب: وتعني في بعض الاضافات تحتاج ان يكون الاستبدال متتالي عندها تحتاج الى وضع الاولوية حسب التتالي.
مربع تطبيق تعديل القالب تلقائيا ً لابد من التأشير عليه والا لن يتم الاستبدال تلقائيا ً
الاضافة: كما تعودنا في الدروس السابقة سوف نقوم باختيار اضافتنا
الان بعد شرح الخيارات تبقى لنا تطبيق التعديل
واول تعديل سوف نقوم بعمله هو على قالب wsm_template_up والمتخصص بظهور كلمة مدير الموقع اعلى المنتدى لذا سوف نختار التالي:
نوع البحث استبدال بسيط
ونضع في مربع البحث هذا الكود وهو الكود الخاص بعرض محتوى الجزء الايمن من المنتدى:
وفي مربع الاستبدال :
لنشرح ماذا فعلنا:
في مربع البحث وضعنا الكود الذي سوف نستبدله بمعنى ان هذا الكود هو هدفنا
واما مربع الاستبدال ففي السطر الاول وضعنا هذا الكود:
وفيه قمنا بوضع شرط يقوم بالتحقق من انه اذا كان خيار تفعيل الاضاف يساوي 1 اي ( نعم ) نفذ الكودالتالي:
وبنفس الطريقة قمنا بوضع شرط يقوم بالتحقق من مكان قيمة ظهور الاضافة
واذا كنتم تتذكرون في درسنا السابق وضعنا لكل مكان قيمة
اعلى المنتدى = 1
اسفل المنتدى = 2
الشريط الجانبي = 3
فاذا كانت قيمة مكان ظهور الاضافة تساوي 1 أي ( اعلى المنتدى )
قم باستدعاء قالب wsm_template_up
وضع بعده الكود الذي بحثنا عنه
وبعدها قمنا بعمل شرط اخر انه اذا كانت قيمة مكان ظهور الاضافة تساوي 2 أي ( اسفل المنتدى )
قم باستدعاء الكود الذي بحثنا عنه
ثم ضع تحته القالب wsm_template_dw
في النهاية وضعنا هذا الكود مرتين
وقمنا فيه باغلاق شرط التحقق من مكان ظهور الاضافة وشرط تفعيل الاضافة
فاذا كان مكان ظهور الاضافة في الشريط الجانبي ولم نقم باضافة هذا الكود او
الاضافة غير مفعلة فسوف لن تظهر معنا الاقسام لذا المعنى من هذا الكود هو ببساطة
اذا كان مكان الظهور في الشريط الجانبي او ان الاضافة غير مفعلة فالكود الذي استبدلناه سوف لن يستبدل
اتمنى ان تكون وضحت الفكرة
الان قبل ان نقوم بالحفظ بامكاننا اختبار الاستبدال قبل تطبيقة بالضغط على زر اختبار وسوف تلاحظ النتيجة في النافذة التي سوف تظهر بهذا الشكل

الكود المظلل بالاحمر هو الكود الذي سوف يتم استبداله
والكود الاخصر هو كود الاستبدال
الان اذا كانت النتيجة كما ترى في الصورة السابقة قم بالضغط على زر حفظ
الان لنكرر نفس العملية لكي نقوم باضافة الاستبدال التلقائي لقالب الشريط الجانبي:
سوف نكرر نفس الخطوات السابقة بالمعلومات التالية :
القالب: PAGE_CONTAINER
مفتاح التعديل: template_replacement2
الوصف: استبدال القوالب 2
نوع البحث : استبدال بسيط
البحث:
الاستبدال:
[ تحديث ]
ذكر استاذنا @bousaid في رده التالي:
لذا احببت ان اضع الطريقة للجميع فيمكنكم بدلاً من كتابة الكود السابق ان تستخدمو هذا الكود
لاحظو اننا استغنينا عن الكود في خانة البحث ووضعنا بدلاً عنه [ $0 ]
فاذا اردت ان تضع القالب تحت كود البحث فضع هذه العلامة [ $0 ] فوق كودك تماما ً كما فعلنا في الشريط الجانبي
واذا اردت ان تضع القالب فوق كود البحث فضع العلامة تحته
ثم قم بالتجربة كما فعلنا مع الاستبدال الاول واذا كانت النتيجة نفس السابقة اضغط حفظ
وبهذه النتيجة يكون درسنا قد انتهى لهذا اليوم باضافة تعديلات القوالب وفي الدرس القادم سوف نتحدث عن تصدير الاضافة واعداد ملف بياناتها
ولمن اراد القرائة اكثر عن القوالب وعن استخدام الدوال فيها فسوف اترك لكم هذا الرابط كمرجع فيه اهم الدوال المستخدمه في القوالب
ان اصبت فمن فضل الله علي وان اخطأت فجل من لايخطأ
احترامي وتقديري
اخوكم
شقاوي
الحمد لله والصلاة والسلام على رسول الله نبينا محمد عليه افضل الصلاة واتم التسليم
اللهم لا علم لنا إلا ما علمتنا، إنك أنت العليم الحكيم، اللهم علمنا ما ينفعنا، وانفعنا بما علمتنا، وزدنا علما،
بداية ً اعتذر عن التأخير الذي هو خارج عن ارادتي وأتمنى ان تعذروني على هذا الانقطاع فقد كان المفترض ان يكون هذا الدرس قبل عدة ايام ولكن الحمد لله على كل حال

نستكمل معكم اليوم ما بدنأه في الدرس السابق من دورة برمجة الاضافات ومن فاتته الدروس السابقة يستطيع مراجعة فهرس الدورة عن طريق الرابط التالي:
[ حصريا ] - فهرس [ دورة XenArabia لبرمجة الإضافات ] من تقديم الأستاذ شقاوي
بسم الله الرحمان الرحيم و الصلاة و السلام على المظلل بالغمام محمد ابن عبد الله عليه أفضل الصلاة و أزكى التسليم حرصا على التنظيم تم عمل هذا الموضوع ليسهل على الجميع الوصول لدروس [ دورة XenArabia لبرمجة الإضافات ] حتى تكون مرجعا لكل مبتدء في عالم برمجة إضافات XenForo كما نوجه الشكر الجزيل للأخ...

في الدرس السابق قمنا بانشاء اربع قوالب خاصة باضافتنا وهي
- قالب لعرض كلمة مدير الموقع
- قالب لعرض كلمة مدير الموقع
- قالب لعرض كلمة مدير الموقع
- قالب خاص بخيارات css
ودرسنا اليوم باذن الله هو كيفية تطبيق تعديلات القوالب تلقائيا بدون التعديل عليها يدوياً
لذا نقول بسم الله وعلى بركة الله
توجه الى لوحة التحكم > المظهر > تعديلات القالب > اضافة تعديل قالب
سوف تفتح لك هذه الصفحة :

لنشرح الخيارات:
القالب: هنا تضع اسم القالب الذي تريد استبدال الاكواد بداخله وسوف تلاحظ مجرد ما تبدأ بالكتابة سوف تظهر لك عدة قوال ونحن سوف نقوم بالتعديل على قالب PAGE_CONTAINER.
مفتاح التعديل: يستخدم هذا الخيار في حال اردت تحديث الاضافة واردت عمل تحديث لهذا التعديل لذا يفضل ان تضع هنا قيمة فريدة خاصة بالاضافة.
الوصف: هنا ضع وصف لهذا التعديل لكي يسهل عليك العودة له في حين اردت تعديله لانه في بعض الاضافات من الممكن ان تحتاج لاكثر من تعديل فتحتاج الى وصفها للتمييز بينها.
محتويات القالب: هنا تظهر محتويات القالب الذي تم اختياره وهي فقط للمشاهدة ولايمكنك التعديل عليه.
نوع البحث: وهذا الخيار يندرج تحته ثلاث خيارات
- استبدال بسيط: ويعني هنا استبدال كود بكود دون وجود فراغات او عدة اسطر.
- تعبير قياسي: ويعني استبدال معتمد على التعابير القياسية ويستخدم في حين كان التعديل يحتوي على فراغات او عدة سطور.
- PHP callback: ويعني ان الاستبدال سوف يكون مبني على ملف php فيه اكواد الاستبدال.
البحث: هنا نضع الكود الذي سوف تقوم الاضافة بالبحث عنه لكي يتم استبداله.
الاستبدال : هنا الكود الذي سوف نضعه لكي يتم استبداله بالكود السابق.
اولوية الطلب: وتعني في بعض الاضافات تحتاج ان يكون الاستبدال متتالي عندها تحتاج الى وضع الاولوية حسب التتالي.
مربع تطبيق تعديل القالب تلقائيا ً لابد من التأشير عليه والا لن يتم الاستبدال تلقائيا ً
الاضافة: كما تعودنا في الدروس السابقة سوف نقوم باختيار اضافتنا
الان بعد شرح الخيارات تبقى لنا تطبيق التعديل
واول تعديل سوف نقوم بعمله هو على قالب wsm_template_up والمتخصص بظهور كلمة مدير الموقع اعلى المنتدى لذا سوف نختار التالي:
نوع البحث استبدال بسيط
ونضع في مربع البحث هذا الكود وهو الكود الخاص بعرض محتوى الجزء الايمن من المنتدى:
HTML:
<div class="p-body-pageContent">{$content|raw}</div>
وفي مربع الاستبدال :
HTML:
<xf:if is="$xf.options.mfa_act == 1">
<xf:if is="$xf.options.mfa_place == 1">
<xf:include template="wsm_template_up" />
<div class="p-body-pageContent">{$content|raw}</div>
<xf:elseif is="$xf.options.mfa_place == 2" />
<div class="p-body-pageContent">{$content|raw}</div>
<xf:include template="wsm_template_dw" />
<xf:else />
<div class="p-body-pageContent">{$content|raw}</div>
</xf:if>
<xf:else />
<div class="p-body-pageContent">{$content|raw}</div>
</xf:if>
لنشرح ماذا فعلنا:
في مربع البحث وضعنا الكود الذي سوف نستبدله بمعنى ان هذا الكود هو هدفنا
واما مربع الاستبدال ففي السطر الاول وضعنا هذا الكود:
HTML:
<xf:if is="$xf.options.mfa_act == 1">
وفيه قمنا بوضع شرط يقوم بالتحقق من انه اذا كان خيار تفعيل الاضاف يساوي 1 اي ( نعم ) نفذ الكودالتالي:
HTML:
<xf:if is="$xf.options.mfa_place == 1">
<xf:include template="wsm_template_up" />
<div class="p-body-pageContent">{$content|raw}</div>
<xf:elseif is="$xf.options.mfa_place == 2" />
<div class="p-body-pageContent">{$content|raw}</div>
<xf:include template="wsm_template_dw" />
</xf:if>
وبنفس الطريقة قمنا بوضع شرط يقوم بالتحقق من مكان قيمة ظهور الاضافة
واذا كنتم تتذكرون في درسنا السابق وضعنا لكل مكان قيمة
اعلى المنتدى = 1
اسفل المنتدى = 2
الشريط الجانبي = 3
فاذا كانت قيمة مكان ظهور الاضافة تساوي 1 أي ( اعلى المنتدى )
قم باستدعاء قالب wsm_template_up
وضع بعده الكود الذي بحثنا عنه
وبعدها قمنا بعمل شرط اخر انه اذا كانت قيمة مكان ظهور الاضافة تساوي 2 أي ( اسفل المنتدى )
قم باستدعاء الكود الذي بحثنا عنه
ثم ضع تحته القالب wsm_template_dw
في النهاية وضعنا هذا الكود مرتين
HTML:
<xf:else />
<div class="p-body-pageContent">{$content|raw}</div>
</xf:if>
<xf:else />
<div class="p-body-pageContent">{$content|raw}</div>
</xf:if>
وقمنا فيه باغلاق شرط التحقق من مكان ظهور الاضافة وشرط تفعيل الاضافة
فاذا كان مكان ظهور الاضافة في الشريط الجانبي ولم نقم باضافة هذا الكود او
الاضافة غير مفعلة فسوف لن تظهر معنا الاقسام لذا المعنى من هذا الكود هو ببساطة
اذا كان مكان الظهور في الشريط الجانبي او ان الاضافة غير مفعلة فالكود الذي استبدلناه سوف لن يستبدل
اتمنى ان تكون وضحت الفكرة
الان قبل ان نقوم بالحفظ بامكاننا اختبار الاستبدال قبل تطبيقة بالضغط على زر اختبار وسوف تلاحظ النتيجة في النافذة التي سوف تظهر بهذا الشكل

الكود المظلل بالاحمر هو الكود الذي سوف يتم استبداله
والكود الاخصر هو كود الاستبدال
الان اذا كانت النتيجة كما ترى في الصورة السابقة قم بالضغط على زر حفظ
الان لنكرر نفس العملية لكي نقوم باضافة الاستبدال التلقائي لقالب الشريط الجانبي:
سوف نكرر نفس الخطوات السابقة بالمعلومات التالية :
القالب: PAGE_CONTAINER
مفتاح التعديل: template_replacement2
الوصف: استبدال القوالب 2
نوع البحث : استبدال بسيط
البحث:
HTML:
<div class="p-body-sidebar">
الاستبدال:
HTML:
<xf:if is="$xf.options.mfa_act == 1">
<xf:if is="$xf.options.mfa_place == 3">
<div class="p-body-sidebar">
<xf:include template="wsm_template_sidebar" />
<xf:else />
<div class="p-body-sidebar">
</xf:if>
<xf:else />
<div class="p-body-sidebar">
</xf:if>
[ تحديث ]
ذكر استاذنا @bousaid في رده التالي:
بارك الله فيك ...
يمكنك ايضا الاستغناء عن إعادة كتابة ما هو بخانة البحث و استبداله بـ0$
ليتم اضافته تلقائياً بالقالب النهائي
لذا احببت ان اضع الطريقة للجميع فيمكنكم بدلاً من كتابة الكود السابق ان تستخدمو هذا الكود
HTML:
$0
<xf:if is="$xf.options.mfa_act == 1">
<xf:if is="$xf.options.mfa_place == 3">
<xf:include template="wsm_template_sidebar" />
</xf:if>
</xf:if>
لاحظو اننا استغنينا عن الكود في خانة البحث ووضعنا بدلاً عنه [ $0 ]
فاذا اردت ان تضع القالب تحت كود البحث فضع هذه العلامة [ $0 ] فوق كودك تماما ً كما فعلنا في الشريط الجانبي
واذا اردت ان تضع القالب فوق كود البحث فضع العلامة تحته
ثم قم بالتجربة كما فعلنا مع الاستبدال الاول واذا كانت النتيجة نفس السابقة اضغط حفظ
وبهذه النتيجة يكون درسنا قد انتهى لهذا اليوم باضافة تعديلات القوالب وفي الدرس القادم سوف نتحدث عن تصدير الاضافة واعداد ملف بياناتها
ولمن اراد القرائة اكثر عن القوالب وعن استخدام الدوال فيها فسوف اترك لكم هذا الرابط كمرجع فيه اهم الدوال المستخدمه في القوالب
ان اصبت فمن فضل الله علي وان اخطأت فجل من لايخطأ
احترامي وتقديري
اخوكم
شقاوي
التعديل الأخير: