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

تحميل

حلقة ARTICLES (المقالات)

تشرين الأول (أكتوبر) 2003 — به روز آوري : آب (أغسطس) 2010

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

تتم برمجة حلقة المقالات بوضع ARTICLES (لا تنسى S الجمع) بين هلالين:

<BOUCLEn(ARTICLES){critères...}>

فالعناصر الموجودة في هذه الحلقة هي مقالات.


معايير اختيار المقالات

نستخدم احد المعايير (criteria) التالية لنحدد كيفية اختيار المقالات في الحلقة.

- {id_article} (الرقم التسلسلي للمقال). يسترجع المقال الذي يحمل الرقم التسلسلي id_article. وبما ان هذا الرقم فريد، لا يسترجع هذا المعيار الا مقال واحد او صفر مقالات.

- {id_rubrique} (الرقم التسلسلي للقسم). يسترجع المقالات الموجودة في القسم الذي يحمل الرقم التسلسلي id_rubrique.

- {id_secteur} (الرقم التسلسلي للقسم الاساسي). يسترجع المقالات الموجودة في القسم الاساسي الذي يحمل هذا الرقم التسلسلي (ونذكر ان الاقسام الاساسية هي الاقسام الموجودة في اصل الموقع او اعلى التنظيم الهرمي وليس داخل اقسام اخرى).

- {branche} (منذ SPIP 1.4 ) (الفرع) يسترجع مجموع المقالات الموجودة في القسم واقسامه الفرعية. (انه نوع من الامتداد لمعيار {id_secteur}. الا انه، على عكس {id_secteur=2}، لا يمكن تحديد فرع مباشرة بواسطة {branche=2}: فمن الناحية التقنية يجب على القسم المطلوب ان يكون في السياق النشط. ينصح باستخدام هذا المعيار بحذر فإذا كان الموقع جيد البنية، ليس من المتوقع ان تحتاج اليه الا في حالات خاصة جداً).

- {id_auteur} (الرقم التسلسلي للمؤلف). يسترجع المقالات التي كتبها المؤلف رقم id_auteur (وهو مفيد لعرض قائمة بالمقالات التي كتبها هذا المؤلف).

- {id_mot} (الرقم التسلسلي للمفتاح). يسترجع المقالات المرتبطة بالمفتاح الذي يحمل هذا الرقم (وهو مفيد للحصول على المقالات المتعلقة بموضوع معين مثلاً).

- {titre_mot=س س س س} (اسم المفتاح) او{type_mot=ش ش ش ش} (نوع المفتاح) (منذSPIP 1.3) يسترجعان المقالات المرتبطة بالمفتاح الذي يحمل اسم «س س س س» او المرتبطة بالمفاتيح العائدة الى مجموعة المفاتيح «ش ش ش ش». اذا حددنا عدة معايير {titre_mot=س س س س} او {type_mot=ش ش ش ش} في حلقة واحدة، يتم استرجاع كل المقالات التي ترتبط بجميع المفاتيح في آن واحد (جديد SPIP ١.٩).

- {id_groupe=ص ص ص ص} (منذ SPIP 1.4 ) (الرقم التسلسلي لمجموعة المفاتيح) يتيح اختيار المقالات المرتبطة بمجموعة مفاتيح، وهو يعادل {type_mot} ولكن بما اننا ادخلنا رقماً تسلسلياً تكون الصيغة الاملائية للامر «انظف». [ملاحظة: في وضع SPIP الحالي، لا يمكن اضافة هذا المعيار الى المعيار السابق {type_mot=ش ش ش ش}].

- {lang} (منذ SP<font color="yellow">IP 1.7.1) يسترجع مقالات اللغة المطلوبة في عنوان الصفحة.

- {traduction} (منذ SP<font color="yellow">IP 1.7.1) يسترجع ترجمات المقال الحالي بمختلف اللغات المترجم اليها.

- {origine_traduction} (منذ SP<font color="yellow">IP 1.7.1) (مصدر الترجمة) يسترجع المقال المرجع الذي ترجم المقال الحالي عنه.

- المعياران {date} (او {date=...} او {date==...}) يتيحان استرجاع مقال بالاعتماد على التاريخ الذي تم تمريره في عنوان url (منذ SP<font color="yellow">IP 1.7.2).

- {recherche} (اي بحث) يسترجع المقالات التي تم العثور عليها من جراء البحث عن كلمة معينة في واجهة البحث في الموقع. راجع المقال المخصص لمحرك البحث.

- {tout} (اي «الكل»): يتم اختيار كل المقالات المنشورة في الموقع (وفي كل الاقسام). وهذا المعيار مفيد اذا اردنا عرض احدث المقالات (الموجودة في كامل الموقع) في الصفحة الرئيسية. (في الحقيقة لا تتم معالجة المعيار «tout» كأمر برمجي: انه تذكير للمطور فقط اذ نحصل على النتيجة نفسها اذا لم نستخدم اي معيار في الحلقة).

Lorsqu’une boucle renvoie plusieurs dizaines d’articles (ou, pour une pétition, plusieurs milliers de signatures), il n’est pas souhaitable, voire impossible, de tout afficher sur une seule page.

|?{

Lorsqu’une boucle renvoie plusieurs dizaines d’articles (ou, pour une pétition, plusieurs milliers de signatures), il n’est pas souhaitable, voire impossible, de tout afficher sur une seule page.

,

Pour mettre en place le système de pagination, il faut ajouter à votre boucle le critère {pagination} comme ici, par exemple :

Vous pouvez voir l’utilisation de la balise #PAGINATION nécessaire dans le mécanisme de pagination. Si le site comporte 90 articles publiés, cette boucle affichera la liste des dix plus anciens articles, surplombée de liens conduisant vers la page qui affiche les dix suivants, les dix d’après, etc. Ces liens sont numérotés comme suit :

0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | ...

Le numéro à partir duquel les résultats sont affichés est passé dans l’url via un paramètre {debut_page=x} portant le même nom (ici, « page ») que la boucle concernée. (Ce paramètre est exploitable dans une autre boucle via le critère classique {debut_page,10}.)

A noter : le nombre total de liens affichés est limité ; des points de suspension permettent, le cas échéant, d’aller directement à la toute fin de la liste, ou de revenir au tout-début.

Changer le pas de la {pagination}

Le nombre standard de 10 éléments par page peut être modifié par un paramètre supplémentaire dans le critère.

Ainsi

<BOUCLE_page (ARTICLES) {pagination 5}>
#TITRE <br />
</BOUCLE_page>

retournera les titres de cinq articles à partir de debut_page.

Le paramètre en question peut lui-même être composé comme on le souhaite à partir d’autres balises, notamment #ENV{xx}, ce qui permet de faire un affichage à la demande très complet.

})

Le critère {si ...} permet de conditionner l’exécution d’une boucle à la condition exprimée en argument dans le critère.

|?{

Le critère {si ...} permet de conditionner l’exécution d’une boucle à la condition exprimée en argument dans le critère.

,

Le critère {si ...} permet de conditionner l’exécution d’une boucle à la condition exprimée en argument dans le critère.

Exemple :

<BOUCLE_art(ARTICLES) {si #ID_RUBRIQUE|=={8}} {par date}>
 <a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_art>

La boucle s’exécutera uniquement si, dans l’environnement d’exécution de la boucle, #ID_RUBRIQUE est égal à "8".

La partie conditionnelle de la boucle, celle inscrite entre </B_art> et <//B_art> , sera quant à elle exécutée dans les deux cas où :

  • soit #ID_RUBRIQUE n’existe pas dans l’environnement ou n’est pas égal à 8 (prise en compte du critère {si ...} ;
  • soit #ID_RUBRIQUE est bien égal à 8 mais la boucle ne retourne aucun résultat.

Ce nouveau critère {si ...}, disponible depuis SPIP 3.0, permet de s’affranchir enfin de l’impossibilité d’utiliser une boucle dans la partie conditionnelle d’une balise. Par exemple, là où il était nécessaire d’écrire

 [(#SESSION{statut}|=={1comite}|oui) <INCLURE{fond=mapage, ...}> ... ]

parce que mapage.html contenait une boucle, il est désormait possible d’écrire directement dans le squelette appelant (sans INCLURE donc) :

 <BOUCLE_xy(AUTEURS) {si #SESSION{statut}|=={1comite}}> ...

Bien sûr, le critère {si ...} peut porter sur tout type de variables (#ENV, #GET,...)
Par exemple, une boucle dont l’exécution sera conditionnée par le résultat d’un calcul faisant intervenir une variable de l’environnement #ENV{var} (récupérée depuis l’url) et une variable #GET{val} (préalablement définie dans le squelette) :

#SET{val, 2}
<BOUCLE_a(ARTICLES) {si #ENV{var}|plus{#GET{val}}|=={5}}>
...
 
 
})

وضعيات المقال

مثل سائر حلقات SPIP، لا تسترجع حلقة ARTICLES الا مقالات منشورة. في حال تم اعداد الموقع لكي لا يعرض المقالات «المؤجلة» يتم تطبيق اختبار اضافي على تاريخ المقال. حتى الاصدار SPIP 1.8.2، لم تكن توجد اية وسيلة تتيح عرض المقالات «قيد التحرير» او «المعروضة للتقييم» او «المرفوضة» ولكن اصبح الامر ممكناً الآن بفضل معيار {statut}:

  • {statut IN prop,prepa,publie,refuse,poubelle} (منذ SPIP 1.8.2) يحدد المقالات نسبة الى وضعيات نشرها:
  • {statut=prepa} يحدد المقالات قيد التحرير في المجال الخاص
  • {statut=prop} يحدد المقالات المعروضد للتقييم في المجال الخاص
  • {statut=publie} يحدد المقالات المنشورة في الموقع العمومي بما فيها المقالات «المؤجلة»
  • {statut=refuse} يحدد المقالات المرفوضة
  • {statut=poubelle} يحدد المقالات التي تم وضعها في المهملات.

معايير العرض

بعد تحديد احد المعايير اعلاه، يمكن اضافة المعايير التالية للحد من عدد المقالات التي نريد عرضها.

- يمكن بالطبع تطبيق المعايير المشتركة لكل الحلقات.

- {exclus} (اي مستثنى) ويتيح استثناء المقال الذي نوجد فيه من المقالات المعروضة (عندما نعرض المقالات الموجودة في القسم نفسه ولا نريد عرض المقال الذي نوجد في صفحته مثلاً).

- {doublons} (اي متكرر) او {unique} (اي فريد): هذان المعياران متطابقان تماماً ويتيحان منع عرض مقالات تم عرضها في حلقات اخرى في الصفحة تحتوي هي ايضاً على المعيار {doublons}.

علامات هذه الحلقة

العلامات المسترجعة من قاعدة البيانات

تعود العلامات التالية الى العناصر المسترجعة مباشرة من قاعدة البيانات. يمكنك استخدامها ايضاً كمعايير فرز وترتيب (مثلاً: {par date} اي حسب التاريخ، او {par titre} اي حسب العنوان).

- #ID_ARTICLE يعرض الرقم التسلسلي الفريد للمقال. وهو مفيد لإنشاء وصلات هايبرتكست غير متوقعة (مثلاً الى صفحة «طباعة هذا المقال»).

- #SURTITRE يسترجع العنوان المدخل للمقال.

- #TITRE يسترجع عنوان المقال.

- #SOUSTITRE يسترجع العنوان الفرعي.

- #DESCRIPTIF يسترجع الوصف.

- #CHAPO يسترجع المقدمة.

- #TEXTE يسترجع مادة المقال.

- #PS يسترجع الملاحظة.

- علامات التواريخ: #DATE, #DATE_REDAC, #DATE_MODIF مفصلة في مقال آخر.

- #ID_RUBRIQUE تعرض الرقم التسلسلي للقسم الذي يحتوي المقال.

- #ID_SECTEUR تعرض الرقم التسلسلي للقسم الاساسي الذي يحتوي المقال (نذكر ان القسم الاساسي هو القسم الموجود في اصل الموقع).

- #NOM_SITE et #URL_SITE تعرضان اسم وعنوان URL لرابط هايبرتكست العائد للمقال (اذا تم تفعيل هذا الخيار).

- #VISITES تعرض عدد الزيارات التي سجلها المقال.

- #POPULARITE تعرض نسبة شعبية المقال. راجع مقال «شعبية المقالات».

- #LANG يسترجع لغة المقال.

العلامات التي يحسبها SPIP

العلامات التالية ناتجة عن المعالجة التي يقوم بها SPIP وبالتالي لا يمكن استخدامها كمعايير ترتيب وفرز.

- #URL_ARTICLE تعرض عنوان URL الخاص بالمقال.

- #NOTES تعرض حواشي المقال (المحسوبة من خلال تحليل النص).

- #INTRODUCTION (منذ SPIP 1.4 ) تعرض وصف المقال والا فتعرض ارل ٦٠٠ حرف من بداية المقال (المقدمة). في الإصدارات السابقة لـSPIP 1.3، كانت دائماً تعرض الأحرف الأولى للمقال (لم يكن الوثف مستخدماً).

- #LESAUTEURS تعرض مؤلفي المقال مع روابط الى صفحاتهم الشخصية (لإتاحة مراسلتهم او الاطلاع على كل مقالاتهم المنشورة في الموقع). مع هذه العلامة يمكن الاستغناء عن بناء حلقة AUTEURS للوصول الى النتيجة نفسها. في الإصدارات السابقة لـSPIP ١.٩، كانت هذه العلامة تعرض اسماء مؤلفي المقال مع روابط الى بريدهم الالكتروني.

- #PETITIONتعرض نص العريضة المرتبطة بالمقال اذا وجدت. واذا وجدت ولكن نصها فارغ، تسترجع مسافة (اي سلسلة غير فارغة لا تؤثر على علامات html في الصفحة).

- #FORMULAIRE_SIGNATURE تبني استمارة توقيع العريضة المرتبطة بالمقال وتعرضها.

- #FORMULAIRE_FORUM تبني استمارة ارسال مشاركة الى المنتدى المرتبط بالمقال وتعرضه. انظر «الاستمارات» لمزيد من المعلومات.

- #PARAMETRES_FORUM تبني وتعرض قائمة لمتغيرات التي تستثمرها استمارة المنتدى لإتاحة الرد على المقال. مثلاً:

منذ SPIP 1.8.2 يمكن تمرير متغير يحدد عنوان الصفحة التي يعود اليها الزائر بعد آرسال المشاركة. مثلاً: <a href="spip.php?page=forum&(#PARAMETRES_FORUM{#SELF})">الرد على هذا المقال</a>

لمحة تاريخية: في الإصدارات السابقة لـSPIP ١.٩، كان يجب كتابة forum.php3? وليس spip.php?page=forum&

بشكل عام وحتى SPIP ١.٩ كانت عناوين URL التي ينتجها SPIP على شكل http://mysite.net/xxx.php3 وليس http://monsite.net/spip.php?page=xxx.

الشعارات

- #LOGO_ARTICLE وهو شعار المقال ويمكن اضافة شعار حوم اليه (اي تغيير الشعار عندما يحوم مؤشر الفأرة فوقه).

- #LOGO_ARTICLE_RUBRIQUE شعار المقال الذي يمكن وضع شعار القسم مكانه في حال غيابه.

- #LOGO_RUBRIQUE شعار القسم الذي يحتوي المقال.

ويتم وضع الشعارات بالطريقة التالية:

ويمكن للمحاذاة ان تكون الى اليمين (right) او اليسار (left). اما العنوان فهو عنوان URL الذي يدل اليه الرابط المرتبط بالشعار (مثلاً

). واذا لم نحدد عنوان يبقى الشعار دون رابط.

اذا اردنا استرجاع اسم ملف الشعار مباشرة (فالعلامات السابقة تنتج علامات html كاملة لإدراج الصورة في الصفحة)، لعرض الصورة كخلفية جدول مثلاً، نستخدم المرشح |file كالتالي: [(#LOGO_ARTICLE|file)].

من ناحية اخرى هناك علامتان تتيحان استرجاع احد الشعارين (الشعار الاساسي وشعار الحوم):

- 

للشعار دون الحوم،
- 

لشعار الحوم.


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