SPIP 1.8.2

اهلاً بالجميع!

صار الإصدار 1.8.2 من SPIP متوافراً على العنوان

www.spip.net/ar_download

إنه آخر إصدار من المجموعة 1.8 لأن تطوير SPIP غيّر نظام التحكم بالإصدارات (من CVS الى SVN) وسيتم تغيير الاتجاه كلياً عن السابق - لا سيما في ما يتعلق بالانتقال من ملفات .php3 الى ملفات .php وإعادة تنظيم الأدلة الخ.

ويصحح هذا الاصدار معظم الأخطاء (المعروفة) في الاصدار 1.8.1 ومن المفترض أن يكون أكثر وثوقاً من سابقه.

أما أهم ما يقدمه من جديد فهو:

الواجهة والعرض

  • الكثير من التحسينات في ما يتعلق بالتوافق مع XHTML في دالة propre() وعلى صعيد دمج المستندات في النصوص.
  • تحسين موصلية الجداول.
  • متابعة المنتديات الداخلية والمراسلة الشخصية والمقالات والأخبار المعروضة للنشر الخ. بواسطة RSS.
  • خيارات إضافية لترخيص المواقع: يمكن آلياً «إلغاء نشر» الوصلات غير الموجودة في ملف الترخيص العائد للموقع المرخص و\او حذفها من قاعدة البيانات بعد فترة محددة. من جهة ثانية، تتعرف قراءة ملفات الترخيص على عدد أكبر من العناصر مثل:
    • المستندات البعيدة (ما يعرف بـ podcasting، أنظر لاحقاً)
    • تواريخ التحديث
    • التعديلات في العنوان أو المادة
  • إمكان ضبط ساعة (وليس تاريخ فقط) نشر المقال بشكل أدق في المجال الخاص.

إدارة المستندات

 المستندات البعيدة

في الاطار الذي يتيح تحميل مستند مرتبط بمقال، صار من الممكن إدخال عنوان URL لمستند «بعيد» مما يدخله في قاعدة البيانات كما لو أنه مستند «محلي» ولكن دون جلب الملف نفسه إلى دليل /IMG المحلي.

وتتم فهرسة هذه المستندات البعيدة مثل المستندات المحلية: فيمكن تعديل العنوان والوصف. ويقوم SPIP بالتحكم بوجود هذه الملفات وبأحجامها، وفي حال كانت هذه المستندات صوراً، يجلب نسخة منها لإنشاء مصغر بشكل آلي.

ويتيح النظام استرجاع المستندات البعيدة دائماً بواسطة مرشح |copie_locale يمكن إضافته الى الصفحات النموذجية. ويعمل هذا المرشح بالطريقة التالية: بعد أن يكون قد أنشأ نسخة محلية من المستند اذا اقتضى الامر (مما قد يستغرق بعض الوقت اذا كان حجم المستند كبيراً جداً)، يسترجع العنوان المحلي للمستند.

أخيراً يدمج SPIP مفهوم المستندات البعيدة في الترخيص: فمن جهة يقوم بقراءة تدفق الترخيص الذي يدل الى المستندات المرفقة (podcasting) ومن جهة اخرى، تنشر الصفحة النموذجية dist/backend.html المستندات المرتبطة بالمقال والتي لا تندرج ضمن مادة المقال بتنسيقها نفسه (بمعنى آخر، يشبه هذا العرض العرض الذي يظهر في المجال الخاص تحت عنوان «صالة العرض» في اسفل المقال).

 فهرسة المستندات. يقوم النظام بفهرسة عناوين كل المستندات وأوصافها مما يتيح استخدامها في حلقة:
<BOUCLE(DOCUMENTS){recherche}{par points}{inverse}>
وفي حال كان ذلك ممكناً، يقوم SPIP بفهرسة محتوى المستندات (لا سيما المستندات بتنسيقات HTML وTXT وPDF وRTF وDOC). ويمكن توسيع هذه الوظيفة لتشمل تنسيقات اخرى من خلال تطوير مقاطع برمجية «للاستخلاص» (يمكن التفكير مثلاً بمقاطع تستخلص تنسيقات مثل MP3 وOpenffice).

 تحميل zip. عندما نقوم بتحميل مستندات «غير مسموحة» او بالاحرى غير مدعومة في جدول spip_types_documents في قاعدة البيانات (مثلاً ملف php.)، يقترح SPIP ضغط المستند بتنسيق zip (في السابق كان يكتفي بتجاهل امر التحميل).

الروزنامة في الموقع العمومي

يتيح SPIP 1.8.2 عرض روزنامات المجال الخاص في الموقع العمومي وإنشاء مفكرات تعتمد على ادوات تصميم الصفحات التي توفرها تلك الروزنامات. وتأتي هذه الوظيفة بفضل معيار حلقة جديدة وثلاثة مرشحات جديدة أيضاً.

لمزيد من المعلومات حول هذا الموضوع يمكن الرجوع الى المقال «article 3193».

مرشحات جديدة

 المرشح الجديد |inserer_attribut{variable, value} يتيح فرض صفة على علامة HTML.
مثلاً:
[(#LOGO_ARTICLE|#URL_ARTICLE||inserer_attribut{alt,#TITRE})] يفرض TITRE# على صفة alt في علامة الصورة.

 المرشح الجديد |alterner يتيح تناوب الألوان داخل لائحة - مثلاً، عبر [(#COMPTEUR_BOUCLE|alterner{1,2,3})]. ويدل عدد القيم على تواتر التناوب وبالتالي لا يشكل تسلسلاً ثنائياً من نوع «مفرد\مزدوج». مثلاً:
 يمكن استخدام [(#COMPTEUR_BOUCLE{'yellow','blue'})] لتلوين السطور المفردة والمزدوجة في جدول.
 الحلقة التالية تعرض جدولاً من 17 مقالاً في خمسة سطور واربعة اعمدة بإتمامه بخانة فارغة في السطر الاخير لدى الحاجة:

<B_ar>
   <table border="1">
<BOUCLE_ar(ARTICLES){0,17}{par hasard}>
       [(#COMPTEUR_BOUCLE|alterner{'<tr>','','',''})]
               <td>#ID_ARTICLE</td>
       [(#COMPTEUR_BOUCLE|alterner{'','','','</tr>'})]
</BOUCLE_ar>
       [(#TOTAL_BOUCLE|alterner{'<td colspan="3"></td></tr>','<td colspan="2"></td></tr>','<td></td></tr>',''})]
   </table>
</B_ar>

ملاحظة: هذا المرشح «رقمي» محض. فإذا قمنا بتطبيقه على [(#ID_ARTICLE|alterner{1,2})] سيعرض القيمة 1 للمقالات التي تملك معرفاً مفرداً والقيمة 2 للمقالات ذات المعرف المزدوج.

 مرشحات عناوين URL «المطلقة». كل الوصلات التي يقدمها SPIP (من الاختصارات [->article 11] او العلامات من نوع #URL_ARTICLE) هي وصلات «نسبية» لا تعرض العنوان الكامل لما تدل اليه الوصلة. غير ان بعض الاستخدامات، كالترخيص مثلاً، تحتم اللجوء الى العناوين المطلقة. لذلك تم استحداث مرشحين:
 |url_absolue الذي يطبّق على عناوين URL من نوع: [(#URL_ARTICLE|url_absolue)]
 |liens_absolus الذي يطبّق على على النصوص ويقوم بتحويل عناوين الوصلات والصور: [(#TEXTE|liens_absolus)].

(يختصر المرشح |abs_url المرشحين السابقين في مرشح واحد ويطبّق |url_absolue على #URL_ARTICLE و|liens_absolus على العناصر من نوع #TEXTE.)

 صار بإمكان مرشح |reduire_image تصغير الصور داخل النص ويمكن بالتالي تطبيقه على العلامة #TEXTE. ومن التحسينات التي دخلت ايضاً على هذا المرشح: اذا ادخلنا القيمة صفر على العرض او الارتفاع، يعني ان البعد الآخر هو الذي يجب اعتباره في التصغير. هكذا، يقوم [(#LOGO_ARTICLE||reduire_image{60,0})] يتصغير رمز المقال ليصل عرضه الى 60 نقطة كحد اقصى (ويتم حساب الارتفاع بشكل يحافظ على تناسب الصورة).

تحسين كتابة الصفحات النموذجية

 اصبحت الصفحات النموذجية القياسية التي تأتي مع SPIP تعتمد مقياس XHTML 1.0 الانتقالي.

 تتيح علامة #DOSSIER_SQUELETTE التحكم بسهولة اكبر بمجموعات الصفحات النموذجية الشخصية التي يقوم المستخدم بتثبيتها في ادلة فرعية.

 يتقبل #FORMULAIRE_FORUM قيمة تدل الى الصفحة التي يذهب اليها الزائر بعد ادخال مشاركته في المنتدى. افتراضياً، اصبحت هذه الصفحة #URL_FORUM، ولكن قد يرغب البعض في العودة الى الصفحة نفسها الموجود عندها الزائر (بواسطة الكتابة: [(#FORMULAIRE_FORUM{#SELF})]) او الى صفحة معينة اخرى ([(#FORMULAIRE_FORUM{thank_you.php})]).

 تم تعميم التركيبات من نوع [(#TAG|filter{[(#OTHER_TAG|other_filter)]})] الى اي مستوى من التداخل يريده المستخدم. وتتعمم هذه الميزة على معايير الحلقات وهنا يصبح استخدام المعقفات ([]) غير ضروري (وغير مستحب).

 لأسباب تعود الى تناسق الكتابة، جاءت علامة #EXPOSE لتحل مكان علامة #EXPOSER. ويكمن الفرق الوحيد في الكتابة التي تصبح: [(#EXPOSE{on,off})] وليس [(#EXPOSER|on,off)].

 عندما تستخدم حلقة ما المعيار {statut}، يختفي الاعداد الافتراضي لحالة العناصر المرتبطة بهذه الحلقة. بمعنى آخر، اذا بقيت حلقات المقالات (ARTICLES) العادية تحصر اختيارها على المقالات ذات الحالة 'publie' (منشور)، ستقرم الحلقة <BOUCLE_a(ARTICLES){statut=prop}> باختيار المقالات المعروضة للتقييم.

كذلك تختار الحلقة <BOUCLE_indy(BREVES){statut IN prop, publie}> كل الاخبار المعروضة للتقييم او المنشورة. وتتيح علامة #STATUT عرض حالة كل خبر (وبالتالي امكان تنسيق هذا العرض في اوراق الانماط حسب الحالة).

 اصبح معيار {par ...} يتقبل اسماء حقول SQL المحددة بشكل ديناميكي، لا سيما بواسطة علامة #ENV ولا يتسبب غياب هذه الاسماء بأخطاء في لغة SQL. اضافة الى ذلك، صار هذا المعيار يتقبل كتابة {!par  ...} لفرز كل الحقول المحددة بالترتيب العكسي (يمكنه بالتالي الحلول مكان المعيار {inverse}، خاصة اذا احتجنا الى فرز معقد يعتمد على عدة حقول). وللحصول على فرز بالترتيب التصاعدي لبعض الحقول وبالترتيب التنازلي لحقول اخرى يكفي ادخال عدة معايير par.

يتيح كل ما سبق انشاء صفحات نموذجية تحتوي مثلاً عرضاً لجدول بعدة اعمدة يعرض زراً للفرز حسب كل عمود كما هو الحال في برامج الجداول الالكترونية. ونعطي مثالاً على ذلك هنا

كالعادة سيتم ادخال هذه التحديثات تدريجياً في توثيق النظام.

مؤلف George نُشر في: تم التحديث: 15/07/20

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