SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

تحميل

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

حزيران (يونيو) 2011

كل اصدارات هذا المقال:

تنشئ علامة #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_...>، سيتم تأصيله بعد تنفيذ الحلقة وبالتالي نفقد القيمة المعرّفة فيه).


عرض الصفحة النموذجية لهذه الصفحة موقع صمم بنظام SPIP | جاي ترجمه | المجال الخاص