مرشحات SPIP

رأينا في علامات SPIP انه من الممكن تغيير تصرف العلامات وعرضها بتزويدها بمرشحات (filters).

[ خيار قبل (#علامة|مرشح١|مرشح٢|...|مرشحن) خيار بعد ]

تطبق هنا المرشحات ١ و٢ ... ون على العلامة #علامة.

مرشحات تصميم الصفحات

لم يعد من المستحسن استخدام مرشحات تصميم الصفحات التالية (majuscules، justifier...). وننصح باستخدام اوراق الانماط المتاسبة بدلاً منها.

 majuscules (اي الحروف الكبيرة) يحول النص اللاتيني الى حروف كبيرة. وبالمقارنة مع دالة PHP التي توفر الوظيفة نفسها، يتفوق majuscules بكونه يتعامل مع الحروف ذات الاشارات المصوتة (accented).

 justifier (اي المحاذاة) يضبط النص كلياً (يعادل <P align=justify>).

 aligner_droite يضبط النص الى اليمين (يعادل <P align=right>).

 aligner_gauche يضبط النص الى اليسار (يعادل <P align=left>).

 centrer يوسّط النص (يعادل <P align=center>).

مرشحات التاريخ

يتم تطبيق المرشحات التالية على التواريخ ([(#DATE|affdate)] مثلاً).

 affdate يعرض التاريخ، مثلاً «١٣ كانون الثاني ٢٠٠٣».

ويحسن [SPIP 1.8] استخدام هذا المرشح. فيمكن ادخال قيمة تنسيق التاريخ فيه تتوافق مع تنسيقات SPIP ('saison'، الخ) او احد تنسيقات امر date في php (مثلاً «'Y-m-d'»).

على سبيل المثال:

  • يعرض [(#DATE|affdate{'Y-m'})] السنة والشهر بالارقام ويفصل بينها خط.
  • اما الكتابة [(#DATE|affdate{'saison'})]، فتعادل تماماُ الكتابة [(#DATE|saison)].
     هناك ايضاُ تنوعات من affdate تعطي اختصارات:

affdate_jourcourt يعرض اسم الشهر ورقم اليوم مثلاُ «١٩ نيسان». واذا كان هذا التاريخ ليس في السنة الحالية، يعرض السنة ايضاُ «٣ تشرين الثاني ٢٠٠٤».

affdate_court يعرض اسم الشهر ورقم اليوم مثلاُ «١٩ نيسان». واذا كان هذا التاريخ ليس في السنة الحالية، يعرض الشهر والسنة فقط بدون اليوم، «تشرين الثاني ٢٠٠٤»

affdate_mois_annee يعرض الشهر والسنة فقط، «نيسان ٢٠٠٥» او «تشرين الثاني ٢٠٠٣».

 jour يعرض اليوم (بالارقام).

 mois يعرض الشهر (بالارقام).

 annee يعرض السنة.

 [SPIP ١.٠.٢] heures يعرض ساعة التاريخ (فالتواريخ التي يوفرها SPIP لا تحتوي التاريخ نفسه وحسب بل التوقيت ايضاً).

 [SPIP ١.٠.٢] minutes يعرض دقائق التاريخ.

 [SPIP ١.٠٢] secondes يعرض الثواني.

 nom_jour يعرض اسم اليوم (الاثنين، الثلاثاء...).

 nom_mois يعرض اسم الشهر (كانون الثاني، شباط،...).

 saison يعرض الفصل (الربيع، الصيف،...).

 يأتي [SPIP ١.٨] بالمرشح unique (فريد) الذي يسترجع قيمة العنصر المطبق عليه المرشح فقط اذا كانت هذه المرة الاولى التي يُعثر فيها عليه. ولا يقتصر هذا المرشح على التواريخ ولكن تبرز اهميته حين نريد عرض قائمة مقالات مرتبة بالتاريخ:

<BOUCLE_blog(ARTICLES){par date}{inverse}{"<br>"}>
[<hr> <h1>(#DATE|affdate_mois_annee|unique)</h1>]
#TITRE ...
</BOUCLE_blog>

ولا تعرض هذه العلامة التاريخ الا عندما يتغير الشهر.

وهذا مثال آخر:

<BOUCLE_blog2(ARTICLES){par date}{inverse}>
    [<hr><h1>(#DATE|annee|unique)</h1>]
        [<h2>(#DATE|affdate{'Y-m'}|unique|nom_mois)</h2>]
             <a href="#URL_ARTICLE">#TITRE</a><br />
</BOUCLE_blog2>

يعرض قائمة تشبه:

   ٢٠٠٥
        آذار
                مقال من آذار
                مقال آخر من آذار
        شباط
                مقال من شباط
   ٢٠٠٤
        كانون الاول
                مقال

نستخدم الكتابة affdate{'Y-m'} لنعرض الشهر في كل سنة. والحال:

  • اذا اقتصرنا على #DATE|nom_mois|unique، لن تظهر اسماء الاشهر الا في السنة الاولى.
  • اذا كان الترشيح #DATE|unique|nom_mois سنعرض كل التواريخ. فالعلامة #DATE تسترجع تاريخاً كاملاً يحتوي على الساعة. هناك اذا احتمال كبير ان يكون تاريخا مقالين تم نشرهما في اليوم نفسه، مختلفين.

لذلك نحتفظ فقط بالشهر والسنة من التاريخ قبل ترشيحه بـunique.

يمكننا تمرير معامل اختياري لهذا المرشح للتمييز بين استخدامين مختلفين له. مثلاً، لن يؤثر [(#DATE|affdate_mois_annee|unique{ici})] على [(#DATE|affdate_mois_annee|unique{la})].

مرشحات النصوص

ظهر معظم هذه المرشحات في الاصدار SPIP 1.4 .

 liens_ouvrants (اي وصلة فاتحة)، يحول وصلات SPIP التي تدل الى مواقع خارجية الى وصلات من النوع المنبثق (popup) الذي يفتح نافذة جديدة. انه يعادل target=blank في HTML. ملاحظة: يعتبر مطورو SPIP ان هذه الوظيفة غير لائقة لأن الزوار يعرفون تماماً اذا كانوا يريدون فتح نافذة جديدة ام لا. الا ان هذه الوظيفة تفرض عليهم ذلك، ولكن الطلب عليها كان قوياً جداً فرضخنا!

 supprimer_numero (اي حذف الرقم) يستخدم لحذف رقم عنوان المقال في حال وجوده واذا اردنا فرز المقالات حسب رقم المقال ({par num titre}) ولكن دون عرض هذا الرقم (لأنه يستخدم لترتيب المقالات وحسب). اما تنسيق الارقام في العناوين فهو «س س. عنوان» حيث «س س» هو الرقم (يمكن ان يكون بأي حجم).

 منذ SPIP ١.٠، PtoBR يحول وظيفة فتح فقرة جديدة الى عودة بسيطة الى اول السطر مما يساهم في «شد» تصميم الصفحة، مثلاً في صفحة المحتويات.

 taille_en_octets (اي الحجم بالبايت) يتيح تحويل عدد بالبايت (٢٥٦٧٨٩٠٦) الى عدد اوضح (٢٤.٤ ميغابايت).

 supprimer_tags (اي حذف العلامات) وهو حذف صريح ومباشر لكل الـ<...>.

 textebrut (اي النص الخام) يقترب من مرشح supprimer_tags الا ان عمله اكثر دقة اذ يحول الفقرات وعلامات <br> الى قفز سطر والمسافات الجامدة (&nbsp;) الى مسافات عادية. ويستخدم مثلاً لإنشاء وصف META : [<meta name="description" content="(#DESCRIPTIF|textebrut)">]

 texte_backend يمكن استخدامه لتحويل نص ليكون متوافقاً مع تدفقات XML. ويستخدم هذا المرشح مثلاً، في الصفحة النموذجية backend.html التي تنتج خيوط RSS العائدة للموقع.

  يقطع couper النص بعد عدد محدد من الحروف. ويحاول عدم قطع الكلمات ويلغي تنسيق النص. اذا كان النص طويلاً جداً، يتم اضافة «(...)» في آخره. الحجم الافتراضي هو 50 حرفاً ولكن يمكن تحديد قيمة اخرى بإدخال معامل على المرشح. مثلاً: [(#TEXTE|couper{80})].

 lignes_longues اي سطور طويلة، منذ SPIP ١.٩، يقطع الكلمات الطويلة جداً (وهومفيد اذا كان لدينا مثلاً، عناوين URL يجب عرضها في مساحة ضيقة). ويقطع هذا المرشح افتراضياً بعد ٧٠ حرف ولكن يمكن تحديد طول آخر بإرفاق المرشح بعامل مثلاً: [(#URL_SITE|lignes_longues{40})].

 match يستخدم عبارة منتظمة (أنظر preg_match()) لاستخراج نمط في النص اذا وجد ولا يسترجع شيئاً اذا لم يوجد. مثلاً لاسترجاع اول كلمة في العنوان [(#TITRE|match{^\w+?})]. يمكن ان يكون نصاً بسيطاً، عرض "أسامة" في العنوان: [(#TITRE|match{أسامة})]

 replace يستخدم ايضاً عبارة منتظمة (انظر preg_replace()) لحذف او استبدال كل ظهور لنمط معين في النص. بمرافقة عامل واحد، عبارة منتزمة، يتم استبدال النمط بسلسلة نصية، يعني يحذف. مثلاُ لحذف كل ظهور لـ "notaXX" في النص [(#TEXTE|replace{nota\d*})]. عندما يتم تزويده بعامل ثان، سيتم استبدال كل ظهور للنمط بقيمة العامل الثاني. مثلاً لاستبدال كل ظهور لـ٢٠٠٥ او ٢٠٠٦ بـ٢٠٠٧ في النص [(#TEXTE|replace{200[56],2007})]. يمكن ان يكون نصوصاً بسيطة مصل استبدال "أيضاً" بـ"كذلك": [(#TEXTE|replaceأيضاً,كذلك)]

مرشحات الاختبار

 ادخل [SPIP ١.٦] المرشح |sinon (والا) الذي يحدد ما يجب عرضه اذا كان العنصر الذي يطبق عليه الترشيح فارغاُ: هكذا يعرض [(#TEXTE|sinon{"مادة غائبة"})] المادة، واذا لم يكن هناك اية مادة، يعرض «مادة غائبة».

  وادخل [SPIP ١.٨] المرشح |?{sioui,sinon} (اذا كان، اذا لم يكن) الذي يعتبر نسخة محسنة من المرشح |sinon. ويأخذ هذا المرشح معاملين:

  • sioui هي القيمد التي تظهر اذا كان العنصر غير فارغ.
  • sinon اختياري. وهي القيمة التي تظهر اطا كان العنصر الذي يطبق عليه الترشيح فارغاُ. [(#TEXTE|?{#TEXTE,"مادة غائبة"})] يشبه المثال الذي اوردناه للمرشح |sinon.

  ويأتي [SPIP ١.٨] بمجموعة من المرشحات تستخدم لمقارنة قيم بين بعضها:

  • يتيح |=={قيمة} و|!={قيمة} التأكد من معادلة او عدم معادلة بين العنصر المطبق عليه المرشح والقيمة المذكورة. مثلاً: <li [(#TITRE|=={افتتاحية}|?{'id="افتتاحية"',''})]>#TITRE</li>
  • ويقارن |>{قيمة}، |>={قيمة}، |<{قيمة} و|<={قيمة} بين العنصر المطبق عليه المرشح (الذي يجب ان يكون رقماً) والقيمة الرقمية المذكورة. مثلاً:

[(#TOTAL_BOUCLE) [(#TOTAL_BOUCLE|>{1}|?{'articles','article'})] في هذا القسم].

ملاحظة: بشكل عام، يمكن استخدام كل معاملات المقارنة في php لتلعب دور المرشحات في [SPIP 1.8].

مرشحات الشعارات

 fichier [SPIP 1.4] (اي الملف). اذا اضيف الى رمز ما (logo)، يسترجع هذا المرشح مباشرة اسم ملف الشعار.

||مرشحات اخرى. على عكس الاصدارات السابقة يتيح [SPIP 1.4] تطبيق مرشحات شخصية على الشعارات: بينSPIP ١.٤ و[SPIP ٢.١] (هذا الأخير غير مشمول)، مفهوم هذه الوظيف معقّد بعض الشيء من جراء إرادة المحافظة على التوافق مع SPIP ١.٣. ويتم التحليل على النحو التالي:

  • اذا كان «المرشح» الاول ليس «مرشح» محاذاة، يعتبر SPIP انه عنوان URL وينشئ وصلة من الشعار الى هذا العنوان.
  • اذا كان «المرشح» الاول مرشح محاذاة، يعتبر SPIP ان «المرشح» الثاني هو عنوان URL.
  • المرشحات التالية هي مرحات حقيقية في المعنى الاعتيادي (بما فيها مرشحات شخصية يتم اعلانها في ملف mes_fonctions.php.
  • لتطبيق اي مرشح دون ادخال عنوان URL، يجب وضع خطين عموديين قبله. مثلاً:
    <?php $logo = ‘[(#LOGO_RUBRIQUE||texte_script)]’; ?> يتيح استرجاع الشعار ووضعه في المتغير $logo، لمعالجته لاحقاً (انظر ادناه معنى مرشح |texte_script).

منذ SPIP ٢.١، أصبحت مرشحات الشعارات تتمتع بالكتابة نفسها التي تتمتع بها المرشحات الأخرى. فيكفي استخدام خط عمودي (|) واحد: [(#LOGO_XXX|filtre)].

لكن:
 #LOGO_XXX** يسترجع الملف
 #LOGO_XXX{top/left/right/center/bottom} ينتج محاذاة
 #LOGO_XXX{url} ينتج شعار يشكل رابطاً الى عنوان.

 يأني [SPIP 1.8] بالمرشحين hauteur (الارتفاع) وlargeur (العرض) اللذين يسترجعان ابعاد العنصر المطبق عليه المرشح اذا كان صورة.

لا يأتي هذان المرشحان بكبير فائدة اذا تم تطبيقهما مباشرة على شعار مستند كون HAUTEUR# و LARGEUR# متوافران اصلاُ للمستندات. في المقابل، يمكننا استخدامهما بعد مرشح image_reduire لمعرفة الابعاد الحقيقية للصورة التي تم تحجبمها.

بشكب عام، يمكن تطبيقهما على اي علامة (او مرشح) تسترجع علامة HTML الخاصة بالصور <img ...>.


 |image_reduire{عرض,ارتفاع} يفرض حداً اقصى لعرض الشعارات.

ويطبق هذا المرشح على شعارات المقالات بالطريقة التالية:

[(#LOGO_ARTICLE|right||reduire_image{130})]

في هذا المثال يظهر شعار المقال مضبوطاً الى اليمين وبحجم اقصى يبلغ ١٣٠ نقطة.

منذ [SPIP ١.٨.٢]، يمكن لهذا المرشح ان يأخذ معاملين هما largeur وhauteur. واذا كان احد المعاملين يعادل صفر، لن يتعامل SPIP الا مع الآخر ويحسب الأبعاد بالحفاظ على التناسب في الصورة. ويطبق هذا المرشح أيضاً على علامة #TEXTE ليفرض أبعاده على كل الصور التي ادخلها المحرر في مادته من خلال اختصارات SPIP.

فعلى سبيل المثال، يعرض

[(#TEXTE|image_reduire{600,0})]

كل الصور لالداخلة في النص بعرض حده الأقصى ٦٠٠ نقطة. هكذا يمكننا المحافظة على تصميم الصفحة دون تكليف المحرر عناء الاهتمام بحجم الصور التي يدخلها.

لمحة تاريخية: أدخل SP<font color="yellow">IP 1.7.1 مرشح |reduire_image. ولكن مع SPIP ١.٩، أصبح هذا المرشح |image_reduire (تبدأ مرشحات معالجة الصور كلها اذن بكتابة |image_).

ملاحظة: اذا كان خيار «انشاء المصغرات» محدداً في قسم اعداد الموقع، ستكون هذه الشعارات المصغرة ملفات صور قائمة بنفسها وناتجة آلياً عن الخادم (في افضل الحالات، اذا كانت مكتبة GD2 مثبتة على الخادم) وبالتنسيقات التي يدعمها الخادم (مع GD2 تكون تنسيقات JPG وPNG). والا فيتم عرض نسخة كاملة من الصورة ولكن بحجم يتم تحديده مباشرة في HTML (مع الجودة الرديئة التي تنتج عنه).

المرشحات الرياضية

أدخل SPIP ١.٩ مجموعة من مرشحات العمليات الرياضية.

 |plus{xx} و|moins{xx} و|mult{xx} هي تباعاً الجمع والطرح والضرب.

 |div{xx} هو القسمة غير اليوكليدية («الكسور العشرية»).

 |modulo{xx} هي فاضل القسمة اليوكليدية لعدد معين بعدد آخر.

مثلاً، يقوم [(#COMPTEUR_BOUCLE|modulo{5})] بالعد من صفر الى 4 ثم يعود الى صفر.

كذلك يمكن استخدام كل الدالات الرياضية في PHP كمرشحات.

مرشحات أخرى

 traduire_nom_langue ينطبق على علامة LANG# ويسترجع ترجمة لرمز اللغة (en، ar، fr الخ) التي تعطيها في هذه اللغة.

ملاحظة: تتم ترجمات اللرموز باللغة التي يدل اليها الرمز وتعتمد قواعد الكتابة في هذه اللغة،

فمثلاً، رمز «fr» يترجم الى «français» بحرف اول صغير بينما يترجم رمز «en» الى «English» بحرف اول كبير.

 alterner{a,b,c,...} [SPIP 1.8.2] ينطبق على علامة رقمية (عادة تكون COMPTEUR_BOUCLE# او TOTAL_BOUCLE#) ويعرض المعامل المناسب لقيمة هذه العلامة. يمكن هكذا تناوب العرض في حلقة. مثلاً، يعرض [(#COMPTEUR_BOUCLE|alterner{'white','yellow'})] لون «white» في اول دورة للحلقة ولون «yellow» في ثاني دورة ثم لون «white» في ثالث دورة ولون «yellow» في رابع دورة وهكذا دواليك. بهذه الطريقة يمكن عرض لائحة مقالات تستخدم لونين مختلفين للأسطر المفردة والمزوجة.

<B_articles>
   <ul>
<BOUCLE_articles(ARTICLES) {par titre}>
   <li style="background: [(#COMPTEUR_BOUCLE|alterner{'white','yellow'})]">#TITRE</li>
</BOUCLE_articles>
   </ul>
</B_articles>

 inserer_attribut{خاصية,قيمة} [SPIP ١.٨.٢] يتيح إضافة خاصية html في علامة html أنتجها SPIP. مثلاً: يضيف [(#LOGO_DOCUMENT||inserer_attribut{'alt',#TITRE})] خاصية «alt» مع اسم المستند في علامة «img» الخاصة بالشعار.

 extraire_attribut{خاصية} [SPIP 1.8.2] هو عكس المرشح السابق. يتيح استرجاع خاصية من علامة html أنتجها SPIP. مثلاً، يمكن استرجاع مسار المصغر الذي أنتجه المرشح.

 vider_attribut{خاصية}SPIP ١.٩ هو تنوع من مرشح inserer_attribut ويتيح حذف خصائص html. مثلاً [(#LOGO||vider_attribut{width})] يزيل خاصية العرض من صورة الشعار.

image_reduire: <div style="background: url([(#LOGO_ARTICLE||image_reduire{90}|extraire_attribut{src})]) left;"]>#TEXTE</div>

 parametre_url{معامل,قيمة} [SPIP ١.٨.٢] يتيح إضافة معاملات الى عنوان URL أنتجته إحدى علامات SPIP. اذا كانت قيمة تساوي ''، سيقوم المرشح بحذف معامل موجود في عنوان URL. مثلاً، تسترجع علامة #SELF عنوان الصفحة الحالية وبالتالي:

  • [(#SELF|parametre_url{'id_article','12'})] تضيف متغير id_article يساوي ١٢ في عنوان URL
  • [(#SELF|parametre_url{'id_article',''})] تحذف id_article الموجود في عنوان URL.

اذا استخدم هذا المرشح مع متغير واحد، يتصرف بشكل مختلف: يستخرج #URL...|parametre_url{x} المتغير «x» من عنوان URL ويسترجع قيمته.

يمكننا على سبيل المثال، استخدامها لوضع أزرار لتصفح المستندات في صفحة ما:

<BOUCLE_actual(DOCUMENTS) {id_document}>
  #LOGO_DOCUMENT
  <ul>
  <BOUCLE_previous(DOCUMENTS) {par date} {age_relatif <= 0} {0,1} {exclus}>
  <li>
    <a href="[(#SELF|parametre_url{'id_document',#ID_DOCUMENT})]" title="السابق">
      [(#LOGO_DOCUMENT||image_reduire{70})]
    </a>
  </li>
  </BOUCLE_previous>
  <BOUCLE_next(DOCUMENTS) {par date} {age_relatif > 0} {0,1}>
  <li>
    <a href="[(#SELF|parametre_url{'id_document',#ID_DOCUMENT})]" title="التالي">
      [(#LOGO_DOCUMENT||image_reduire{70})]
    </a>
  </li>
  </BOUCLE_next>
  </ul>
</BOUCLE_actual>

 ancre_url{مرساة}SPIP 1.9.1 يضيف مرساة (anchor) الى عنوان URL. مثلاً: [(#URL_ARTICLE|ancre_url{ancre})].

المرشحات التقنية

ظهرت هذه المرشحات في الاصدار [SPIP ١.٤].

 entites_html (اي كيان HTML) يحول نص عادي الى كيانات HTML يمكن ادخالها في الاستمارات، مثلاً:
[<textarea>(#DESCRIPTIF|entites_html)</textarea>]

 texte_script يحول اي حقل الى سلسلة يمكن استخدامها في PHP او جافاسكريبت بكل امان، مثلاً: <?php $x = ‘[(#TEXTE|texte_script)]’; ?>. تنبيه: يجب استخدام ' وليس ". ففي الحالة الثانية، اذا كان النص يحتوي على رمز $، يمكن للنتيجة ان تكون كارثية (عرض ناقص، عرض مختلف، خطأ PHP،...).

 attribut_html يجعل من سلسلة قابلة للاستخدام كصفة HTML. مثلاً، اذا اردنا اضافة نص حوم الى وصلة عادية تدل الى مقال، نستخدم:

<a href=”#URL_ARTICLE” [ title = “(#DESCRIPTIF|supprimer_tags|attribut_html)” ]>#TITRE</a>

 liens_absolus [SPIP ١.٨.٢] ينطبق على علامة نص ويحول كل الروابط التي يحتويها هذا النص الى روابط مطلقة (اي مع عنوان URL الكامل للموقع) وذلك بإضافة بروتوكول (http او https) واسم النطاق. وتظهر فائدة هذا المرشح خاصة في الصفحات النموذجية المخصصة لخيوط RSS. لفرض عنوان URL أساسي، يمكن تمريره كمتغير مثلاً #TEXTE|liens_absolus{#URL_SITE_SPIP}.

 url_absolue [SPIP ١.٨.٢] يعمل مثل المرشح السابق ولكنه ينطبق على علامة تعيد عنوان URL (مثلاً URL_ARTICLE#). ومثل مرشح liens_absolus، يتقبل هذا المرشح عنوان URL أساسي كمتغير اختياري.

 abs_url [SPIP ١.٨.٢] يدمج المرشحين السابقين وبالتالي يمكن تطريقه على النص او على علامة URL.

 form_hidden SPIP 1.9 اذا قمنا بإنشاء استمارة تستخدم رابطاً يحتوي على معاملات (مثلاً عندما نستخدم علامة #SELF مع نوع عنوان URL الافتراضي)، يجب وضع هذه القيم في حقول مخفية (hidden). وتقوم هذه الدالة بحساب تلك الحقول. مثلاً:

<form action="#SELF">
[(#SELF|form_hidden)]
...
</form>

 يتيح مرشح |compacte خفض حجم ملفات اوراق الأنماط وملفات جافاسكريبت بحذف كل التعليقات. ويأخذ المرشح اسم الملف كقيمة إدخال وينتج ملفاً جديداً يعيد اسمه <link rel="stylesheet" href="[(#CHEMIN{spip_style.css}|compacte)]" type="text/css" media="all" />. (تمت اضافة هذا المرشح في SPIP 1.9.2)

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

اضافة وظائف شخصية

ان مرشحات SPIP هي في النهاية دالات PHP تتقبل العلامة التي تطبق عليها كأول معامل وتعيد النص المطلوب عرضه. فيمكنك استخدام دالات PHP العادية كما يمكنك انشاء دالاتك الخاصة، على النحو التالي:

<?php
function my_filter($texte){
    $texte = (اوامر PHP) ...;
    return $texte;
}
?>

لتجنب تعديل ملفات SPIP (التي قد تُفقد خلال عملية تحديث)، يمكنك وضع دالاتك الخاصة في ملف mes_fonctions.php: فإذا وجد SPIP هذا الملف يضمه آلياً.

لمحة تاريخية: في الاصدارات السابقة لاصدار [SPIP ١.٩] كان اسم هذا الملف mes_fonctions.php3

عموماً، قبل الاصدار [SPIP ١.٩]، كانت اسماء ملفات SPIP تأتي بلاحقات php3. وليس php.

منذ [SPIP ١.٨] يمكن لماف mes_fonctions.php ان يكون:

  • في المجلد الذي يحتوي الصفحات النموذجية
  • في أصل الموقع ولكن ليس في الاثنين معاًز

فعلى سبيل المثال يقوم المرشح hijri الذي كتبه جورج وفيل (لا يوزع مع SPIP) بعرض التاريخ الهجري.
فالمرشح [(#DATE|hijri{Arabic})]
يعطي «الاحد ٨ جمادي الاولى ١٤٢٤»
اما المرشح [(#DATE|hijri{Latin})]
فيعطي «Sunday 8 Jumada al-oula 1424».
يمكن تحميل هذا المرشح من SPIP_contrib ويكفي اضافته الى ملف mes_fonctions.php3 لاستخدامه.

من الممكن (منذ SPIP ٢.٠) تحديد مرشحات تطبّق فقط على صفحة نموذجية معينة.
على سبيل المثال، يمكن إنشاء مرشحات في ملف article_fonctions.php لا يتم تفعيلها الا في صفحة article.html.
تنبيه:يجب ان يوضع الملف xxxx_fonctions.php بنفس مستوى (اي في نفس المجلد) ملف الصفحة النموذجية xxxx.html.

مرشحات ترافقها قيم

منذ [SPIP ١.٥]، يمكن تمرير قيم في المرشحات، هكذا:

[(#TAG|filter{arg1, arg2}|...)]

ويجب انشاء المرشح هكذا في mes_fonctions.php3:

function filter($texte, $arg1='قيمة افتراضية 1', $arg2='قيمة افتراضية 2')
{
    ....معالجة....
    return (سلسلة نصية);
}

يمكن ايضاً مناداة اي دالة php او الاعتماد على دالات محددة في SPIP او في mes_fonctions.php3 بشرط ان تحترم ترتيب القيم arg1, arg2... (يجب على النص المطلوب معالجته ان يكون القيمة الاولى). على سبيل المثال، لحذف النقاط في آخر نص ما، يمكن استخدام [(#TEXTE|rtrim{'.?!'})].

منذ [SPIP ١.٨]، بمكن لقيم المرشحات ان تكون علامات (دون اوامر اختيارية ولا مرشحات). مثلاً:
[(#TOTAL_BOUCLE|=={#COMPTEUR_BOUCLE}|?{'نهاية.',''})].
منذ [SPIP 1.8.2] يمكن إدخال علامة مزرودة بكتابة موسعة. مثلاً:
[(#DESCRIPTIF|sinon{[(#CHAPO|sinon{#TEXTE}|couper{300})]})]

مؤلف George نُشر في: تم التحديث: 28/06/23

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