ترخيص المحتوى

مع SPIP ١.٩، أصبح نظام الترخيص أكثر تطوراً (أنظر المقال ملفات الترخيص الخلفي (backend)): صار من الممكن تبادل عناوين المستندات المرفقة بالمقالات (podcasting) ونقل المفاتيح المرتبطة بالمقالات والأقسام من موقع إلى آخر (علامات او tags). كما يمكننا إذا أردنا، ترخيص المحتوى الكامل للمقالات.

في كل ما يتبع نعتبر أن تدفق الترخيص الآتي من الموقع المصدر غني بما فيه الكفاية ليكون قد أخذ في الحسبان كل الوظائف التي توفرها مثلاً الصفحة النموذجية dist/backend.html في SPIP.

تبويب سريع للموقع

أولاً نعثر في الموقع المصدر على عنوان URL العائد لتدفق الترخيص بتنسيق RSS (او ATOM). وحسب الحالات، يكون هذا العنوان محدداً مباشرة في الصفحة و/او يقوم المتصفح «باكتشافه» آلياً ويعرض شعاراً أو أيقونة محددة. وإذا كانت الصفحات النموذجية في الموقع المصدر قد تحسبت لذلك، يستطيع SPIP ١.٩ أيضاً اكتشاف عنوان الترخيص هذا ويكفي إدخال عنوان الموقع ليظهر خيار ترخيصه.

ولدى تنشيط الترخيص، يقوم الموقع المتلقي بجلب المقالات الموجودة في تدفق الموقع المصدر.

تحديد ما نريد إرساله

يمكن للمسؤول عن الموقع المصدر أن يقرر ماذا يريد أن يضع في تدفق RSS لديه: وهذا القرار يتم طبعاً من خلال تعديل الصفحة النموذجية dist/backend.html أو باستلهام هذه الصفحة لإنشاء تدفق جديد.

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

تحديد ما نريد استقباله

اذا قرر الموقع المصدر عدم إرسال كامل محتواه، من الطبيعي أن الترخيص لن يستطيع جلب أكثر مما هو مرسل. ولكن في حال تم وضع المحتوى بكامله في التدفق، يستطيع SPIP جلب هذا المحتوى بتنسيق HTML وعرضه بما في ذلك الصور.

ويمكن تحديد ما نريد جلبه من خلال الترخيص من كل موقع على حدى: المحتوى بتنسيق HTML (اذا كان متاحاً) أو ملخص بتنسيق نص.

يمكن أيضاً تقرير ما يجب فعله في ما يتعلق بالمقالات التي تختفي من التدفق (الذي ينحصر عادة بأحدث 15 مقال): يمكن حمل SPIP على حذفها من قاعدة البيانات (بعد فترة تصل الى شهرين) و/او تحويلها حالاً الى وضعية «مرفوض». ويتيح هذان الخياران مثلاً، إدارة بوابة تتحكم بتدفقات سريعة جداً (وكالة أنباء، علامات مواقع صور كثيرة الزيارات، الخ) او إدارة موقع مرآة لموقع آخر (بحذف المقالات التي قد تتكرر).

اذا كان تاريخ احد العناصر «قديم جداً» (أقدم من عام) او بعيد جداً في المستقبل (أبعد من ٤٨ ساعة)، يعتبر SPIP ان هناك خطأ ما. فيدخل التاريخ الحالي بدلاً من التاريخ الذي وجده. ولكن قد نحتاج لترخيص معلومات تقدم، عن قصد، تاريخآً زبعد من يومين في المستقبل. على سبيل المثال، يمكن استخدام تدفق RSS للإعلان عن أحداث ستقع في المستقبل كما في موقعي «عالم SPIP» (galaxie SPIP) او «حفلات SPIP» (SPIP Party).

لترخيص المواعيد بواسطة خيوط RSS مخصص، يمكن استخدام متغير شخصي اسمه $controler_dates_rss يحمل قيمة «true» افتراضياً.

فاذا اردت ذلك، يجب في ملف config/mes_options.php، ادخال الامر $controler_dates_rss = false; مما يؤدي الى عدم اجراء الاختبار على التواريخ وبالتالي تؤخذ تواريخ المستقبل او الماضي البعيد في الحسبان.

تحديد ما نريد عرضه

 المصدر:

عادة تشير #NOM_SITE الى اسم الموقع المرخَص وهو الموقع مصدر المقال. الا انه مع تطور مواقع تجميع المحتوى (مثل البوابات)، يمكن أن يكون المصدر الحقيقي للمقال موقعاً آخر. وأخذ تدفق RSS ذلك في الحسبان بتعريف حقل <source> الذي يدل على المصدر الحقيقي للمقال. ويقوم محرك الترخيص في SPIP بجلب بيانات هذا المصدر اذا وجدت وتتيح علامتا #SOURCE و#URL_SOURCE بعرض اسم المصدر وعنوانه تباعاً.

 العلامات (tags):

اذا كانت المفاتيح المرتبطة بالمقالات محددة بدقة في تدفق RSS، يصبح من السهل على الموقع المتلقي جلبها. ولكنها لن تأتي كل على حدى في جدول المفاتيح بل يتم تخزينها كيفما اتفق في حقل tags في جدول spip_syndic_articles.

إذا كان تدفق الترخيص يستخدم الكتابة القياسية <dc:subject>Tag</dc:subject>، يتم تسجيل العلامة كما هي. ولكن SPIP يذهب أبعد من ذلك بإضافة تسجيل عنوان الصفحة التي تحتوي المفتاح وذلك بفضل التنسيقات الصغيرة (microformats). هكذا يتم جلب العلامة برفقة وصلتها على شكل: <a rel="tag" href="عنوان صفحة المفتاح">المفتاح</a>.

وفي الموقع المتلقي، يتم عرض هذه العلامات في المجال الخاص في مربع وصف المقال ويمكن عرضها في الموقع العمومي بواسطة علامة #TAGS (سنرى لاحقاً كيف يمكن ترشيحها للحصول على عرض انتقائي للعلامات).

ملاحظة: يتيح SPIP إدارة محددة للعلامات الآتية من المواقع التالية: del.icio.us (صفحات مفضلة جماعية) وflickr (مكتبة صور) وconnotea (تعليقات على مقالات علمية) بحيث يمكنه إعطاؤها عناوين URL (الشيء الذي لا يوجد في تدفق RSS الخاص بها).

 القسم:

في العديد من التطبيقات (المفكرات وأدلة الوصلات وما شابه) يعادل صنف (category) أو دليل المقال ما يسميه SPIP القسم. فكان من الطبيعي استخدام مفهوم تدفق RSS القياسي <category>...</category> للتعريف بانتماء المقال الى هذا القسم او ذاك.

وكما في العلامات، يقوم SPIP بجلب هذه المعلومة وعرضها من خلال #TAGS.

 المستندات المرفقة:

ترسل المستندات التي تظهر في المجال الخاص في أسفل صفحة المقال او في قسم «مستندات» أو، في ما يتعلق بالصور في قسم «صالة العرض»، هي أيضاً في تدفق RSS باستخدام مفهوم <enclosure ... />. وهذا ما يعرف بمفهوم podcasting وهو أصبح وظيفة قياسية في SPIP [1].

ويتم أيضاً جلب المعلومات حول الإدراجات (enclosures) بواسطة #TAGS ولكنها تعرض بشكل مختلف في المجال الخاص أي على شكل ملقط ورق صغير لكل ملف.

استخدام علامات #TAGS

كما رأينا أعلاه، تعرض علامات #TAGS الوصلات الى المفاتيح والقسم والمستندات المرفقة دون ترتيب. ولكن بفضل التنسيقات الصغيرة (microformats)، يتم «تعليم» الوصلات الى كل من هذه المفاهيم كالتالي:
 <a rel="tag" ...> للعلامات/المفاتيح
 <a rel="directory" ...> للقسم/الصنف
 <a rel="enclosure" ...> للمستندات المرفقة/podcast

واذا اردنا عرض نوع واحد من هذه العلامات فقط يجب استخدام المرشح afficher_tags مع تحديد النوع المطلوب كمتغير:

[(#TAGS|afficher_tags{directory})]
[(#TAGS|afficher_tags{tag})]
[(#TAGS|afficher_tags{enclosure})]

(افتراضياً يعادل الترشيح [(#TAGS|afficher_tags)] الترشيح [(#TAGS|afficher_tags{'tag,directory'})]).

ما في ما يتعلق بالمستندات المرفقة فيتيح المرشح الخاص afficher_enclosures عرض ملاقط الورق بدلاً من الوصلات التقليدية:

[(#TAGS|afficher_enclosures)]

* *

التعامل مع محتوى HTML العائد الى المقالات المرخصة

مثال عملي: يرخص موقعنا مفكرة صور (photoblog) تنشر بشكل متواصل تعليقاً صغيراً تتبعه صورة. وتأتي الصورة على شكل علامة HTML من نوع <img .../>. بعد ترخيص هذه المفكرة بتنسيق HTML كامل المحتوى في موقعنا، قد نقرر عرض الصورة فقط دون التعليق. يجب عندها استخراج علامة <img />. ويمكن الوصول الى ذلك بفضل المرشح extraire_balise{xxx} الذي يقوم باسترجاع أول علامة HTML من نوع <xxx /> يعثر عليها في المحتوى.

ومن هنا كل شيء يصبح متاحاً:
 [(#DESCRIPTIF|extraire_balise{img})] يعرض الصورة
 [(#DESCRIPTIF|extraire_balise{img}|extraire_attribut{src})] عنوانها على الشبكة
 [(#DESCRIPTIF|extraire_balise{img}|extraire_attribut{width})] عرضها
 يمكن أيضاً تعديل نمطها كالتالي:

[(#DESCRIPTIF|extraire_balise{img}|
         inserer_attribut{style,'border: double red 4px;'})]

ملاحظة: تعتبر محتويات HTML الآتية من موقع بعيد على أنها «غير قابلة للتحكم» وبالتالي بإمكانها التسبب بمشاكل إذا احتوت علامات غير مقفلة او مقفلة بشكل غير صحيح او احتوت اوامر جافاسكريبت. لذلك يطبق SPIP على هذه المحتويات تلقائياً مرشح safehtml قبل عرضها.

مرشحات أخرى مرتبطة بالترخيص

تتيح هذه المرشحات تحويل علامات الترخيص من تنسيق الى آخر مثلاً من أجل إعادة تحويل «علامات» تم جلبها من الترخيص وحفظها في قاعدة البيانات على شكل تنسيقات صغيرة، الى تنسيق RSS مرة اخرى: tags2dcsubject وenclosure2microformat وmicroformat2enclosure.

مراجع

 حول التدفق RSS 2.0
 حول التنسيقات الصغيرة microformats
 حول العلاماعت rel=tag
 حول الادراجات rel=enclosure
 حول الادلة او الاصناف rel=directory

حواشي

[1تنبيه: لا يتم نسخ الملفات بحد ذاتها بل عناوين URL والبيانات المتعلقة بها (العنوان والحجم والتنسيق).من جهة أخرى تجدر الإشارة الى أننا أخذنا حريتنا قليلاً مع قواعد RSS التي تمنع عادة وجود عدة علامات <enclosure ... /> في مقال واحد.

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

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