حلقات وعلامات

من هنا، كل ما يتبع يتعلق بلغة SPIP لوصف الصفحات النموذجية. اذا كان التفسير السابق واضحاً لك، تكون قد فهمت اننا نتعامل هنا مع ملفات «.html».

قصدنا جعل الدليل الحالي تقنياً (فهو مرجع تقني). قد ترغب في البدء بدليل الخطوة خطوة، وهو تعليمي اكثر من الدليل الحالي، ثم العودة الى هنا لدليل اكثر دقة.

الحلقات

تشكل الحلقات (loops) المفهوم الاساسي في لغة SPIP.

- مفهوم الحلقة

تقليدياً، قاعدة البيانات هي عبارة عن قائمة عناصر: في ما يتعلق بقاعدتنا تكون قائمة مقالات او قائمة اقسام او قائمة مؤلفين الخ. اذاً، من اجل بناء الموقع، سنسحب من هذه القائمة بعض عناصرها:
- في البداية، ننوي سحب عنصر واحد من القائمة؛ عرض المقال المطلوب مثلاً.
- لكن غالباً ما نحتاج الى سحب عدة عناصر من القائمة. على سبيل المثال، في صفحة قسم ما، نريد عرض كل المقالات التي يحتويها هذا القسم اضافة الى كل الاقسام الفرعية الموجودة في القسم.
- مهمة اكثر دقة: قد يحدث كثيراً ان لا يوجد عناصر من النوع المطلوب في القاعدة؛ فيجب ان يتمكن SPIP من التحكم بفرضية غياب هذه العناصر. فمثلاً، اذا ارادت صفحة الاقسام النموذجية عرض كل الاقسام الفرعية التابعة للقسم الحالي، ما العمل اذا كان القسم الحالي لا يحتوي على اقسام فرعية؟

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

يتيح نظام الحلقات، في فقرة برمجية واحدة:
- تحديد مكان وضع العنصر داخل علامات HTML (مثلاً، في هذا المكان نريد قائمة بالمقالات وفي ذاك نريد قائمة بالاقسام الفرعية).
- تحديد عرض عنصر وحيد.
- تحديد كيفية عرض قائمة بعدة عناصر.
- تحديد ما نريد عرضه في حال عدم وجود اية عناصر.

تشابه مع برمجة PHP/MySQL

يعرف الذين برمجوا استفسارات لقاعدة MySQL بلغة PHP ان المعالجة تتم على مرحلين:
- بناء التركيب اللغوي للاستفسار (والذي يمكن وصفه بالتالي: «اريد استرجاع قائمة المقالات الموجودة في كذا قسم...»).
- تحليل نتائج الاستفسار وعرضها بواسطة حلقة برمجية تكرارية.

ها هما المرحلتان اللتان تديرهما الحلقات في SPIP.

علامات SPIP

بفضل الحلقات، نسترجع عناصر وحيدة او قوائم عناصر: مثلاً قائمة بالمقالات او قائمة بالاقسام...

الا ان كل عنصر من القائمة مكوّن بدوره من عناصر عدة: فعلى سبيل المثال، يتكون المقال من عنوان وعنوان فرعي ومدخل ومقدمة ومادة وحواشي الخ. لذلك يأتي SPIP بمجموعة من العلامات (tags) الخاصة التي تحدد بدقة موقع عرض هذه العناصر: «وضع العنوان هنا»، «وضع مادة المقال هناك»...

العلامات داخل الحلقات

نعرض هنا المفهوم العام للحلقات وعلاماتها من خلال مثال تقليدي (نذكّر ان هذا العرض هو وصف منطقي وليس لغة برمجة SPIP):

حلقة: عرض قائمة بمقالات هذا القسم
  • - عرض عنوان المقال هنا
  • - عرض العنوان الفرعي
  • - عرض مادة المقال
نهاية الحلقة

عندما يحلل SPIP هذه الحلقة التكرارية يحصل على ثلاث نتائج مختلفة:

- لا يوجد اي مقال في هذا القسم

في هذه الحال بالطبع، لا يتم استخدام اي من العناصر المطلوب عرضها (العنوان والعنوان الفرعي...). في المقابل، واذا حسبنا حساب ذلك مسبقاً، يمكن عرض رسالة من نوع: «لا يوجد مقالات».

- هناك مقال واحد فقط في القسم

في هذه الحال، يتم ببساطة بناء صفحة HTML حسب تنظيم الحلقة:

  • - عنوان المقال
  • - العنوان الفرعي
  • - مادة المقال

- هناك عدة مقالات في القسم

سيتم حساب وصف الصفحة (اي «وضع هنا...») تكرارياً لكل مقال، مما يعطي ببساطة:

  • - عنوان المقال 1
  • - العنوان الفرعي للمقال 1
  • - مادة المقال 1
  • - عنوان المقال 2
  • - العنوان الفرعي للمقال 2
  • - مادة المقال 2
    ...
  • - عنوان المقال الاخير
  • - العنوان الفرعي للمقال الاخير
  • - مادة المقال الاخير

سيتم بناء بقية هذا الدليل على الشكل التالي:
- تركيب الحلقات اللغوي
- تركيب العلامات اللغوي
- صفحة محددة لكل نوع من انواع الحلقات مع العلامات التي تستخدمها.

مؤلف جورج نُشر في: تم التحديث: 26/10/12

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