• أعضاء وزوار معهد زين العربية، نود أن نعلمكم أن المعهد سيشهد في الفترة القادمة الكثير من التغيرات سواءا على المستوى الاداري او مستوى الاقسام، لذا نرجو منكم التعاون، وأي ملاحظات او استفسارات يرجى التواصل معنا عبر قسم الشكاوي و الإقتراحات و الطلبات ونشكركم على حسن تفهمكم وتعاونكم ،مع خالص الشكر والتقدير والاحترام من إدارة زين العربية.

[ حصريا ] الفرق بين Template وبين Macro وطريقة اﻻستخدام

shqawe

ربي أشرح لي صدري
27 يونيو 2019
3,164
23
2,082
113
K.S.A
www.shqawe.net
بسم الله الرحمن الرحيم

الحمد لله والصلاة والسلام على رسول الله نبينا محمد عليه افضل الصلاة واتم التسليم

اللهم لا علم لنا إلا ما علمتنا، إنك أنت العليم الحكيم، اللهم علمنا ما ينفعنا، وانفعنا بما علمتنا، وزدنا علما،

عدنا لكم بعد غياب اتمنى ان تعذرونا عليه وذلك لظروف خاصة

بدرس جديد نشرح فيه الفرق بين Template و macro في نسخ الزين فورو وسوف اقوم بالشرح حسب فهمي وحسب استخدامي فان كان في النقاط التي سوف اشرحها نقطة خاطئة او ناقصة فاتمنى من له الخبرة ان يصحح خطأي ويكمل نقص النقاط

اعتقد ان الكثير منكم قد رأى ان اغلب قوالب الزين فورو تحتوي على macro فما هو ال macro وكيف يتم استخدامه.

ملاحظة سوف يتم ذكر الماكرو في الدرس نسبة الى macro وقالب نسبة ل template لسهولة الكتابة

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

بتفصيل اكثر نستطيع عن طريق الماكرو نقل البيانات من قالب الى قالب دون الحاجة الى كتابة ملفات برمجية.


ولتوضيح الفكرة اكثر لنأخذ قالب post_macros مثالا ً على هذا الكلام فلو نظرنا الى القالب سوف نجد في هذا القالب هذا الماكرو :

HTML:
<xf:macro template="message_macros" name="user_info" arg-user="{$post.User}"
                            arg-fallbackName="{$post.username}"/>

نلاحظ انه تم نقل البيانات من قالب post_macros الى قالب message_macros باستخدام الماكرو ولو بحثت في الملفات البرمجية عن الماكرو user_info فلن تجد شيئا ً والسبب كما ذكرت سابقا ً ان الماكرو تكفل بذلك عن طريق تمرير البيانات باستخدام المتغير arg-user="{$post.User}"

اذا لنأتي لكيفية استخدام الماكرو وطريقة كتابته:

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

ثانيا ً طريقة انشاء الماكرو: لكي تنشئ الماكرو فانك تحتاج الى ثلاث نقاط وكلها قد تكون مطلوبه حسب استخدامك للماكرو

  1. اسم القالب: وهنا يتم كتابة القالب الذي يحتوي على معلومات الماكرو. [ مطلوب خارج قالب الماكرو]
  2. اسم الماكرو: وهنا يتم تعريف اسم الماكرو [ مطلوب داخل وخارج قالب الماكرو ]
  3. المتغيرات: والمتغيرات هنا يتم استخدامها حسب حاجتك فاحياناً قد تنشئ ماكرو لا يحتوي على اي متغير. [ اختياري حسب اﻻستخدام]
وبما اننا عرفنا اساسيات الماكرو نأتي لطريقة كتابة الماكرو حسب النقاط وبناء على مثالنا

سوف نقوم اولا ً بانشاء قالب باسم xenarbia_text_macro وكما ذكرت في النقاط السابقة هذه النقطة مهمة وسوف يكون محتواه كالتالي:


HTML:
<xf:macro name="first_macro" arg-user="!">
تذكر عضونا الغالي {$user.username} قوله عز وجل:
    <br />
مَّا يَلْفِظُ مِن قَوْلٍ إِلَّا لَدَيْهِ رَقِيبٌ عَتِيدٌ
</xf:macro>

لنشرح ما ذا فعلنا في مثالنا السابق وبناء عل النقاط التي ذكرتها :

قمنا بانشاء قالب باسم : xenarbia_text_macro
ثم قمنا بانشاء الماكر واعطيناه اسم: first_macro
ثم قمنا بتمرير متغير : وهنا المتغير هو $user ولاحظو معي نقطة مهمة عند تمرير المتغيرات للماكرو كل ما عليك اذا ردت تمرير متغير للماكرو هو ان تضع عبارة arg ثم بعدها تضع علامة الناقص - وتكتب بعدها اسم المتغير حسب ما تريد ومن ثم نضيف علامة التعجب ! كقيمة للمتغير بهذه الطريقة

HTML:
arg-xenarabia="!"

ويمكنك اضافة متغيرات بعدد ﻻ نهائي ولكن المهم انها تكون موجودة في القالب المصدر وهذا ما سوف نتطرق له في النقطة التالية:

اﻻن بعد انشاء قالب الماكرو وبعد انشاء الماكرو بالمحتوى الخاص به تبقى لنا تفعيل هذا الماكرو في القالب الذي سوف نستهدفه والذي اشرت اليه في السطر السابق بالقالب المصدر

وفي مثالنا ذكرت ان القالب المستهدف سوف يكون message_macros لذا لنفتح هذا القالب ونقوم باضافة الماكرو الخاص بنا بهذه الطريقة :

HTML:
<xf:macro template="xenarbia_text_macro" name="first_macro" arg-user="{$user}" />

1.png

كما تلاحظون قمنا باتباع النقاط الخاصة بكتابة الماكرو حسب اهميتها كالتالي:

قمنا بكتابة اسم قالب الماكرو
قمنا بكتابة الماكرو المستهدف في قالب الماكرو
قمنا بكتابة المتغير ولكن عند كتابة المتغير في القالب المستهدف او القالب المصدر ﻻبد من تمرير قيمة المتغير من نفس القالب المصدر فالمتغير $user
معرف وموجود في القالب المصدر وهو message_macros لذا من المهم ان يكون المتغير الذي تريد تمريره ان يكون معرف في القالب المصدر

في النهاية لنرى نتيجة عملنا وسوف تكون كالتالي:

2.png

واتمنى في النهاية ان اكون وفقت في الشرح وكما ذكرت في اول الدرس هذه المعلومات حسب خبرتي وتعاملي وفهمي للقالب والماكرو

فان اصبت فهذا من فضل الله علي وان اخطأت فجل من ﻻ يخطأ

تقبلوا احترامي وتقديري
اخوكم
شقاوي
 
التعديل الأخير:
بوركت أخي الحبيب شقاوي
درس بسيط ورائع
أعتقد أن الموضوع تمام كدا وأن الماكرو لا يحتاج توضيح أكثر :D
 
بارك الله فيك أخي شاقوي
موضوع قيم جداا و شرحك بسيط لدرجة يخليك تستوعب الشرح من المرة الأولى
🌹
 
بوركت أخي الحبيب شقاوي
درس بسيط ورائع
أعتقد أن الموضوع تمام كدا وأن الماكرو لا يحتاج توضيح أكثر :D

ما شاء الله عليك اخي تركي درس جميل و توضيح شامل للفرق بين macros و template
عفاك الرحمان و سلمت يداك
و منتظرين مثل هذه الدروس بشوق

بارك الله فيك أخي شاقوي
موضوع قيم جداا و شرحك بسيط لدرجة يخليك تستوعب الشرح من المرة الأولى
🌹

حياكم الله وبياكم اخواني

والحمد لله اني قد وفقت في الشرح لان في مراحل في الدرس حسيت اني ما فهمتها 😁

وحاضرين للغالين في اي سؤال والله يكتب لنا العمر والعافية لنضيف مزيد من الدروس في المستقبل

احترامي وتقديري
اخوكم
شقاوي
 

إحصائيات المنتدى

المواضيع
1,580
المشاركات
17,817
الأعضاء
1,149
آخر عضو مسجل
hoxty
أعلى