مصطلحات و مفاهيم أساسية عن دروبال
دروبال نظام حر و مفتوح المصدر لادارة المحتوى و النشر على الوب، دروبال نظام طيع جدا يمكن استخدامه لبناء أي نوع من صفحات الوب و يسهل الاضافة الي امكانياته و تطويره و يتميز خصوصا في بناء صفحات مجتمعات الوب.
تكمن المرونة العالية في نظام دروبال في أنه مبني على بعض الأفكار المجردة البسيطة، عملية بناء و اعداد موقع بدروبال تتركز في تجميع و تربيط تلك الأفكار و الأدوات. يتبنى مطوروا دروبال مبدأ أن تكون واجهة المستخدم (بالأخص مدير الموقع) طبقة رقيقة شفافة لا تحجب تفاصيل البناء الداخلي للبرنامج و من هنا يأتي شعار دروبال "سباكة لمجتمعات الوب"، اذن دورك كمدير للموقع كدور سباك يركب مواسير و حنفيات و في النهاية يرص بلاط ليبسط واجهة البرنامج.
هذه الوثيقة محاولة لشرح المواسير (عفوا المصطلحات و المفاهيم) المستخدمة في دروبال، يمكنك استخدام دروبال بدون أن تتحول الى سباك، هذه الوثيقة بالأساس لمن يرغب في التعمق في النظام.
سأحاول ترتيب المصطلحات بدرجة الأهمية.
node
العقدة هي وحدة المحتوى في دروبال، أي صفحة لها عنوان (url) يقوم أحد مستخدمي النظام باضافتها عبارة عن node، اذن أغلب المحتوى في دروبال سيكون في صورة عقد، العقد أنواع (node types)، مثل خبر، تدوينة، صورة، صفحة كتاب، فعالية، تقرير عن فيلم، سجلات عقار، الخ، و اضافة العقد (المحتوى) يكون عن طريق create content و فيها ستجد قائمة بأنواع العقد المتاحة لك.
كل نوع له استمارة كتابة/تحرير مختلفة فمثلا استمارة الفعاليات بها خانة لتحديد ميعادي بدء و انتهاء الفعالية، و استمارة الصور بها خانة لتحميل ملف الصورة.
أضافة أنواع جديدة من المحتوى يكون عن طريق اضافة وحدات برمجية اضافية (اذن المبرمج هو المسئول عن تصميم أنواع جديدة من العقد). تتيح وحدة flexinode الاضافية امكانية تصميم أنواع جديدة من العقد عن طريق تصميم استمارات اضافة و تحرير المحتوى و بدون الحاجة لتعلم البرمجة.
block
البلوكات هي وحدات محتوى صغيرة لا عنوان لها (ليست صفحات) و لكن يمكن رصها في مناطق مختلفة (في الغالب على شريط جانبي على يمين أو شمال المحتوى الرئيسي) بحيث تظهر على أكثر من صفحة (في الغالب تظهر في كل صفحات الموقع).
أمثلة:
- بلوك دخول المستخدم
- بلوك قائمة أحدث التعليقات
- بلوك بعدد الزوار الحاليين
- بلوك قائمة التصفح
- الخ
غالبا ما يتم تخليق البلوكات تلقائيا من قبل دروبال، و تتيح بعد الوحدات البرمجية الاضافية بلوكات جديدة، لكن يمكن لمدير الموقع اضافة بلوكات بشكل مشابه لعملية اضافة العقد عن طريق administer->blocks->add block(مفيدة مثلا لوضع زراير و بانر أو لصق أكواد javascript للربط بين الموقع و مواقع خدمية مثل del.icio.us مثلا).
يختار مدير الموقع البلوكات التي يرغب في اظهارها و يحدد مواضعها عن طريق administer->block كما يمكن تحديد ظهور البلوك على صفحات معينة أو لمجموعة محدودة من المستخدمين مثلا.
module
وحدات برمجية، هي مجموعة ملفات برمجية تضيف مزايا أو تعدل من سلوك نظام دروبال، الحقيقة أن لب نظام دروبال بدون أي وحدات لا معنى له بالمرة، فحتى مفهوم node معرف في وحدة برمجية. يمكن لأي مبرمج php أن يوسع من امكانيات دروبال بكتابة وحدات توفي احتياجاته، كتابة وحدة لدروبال عموما أسهل من كتابة برنامج مستقل من الصفر.
قائمة الوحدات الأساسية و وظيفتها قائمة ببعض الوحدات الاضافية الدارجة
menu
القائمة عبارة عن شجرة من الروابط ينشئها مدير الموقع عن طريق administer->menus، رغم أن نظام دروبال و وحداته البرمجية مسئول عن تخليق قائمة التصفح الرئيسية (navigation menu) يمكن لمدير الموقع تحرير و تعديل روابط القائمة.
ينشئ دروبال بلوك لكل قائمة بحيث تتحكم في اظهار القائمة من admin->blocks
theme
التيمات عبارة عن مجموعة من الملفات تحدد شكل و تصميم للصفحة، يمكنك اختيار أحد التيمات من administer->theme، كما يمكن تنزيل تيمات اضافية من صفحة دروبال.
عمل تصميم جديد لموقعك المعتمد على دروبال يعني عمل تيمة جديدة، غالبا عن طريق تعديل تيمة موجودة مسبقا. تحتاج لمعرفة بأساسيات html و css لتعديل أو عمل تيمات جديدة.
بعكس الأنظمة الأبسط مثل blogger التيمة في دروبال مكونة من أكثر من ملف و يحدد ملف style.css أغلب تفاصيل التصميم من ألوان و أبناط و مسافات و خلفيات، الخ.
theme engine
محرك التيمات عبارة عن وحدة برمجية خاصة تضيف وسيلة جديدة لعمل التيمات في دروبال.
عموما التيمات تعتمد على ملفات html بحيث يحل محل المحتوى رموز خاصة تشير الى بيانات يقوم نظام دروبال بتوفيرها، و كل محرك يتيح أسلوب/لغة قولبة (templating) مختلفة يمكن استخدامها في التصميم.
المحرك الأكثر شعبية في دروبال هو phptemplate، و هو المحرك الأساسي ابتداء من الاصدار 4.7، الفكرة الأساسية في phptemplate هي استخدام لغة البرمجة php نفسها بدلا من اختراع لغة جديدة محدودة الامكانيات. بحيث يمكن للمبرمج امكانية تلقيم كود php في أي مكان في التيمة مما يتيح له امكانيات غير محدودة، في نفس الوقت تعلم البرمجة بphp ليس ضروري لعمل تيمات phptemplate.
مقدمة في تيمات phptemplate
input format
نمط الادخال.
عند اضافة محتوى الي دروبال يمكنك الاختيار ما بين انماط مختلفة في ادخال المحتوى، يقوم دروبال بتحوير المحتوى وفقا لقواعد خاصة بكل نمط ادخال حتى يحصل على كود html يمكن اظهاره على الوب، أنماط الادخال اذن عبارة عن لغات مختلفة لتوصيف البيانات و الهدف النهائي هو الوصول لكود htm، تستخدم أنماط الادخال في تبسيط عملية كتابة المحتوى، فمثلا يمكن استخدام نمط ادخال مشابه لويكي بدلا من html، كما تتيح أنماط الأدخال امكانية التحكم في و فلترة ما يكتب في التعليقات أو في مساهمات الأعضاء (في حالة انعدام الثقة في نوايا أو قدرات المساهمين) بحيث تضمن عدم نشر محتوى مؤذي (كلمات ممنوعة، سكريبتات ضارة لاختراق أجهزة القراء، كود html سيئ تم قصه من أحد برامج مايكروسوفت المتخلفة).
يأتي دروبال بثلاثة أنماط ادخال افتراضية:
- filtered html
- يسمح فقط بمجموعة محدودة من وسوم html (يحددها مدير الموقع) و يحذف أي خصائص تتحكم بالشكل، مما يتيح لمدير الموقع ضمان أن يتبع كل المحتوى تصميم موحد، اضافة الى ذلك يحول هذا النمط نهايات الأسطر الى وسوم br مما يسهل يتيح كتابة نص مسترسل بشكل طبيعي و بدون اضافة كود html الا عند الضرورة
- full html
- نمط ادخال لا يتدخل في ما يكتبه المستخدم عدا تحويل نهايات الأسطر الي وسوم br، أي يسمح بأي كود html و باضافة خصائص css. و يفضل ألا يسمح الا لمن تثق بهم أن يستخدموا هذا النمط
- PHP code
- نمط ادخال خاص جدا يسمح بكتابة كود php داخل الصفحة مباشرة، يتم تنفيذ هذا البرنامج الصغير في سياق دروبال بحيث يتاح للبرنامج كافة متغيرات دروبال بما المتاحة للوحدات البرمجية بما فيها معلومات عن المستخدم الحالي (أي من يتصفح العقدة التي تحتوي على الكود) و تظهر نتائج تشغيل البرنامج في المكان الذي يحتوي غالبا على المحتوى
filter
الفلاتر هي الوحدات المكونة لأنماط الادخال، الفلتر يصف قاعدة من قواعد تحوير النص و رص مجموعة من الفلاتر في صورة stack بحيث يتم تنفيذ قواعد كل فلتر بحسب ترتيبه في الstack يصف نمط ادخال.
مثلا filtered html مكون في الأصل من فلترين، فلتر مسئول عن طمس الوسوم الغير مسموح بيها و فلتر مسئول عن الحفاظ على المسافات ما بين السطور (عن طريق تحويل نهايات الأسطر الي وسم br)
يمكن تعديل نمط filtered html و اضافة فلتر لتصحيح كود الhtml للحماية من أخطاء مستخدمي النظام كما يمكن اضافة فلتر لتحديد اتجاه السطر بشكل تلقائي فيحول الفقرات العربية الي اليمين و الفقرات الأخرى الي اليسار بغض النظر عن الاتجاه الأصلي للصفحة.
اضافة فلاتر جديدة يكون عن طريق اضافة وحدات برمجية، لكن ادراج الفلاتر في أنماط ادخال عمل يقوم به مدير الموقغ administer->input formats
بعض الفلاتر لها اعدادات يمكن تعديلها، التعديل يتم غالبا على مستوى نمط الادخال، فمثلا الفلتر المستخدم في طمس وسوم الhtml الغير مرغوب فيها جزء من اعدادته هو تعريف ما هي الوسوم المسموح بها، لكن يمكن عمل أكثر من نمط ادخال بحيث يتيح كل نمط حزمة مختلفة من الوسوم، فمثلا لا يسمح لجمهور الموقع أن يدرج صور في التعليقات لكن يسمح لكتاب الموقع بادراج صور، و بالتالي تكون صفحة الاعدادات مرتبطة بنمط الادخال و يقوم مدير الموقع باعداد نفس الفلتر بصورة مختلفة في كل نمط ادخال.
بعض الفلاتر غرضها الاضافة الي النص و ليس فقط تسهيل أو تنظيم كيفية كتابة النص، فمثلا وحدة glossary تضيف فلتر يراجع كل كلمات النص على قاموس مصطلحات، اذا وجدت كلمة في النص تطابق كلمة في القاموس يحول الكلمة في النص الي رابط لتعريف الكلمة في القاموس. فمثلا كلمة FOSS على موقع eglug يمكن فهم معناها بمجرد الاشارة اليها أو الضغط عليها.
taxonomy
نظام التصنيف الخاص بدروبال من أهم نقاط قوته، و لكنه أعقد في التعامل من نظم التصنيف الأخرى.
يستخدم نظام التصنيف في دروبال في وظائف قد تبدو بعيدة عن التصنيف فمثلا وحدة glossary تعتمد على نظام التصنيف في تعريف قاموس مصطلحات يتم عن طريق نظام التصنيف.
يدعم دروبال نظم تصنيف شجرية (هايراركية) و بالتالي تعتمد الكثير من الوحدات على نظام التصنيف من أجل بناء أطر شجرية (منتديات، جالريهات الصور، الخ).
التحكم في التصنيف في دروبال يكون عن طريق admin->categories
vocabulary
taxonomy term
path alias
user
profile
user roles
book
outline
revisions
image gallery
flexinode templates wiki syntax rich text editor
I suppose each of these should go on a seperate book page that falls under the same heirarchy, and any new arabic pages on drupal should fall under that heirarchy this way we might one day (as in the next decade) have a decent drupal booklet in arabic.
Comments
Plazma kiralama