SET# وGET#: تعريف واسترجاع

تنشئ علامة #SET متغيراً يتم استخدامه في اي مكان في الصفحة النموذجية.
وتتيح علامة #GET استرجاع هذا المتغير.

#SET{متغير,قيمة}
#GET{قيمة} تسترجع «قيمة»

يمكن للمتغير الذي أنشأته #SET ان يكون سلسلة نصية او مصفوفة.

- سلسلة نصية:
#SET{my_string, مقال بقلم #NOM}

وتعرض #GET{my_string}:
مقال بقلم زياد

- مصفوفة [أنظر أيضاً المقال المخصص للمصفوفات.]]:
#SET{my_table, #ARRAY{a,واحد,b,إثنان,c,ثلاثة,d,أربعة}}

وتعرض [(#GET{my_table}|foreach)]:

  • a => واحد
  • b => إثنان
  • c => ثلاثة
  • d => أربعة

استخدام متطور للسلاسل النصية

- عبارة منتظمة:

#SET{reg1, '(^.*/[^/]+[/])'}
#SET{reg2, '\.[\w-_]+?'}
<BOUCLE_def(DOCUMENTS){tout}>
[(#FICHIER|replace{#GET{reg2}}|replace{#GET{reg1}})]<hr />
</BOUCLE_def>


تتيح استرجاع وعرض اسم ملف مستند دون مساره (path) ولاحقته.
مثلاً، اذا كان #FICHIER هو IMG/pdf/Stats_311207.pdf نعرض Stats_311207.

وتكمن الفائدة هنا في استخدام علامتي #SET و#GET للعبارات المنتظمة في السماح باستخدام الأقواس [ و] في مرشح |replace.

- النتيجة المسترجعة من أمر إدراج INCLURE هي

[(#SET{return, #INCLURE{fond=process}})]

القيمة الافتراضية

اذا لم يكن المتغير variable معرفاً بواسطة علامة #SET{variable, value} سابقة، من الممكن تحديد قيمة افتراضية للمتغير عند وضع علامة #GET:
#GET{variable, default_value} تسترجع «default_value» اذا لم يتم تحديد «variable» مسبقاً.

تنبيه: هذه الطريقة لا تعطي المتغير «variable» قيمة «default_value».

مدى المتغير المحدد بواسطة SET#

تبقى المتغيرات التي تحددها علامة #SET محلية في الصفحة النموذجية حيث يتم تحديدها.

هكذا لا يمكن لمتغير حددته SET في ملف مدرج ان يسترجع بواسطة GET في الملف الحاوي.

placer

أين يجب وضع إعلان SET#

اذا اردنا من حلقة معينة ان تعطي قيمة او أكثر الى متغير تم تعزيفه بإعلان #SET، يجب وضع إعلان #SET قبل أول علامة فاتحة من الحلقة.

وهذا الموقع مهم جداً في حال وجود حلقة بكتابتها الكاملة (والحال انه اذا وضعنا إعلان #SET بين <B_..> و<BOUCLE_...>، سيتم تأصيله بعد تنفيذ الحلقة وبالتالي نفقد القيمة المعرّفة فيه).

مؤلف جورج نُشر في: تم التحديث: 26/10/12

الترجمات: عربي, català, English, Español, français, Nederlands