Skip to Content

شرح لمصطلحات دروبال

Alaa's picture

مصطلحات و مفاهيم أساسية عن دروبال

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

تكمن المرونة العالية في نظام دروبال في أنه مبني على بعض الأفكار المجردة البسيطة، عملية بناء و اعداد موقع بدروبال تتركز في تجميع و تربيط تلك الأفكار و الأدوات. يتبنى مطوروا دروبال مبدأ أن تكون واجهة المستخدم (بالأخص مدير الموقع) طبقة رقيقة شفافة لا تحجب تفاصيل البناء الداخلي للبرنامج و من هنا يأتي شعار دروبال "سباكة لمجتمعات الوب"، اذن دورك كمدير للموقع كدور سباك يركب مواسير و حنفيات و في النهاية يرص بلاط ليبسط واجهة البرنامج.

هذه الوثيقة محاولة لشرح المواسير (عفوا المصطلحات و المفاهيم) المستخدمة في دروبال، يمكنك استخدام دروبال بدون أن تتحول الى سباك، هذه الوثيقة بالأساس لمن يرغب في التعمق في النظام.

سأحاول ترتيب المصطلحات بدرجة الأهمية.

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

عبارة عن مجموعة من المصطلحات (الفئات أو التصنيفات) مرتبطة ببعضها، فمثلا مجموعة مصطلحات الألوان تشمل الأحمر و الأخضر و الأزرق الخ في حين أن مجموعة مصطلحات البلاد تشمل مصر و أوغندا و الصين الخ.

الغرض من تجميع المصطلحات في مجموعات مختلفة هو اتاحة التصنيف على أسس مختلفة و النظر الي المحتوى وفقا لقواعد مختلفة، فمثلا يمكن تصنيف التدوينات حسب موضوعها (ثقافة، فن، تكنولوجيا، سياسة، الخ)، و في نفس الوقت يمكن تصنيف نفس التدوينات حسب رخصة توزيع المحتوى (رخصة حرة، مجال عام، جميع الحقوق محفوظة) و يمكن أيضا تصنيفها حسب الحالة المزاجية وقت الكتابة (سعيد، مكتئب، خمول، الخ)، كما يمكن تصنيف نفس المحتوى تصنيفات داخلية قد لا تهم القارئ لكن تهم أصحاب الموقع (سيطبع في دورية المركز، يرسل بالبريد الاكتروني للمشتركين، مهم للمؤتمر القادم، كتبه كاتب من خارج المؤسسة، الخ).

اذن عقدة محتوى واحدة يمكن تصنيفها وفقا لأكثر من طريقة (أو نظرة).

عند انشاء أو تعديل مجموعة مصطلحات يتم تحديد أنواع المحتوى التى سينطبق عليها التصنيف، فمثلا الصور ستصنف على أساس اللون الغالب و المقالات ستصنف على أساس الموضوع لكن التصنيف على أساس رخصة المحتوى سيشمل الصور و المقالات.

من المهم تفادي التقاطع بين مجموعات المصطلحات. فلا معنى للخلط بين الألوان و رخص التوزيع.

عن انشاء مجموعة مصطلحات تحدد أيضا اذا كانت مجموعة مصطلحات مسطحة (مجرد قائمة مرتبة) أم ستأخذ شكل شجري (single hierarchy) يكون للمصطلحات فيه جذر واحد على الأكثر و فروع عديدة، أم ستأخذ شكل شبكي (multiple hierarchy) تتعد فيه الجذور و الفروع.

يمكن أيضا تحديد ما اذا كان متاح تصنيف عقدة محتوى واحدة تحت أكثر من مصطلح من نفس مجموعة المصطلحات (فمثلا مقال عن فيلم سياسي يمكن تصنيفه تحت فن و تحت سياسة، و التصنيفين جزء من مجموعة مصطلحات واحدة أسمها مثلا موضوع المقال).

taxonomy term

مصطلح أو تصنيف، و يكون جزء من مجموعة مصطلحات و هو ما يندرج تحته مجموعة ما من العقد.

لكل مصطلح صفحة مشابهة للصفحة الرئيسية الافتراضية يعرض فيها العقد المصنفة تحت المصطلح مرتبة عكسيا حسب تاريخ النشر، بالاضافة الى تلقيمة rss خاصة بالمصطلح.

دروبال لا يخلق روابط واضحة لصفحات المصطلحات تلقائيا، يضيف النظام روابط الي كل عقدة بصفحات المصطلحات الخاصة بالعقدة. لكن عنوان صفحة المصطلح يتبع دائما الشكل taxonomy/term/ID حيث يتم استبدال ID بالرقم المسلسل للمصطلح.

يمكن معرفة الرقم المسلسل لكل مصطلح عن طريق ملاحظة عنوان صفحة تحرير المصطلح

لاحظ اضافة /0 في عنوان التلقيمة، 0 يشير الي عمق التلقيمة في شجرة المصطلحات، فصفر تعني عرض العقد المصنفة مباشرة تحت المصطلح لكن 1 تعني عرض العقد المصنفة مباشرة بالاضافة الي العقد المصنفة تحت أي مصطلحات متفرع مباشرة من المصطلح اياه و 2 تعني عرض ما صنف تحت المصطلح و فروعه و فروع فروعه و هكذا، و تستخدم all للدلالة على المصطلح و كل فروعه (أي أعمق ما يمكن). طبعا في حالة مجموعة مصطلحات مسطحة لا يهم الرقم الاضافي و اصطلح استخدام صفر.

تضيف الوحدة الاضافية taxonomy menu روابط لصفحات مصطلحات التصنيف تلقائيا في قائمة التصفح الرئيسية و يمكن طبعا نقل الروابط الي قائمة مستقلة.

path alias

صفحات دروبال لها عناوين محددة، اذا سجلت عنوان صفحة ثم زرته ثانيا ستجد نفس الصفحة، تتبع تلك العناوين نظام محدد فمثلا عناوين العقد تأخذ صورة node/ID أي أولا عقدة عنوانها node/1 و ثاني عقدة node/2 و هكذا، و هذا العنوان ثابت فمثلا مسح ثاني عقدة لا يغير من عنوان ثالث عقدة (تظل node/3)، ذات الشيئ ينطبق على عناوين صفحات مصطلحات التصنيف التي تأخد الشكل taxonomy/term/ID و هكذا.

لكن يتيح دروبال لمدير الموقع تحديد عناوين اضافية لأي صفحة، مما يثري الموقع، فمثلا استخدام /about كعنوان لصفحة "من نحن" أفضل من استخدام node/503 و استخدام /community_events أفضل من taxonomy/term/51,95

عمل عناوين اضافية يعتمد على وحدة path (مرفقة مع دروبال لكن غير مفعلة تلقائيا)، في حالة العقد يمكن عمل عنوان بديل/من خلال استمارة انشاء محتوى، للصفحات الأخرى يجب زيارة administer->url aliases

user

مستخدم النظام هو أي زائر للموقع، سواء كان مجرد قارئ أو مشارك أو مدير الموقع، يمكن طبعا تسجيل حسابات عضوية على الموقع و استخدام اسم الحساب و كلمة سر للولوج الي الموقع

profile

لكل مستخدم مسجل ملف على الموقع يمكن زيارته من user/ID حيث ID هي مسلسل المستخدم.

في الأصل لا يطلب دروبال الا اسم و عنوان بريد الكتروني لكي ينشئ حساب بالاضافة الي كلمة سر يختارها دروبال عشوائيا ثم يتاح للمستخدم تعديلها. لكن بعد تفعيل وحدة profile يمكن لمدير الموقع تصميم استمارة عضوية بها خانات اضافية (الاسم بالكامل، المهنة، مفتاح التشفير العلني، الاهتمامات، الخ) كما يمكن تحديد أي خانات أجبارية و أيها اختياري و أي الخانات سيعرض لحظة التسجيل و أيها متاح فقط عند تعديل بيانات الحساب.

user roles

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

ينشئ دروبال دواران تلقائيان:

anonymous user
مستخدم مجهول و مقصود به أي زائر للموقع لم يلج الى حساب مستخدم مسجل في الموقع (الغالبية العظمى من قراء أي صفحة وب علنية)
authenticated user
مستخدم معروف للنظام و المقصود به أي زائر للموقع له حساب مسجل و قام فعلا بالولوج عن طريق ادخال اسم الحساب و كلمة السر

يمكن لمدير الموقع انشاء أدوار اضافية عن طريق administer-> و تحديد صلاحيات كل دور من administer->access control و تخصيص الأدوار يكون عن طريق تعديل حساب المستخدم user/ID/edit

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

يعامل أول حساب على النظام (مسلسل 1) معاملة خاصة، أشبه بالمستخدم الجذر في نظم اليونكس، أي تتاح له كافة الصلاحيات بغض النظر عن أدواره و صلاحيات تلك الأدوار.

وحدة members الاضافية تتيح عرض قائمة بالمستخدمين حسب أدوارهم.

book page

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

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Dr. Radut | book