أين تضع ملفات الصفحات النموذجية؟

في مجلد /squelettes :-)

منذ SPIP ٢.٠، يتم تخزين الصفحات النموذجية القياسية في مجلد مخصص لذلك اسمه /squelettes-dist. اما مجلد /squelettes، فيستقبل الصفحات النموذجية الشخصية.

ميزات هذا الترتيب واضحة: تحسين الفصل بين رموز SPIP البرمجية وبنية الموقع العمومي، امكان تبديل مجموعة كاملة من الصفحات النموذجية بعملية واحدة، الخ.

لمحة تاريخية:في الاصدارين الاصدار ١.٨، ١.٨.١ من SPIP وSPIP ١.٩، كانت ملفات الصفحات النموذجية القياسية تخزّن في مجلد dist. في الإصدارات السابقة للإصدار الاصدار ١.٨، ١.٨.١ من SPIP كانت تخزّن في اصل الموقع. انظر: «article 2212».

الصفحات النموذجية القياسية: /squelettes-dist

يتم جمع صفحات التوزيعة النموذجية، اي الصفحات النموذجية القياسية التي تأتي مع SPIP، في مجلد واحد. وتحتوي هذه الملفات على المعلومات الافتراضية لتصميم الموقع ولا يجب ادخال اي تعديلات عليها. يمكنك دراسة رموز وعلامات هذه الصفحات والانطلاق منها لتصميم صفحاتك الشخصية [1]

نذكر هنا انه لا يجب ادخال اي تعديلات على الملفات الافتراضية للتوزيعة، لأنك قد تفقد كل تعديلاتك لدى ترقية النظام في المستقبل.
لتفادي ذلك، قم بإنشاء نسخة من الملفات التي ترغب في تعديلها وضعها في مجلد آخر كما هو موضح ادناه.

المجلد /squelettes

منذ SPIP 1.8، يجب وضع الصفحات النموذجية الشخصية في مجلد اسمه squelettes/ (انتبه لصيغة الجمع) في اصل الموقع. واذا اردت انشاء مجموعة كاملة من الصفحات النموذجية الشخصية (مأخوذة مثلاً من SPIP - Contrib او غيره) او اكتفيت بتعديل بعض الصفحات القياسية، ضع ملفاتك في هذا المجلد.

هكذا، اذا اردت انشاء تصميماتك الشخصية، عليك بإنشاء ملفاتك الخاصة من article.html و rubrique.html الخ. في مجلد /squelettes. لاحظ انه ليس من الضروري وضع مجموعة كاملة من الصفحات النموذجية في هذا المجلد (فقط الصفحات التي تريد جعلها شخصية).

لعرض صفحات الموقع، يقوم SPIP بالبحث عن الصفحات النموذجية اولاً في مجلد /squelettes. واذا لم يجد ملف .html العائد للصفحة المطلوبة يقوم بجلب الملف المناسب من مجلد /squelettes-dist.

اذن، في حال لم تضع في مجلد /squelettes الا ملف واحد، article.html مثلاً، سوف يستخدم SPIP هذا الملف لعرض المقالات ويستخدم ملفات مجلد /dist لعرض كل الصفحات الاخرى.

يتخصص مجلد /squelettes باحتواء كل الملفات الضرورية لتصميم الموقع. تضع فيه اذن:

  • الصفحات النموذجية، اي ملفات .html التي تحتوي على علامات SPIP.
  • الملفات المدرجة في الصفحات النموذجية (اضافة الى ملفات php3 المناسبة لها في الاصدارات السابقة لـSPIP ١.٩) وكذلك القوالب (منذ SPIP ١.٩).
  • ملفات الاستمارات التي جرى تعديلها، والافضل ان توضع في مجلد فرعي اسمه /formulaires.
  • اوراق الانماط التي انشئت لتتماشى مع التصميم الشخصي. فهذه الاوارق الشخصية يمكنها تغيير تصميم الموقع بشكل مدهش. انظر انماط «فئة اولى».
  • الصور المستخدمة في الصفحات النموذجية.
  • الملف mes_fonctions.php الذي يحتوي المرشحات ومتغيرات التخصيص العائدة الى هذه الصفحات النموذجية.
  • ملفات جافاسكريبت
  • ملفات اللغات الشخصية (انظر عولمة الصفحات النموذجية، طريقة ملفات اللغة) والافضل ان تكون في مجلد فرعي اسمه /lang.
  • الخ...

استخدام مجلد آخر للصفحات النموذجية

منذ SPIP 1.5، يمكن وصع الصفحات النموذجية الشخصية في مجلد يحمل الاسم الذي يريده المستخدم شرط الاعلان عنه في ملف mes_options.php واستخدام متغير التخصيص $dossier_squelettes كما هو موضح في توثيق هذه المتغيرات. فيقوم SPIP بجلب الصفحات النموذجية اولاً من هذا المجلد.

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

افضلية مجلدات الصفحات النموذجية

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

  1. اولاً في لائحة المجلدات التي يحددها متغير $dossier_squelettes اذا وجد
  2. ثم في مجلد /squelettes الموجود في اصل الموقع
  3. ثم (منذ SPIP ١.٩) في لائحة المجلدات التي يحددها متغير $plugins
  4. ثم في اصل الموقع
  5. ثم في مجلد /squelettes-dist
  6. واخيراً في مجلد /ecrire.

نقول «بشكل عام» لأنه من الممكن ان تأتي بعض التنوعات [2] ومنها ترتيب للأفضلية يعتمد على مجلدات الصفحات النموذجية ويتيح تنوعات اكثر دقة، مثلاً: حسب القسم او الفرع او اللغة كما هو مفسر في تنوعات الصفحات النموذجية.

ملاحظة: (منذ SPIP ١.٩) الحقيقة ان الطريقة الموضحة اعلاه لاختيار مكان ملف ما، لا تنطبق فقط على الصفحات النموذجية بل ايضاً على كل برمجيات SPIP. فترتيب اختيار المجلدات موجود في «SPIP_PATH» مما يؤسس الاطار والاصول لتطوير «الملحقات» التي توسع من وظائف SPIP والتي يمكن لأي كان تطويرها وتقديمها الى مجموعة مستخدمي SPIP.

هكذا يمكن تغيير اي وظيفة في SPIP دون قطع الطريق على مستقبل تطور النواة الاساسية للنظام ودعم مستخدميه. فقد اصبح SPIP مركباً!

لمحة تاريخية: ان بحث SPIP عن صفحات نموذجية في اصل الموقع عائد تاريخياً الى ان هذه الصفحات كانت تخزن في اصل الموقع. ومن ميزة هذا المكان جعل الصفحات النموذجية «ظاهرة» لبرنامج التصفح لإن الوصلات الى ملفات .css وغيرها من ملفات التصميم كانت مكتوبة بوضوح في الصفحة وتنطلق من اصل الموقع.
كذلك، وحتى SPIP 1.8.3، كان SPIP يبحث عن الصفحات النموذجية في اصل الموقع قبل مجلد /squelettes.

ماذا عن ملفات .php3 (او .php

نذكر اولاً انه منذ SPIP ١.٩، لم يعد هناك ملفات .php3 (او .php) للصفحات النموذجية: صار SPIP يعالج هذه الصفحات من خلال سكريبت وحيد هو spip.php. كل ما يتبع اذن هو من الماضي.

في SPIP 1.8.2 وSPIP 1.8.3، كان هناك ملف page.php3 سبق ملف spip.php وطريقة الادراج الذي يستخدمها في SPIP ١.٩. والحال ان page.php3 لوحده كان يتيح نداء اي صفحة نموذجية بتمرير متغير الصفحة في عنوان URL:

www.mysite.org/page.php3?fond=my_template&...

كانت اذن الوسيلة الاسهل، استخدام نداء من هذا النوع [3] لكل صفحة نموذجية غير الصفحات الاساسية (المقال والخبر والقسم والصفحة الرئيسية...) والتي كانت تملك ملف .php3 خاص بها في اصل الموقع. مما كان يتيح ادخال النداء الاعتيادي من نوع:

www.mysite.org/article.php3?...

حتى SPIP 1.8، كان يجب انشاء ملف .php3 يناسب ملف .html في البنية القديمة لصفحات SPIP النموذجية وكان يجب على هذا الملف ان يكون في اصل الموقع [4].

حواشي

[1وهذه الطريقة هي التي ننصح بها لأن مجموعة الصفحات هذه صممت بشكل يجعلها مرنة للغاية لأنها مكونة من وحدات مستقلة.

[2مثلاً تسمية الملفات اعتماداً على دورها مما يجعل SPIP يبحث مثلاً عن ملفات اللغة في المجلد الفرعي /lang كما هو موضح اعلاه.

[3يذكر ان هذه الطريقة تعمل ايضاً للنداءات التي تستخدم علامة <INCLURE(page.php3){fond=inc-entete}>.

[4الا الملفات التي كانت تستخدم في نداء الادراج <INCLURE(template.php3)> وليس مباشرة من عنوان URL. في هذه الحالة، كان يمكن نقل الملف template.php3 الى مجلد الصفحات النموذجية.

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

الترجمات: عربي, català, corsu, English, Español, français, italiano, Nederlands, Türkçe, українська