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

shqawe

ربي أشرح لي صدري
طاقم الإدارة
إنضم
27 يونيو 2019
المشاركات
3,370
مستوى التفاعل
2,918
النقاط
113
الإقامة
K.S.A
  • التقييمات: 1
  • #1
بسم الله الرحمن الرحيم

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

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

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

بدرس جديد نشرح فيه الفرق بين 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

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

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

تقبلوا احترامي وتقديري
اخوكم
شقاوي
 
التعديل الأخير:

MesterPerfect

:: مراقب زين العربية ::
طاقم الإدارة
إنضم
28 يناير 2019
المشاركات
2,721
مستوى التفاعل
2,181
النقاط
113
العمر
24
الإقامة
sohag, Egypt
الموقع الالكتروني
بوركت أخي الحبيب شقاوي
درس بسيط ورائع
أعتقد أن الموضوع تمام كدا وأن الماكرو لا يحتاج توضيح أكثر :D
 

أبو غَيْث

:: الإدارة العامة ::
طاقم الإدارة
إنضم
23 يناير 2019
المشاركات
5,792
مستوى التفاعل
3,937
النقاط
113
العمر
41
الإقامة
المغرب
الموقع الالكتروني
ما شاء الله عليك اخي تركي درس جميل و توضيح شامل للفرق بين macros و template
عفاك الرحمان و سلمت يداك
و منتظرين مثل هذه الدروس بشوق
 

Fallag

:: الأعضاء ::
[ عُملاء زين العَربية ]
إنضم
20 مارس 2019
المشاركات
298
مستوى التفاعل
87
النقاط
28
الموقع الالكتروني
بارك الله فيك أخي شاقوي
موضوع قيم جداا و شرحك بسيط لدرجة يخليك تستوعب الشرح من المرة الأولى
🌹
 

shqawe

ربي أشرح لي صدري
طاقم الإدارة
إنضم
27 يونيو 2019
المشاركات
3,370
مستوى التفاعل
2,918
النقاط
113
الإقامة
K.S.A
بوركت أخي الحبيب شقاوي
درس بسيط ورائع
أعتقد أن الموضوع تمام كدا وأن الماكرو لا يحتاج توضيح أكثر :D

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

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

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

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

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

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

bousaid

:: الأعضاء ::
إنضم
27 يناير 2019
المشاركات
180
مستوى التفاعل
450
النقاط
63
بارك الله فيك ... شرح مميز و موفق (y)
 

shqawe

ربي أشرح لي صدري
طاقم الإدارة
إنضم
27 يونيو 2019
المشاركات
3,370
مستوى التفاعل
2,918
النقاط
113
الإقامة
K.S.A
بارك الله فيك ... شرح مميز و موفق (y)

والله يبارك بعمرك اخوي مصطفى نورت الموضوع يالغالي واشادة اعتز بها 🙏
 

rachidrachid99

:: الأعضاء ::
إنضم
28 مارس 2021
المشاركات
43
مستوى التفاعل
18
النقاط
8
جزاك الله خيرا.
كيف يتم التعامل مع قواعد البيانات ؟
 

shqawe

ربي أشرح لي صدري
طاقم الإدارة
إنضم
27 يونيو 2019
المشاركات
3,370
مستوى التفاعل
2,918
النقاط
113
الإقامة
K.S.A
واياك اخوي راشد اتمنى زيارة هذا الرابط ففيه شرح كامل يفيد كل مطور وانا شخصيا ًتعلمت منه الكثير وذكرت هذا في دروس برمجة اﻻضافات

 

rachidrachid99

:: الأعضاء ::
إنضم
28 مارس 2021
المشاركات
43
مستوى التفاعل
18
النقاط
8

جميع المواضيع والمشاركات والتعليقات المكتوبة تعبّر عن وجهة نظر صاحبها ,, ولا تعبّر بأي شكل من الاشكال عن وجهة نظر إدارة زين العربية .ولا نتحمل أي مسؤولية قانونية حيال ذلك :: يتحمل كاتبها مسؤولية النشر ::

الأعضاء المتصلون

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

المواضيع
2,098
المشاركات
22,079
الأعضاء
984
آخر عضو مسجل
mabdelwanis
أعلى