مكونات النظام
-الواجهة الإدارية Administrative Interface
تتميز الواجهة الإدارية بأنها مدمجة مع بقية الموقع , اي كجزء منه .
ويمكن بسهولة الوصول لكافة الوظائف والخدمات الإدارية عبر
القوائم الإدارية التي تظهر في أعلى الصفحة عند الدخول كمدير للموقع site
administrator
-الوحدات Modules
يعتبر دروبال بمثابة إطار عمل وحدوي – ههههه إن جاز التعبير –
اي ان بنيته قائمة على اساس الوحدات modular framework . حيث ان الوظائف
والخدمات مضمنة ضمن وحدات modules , والتي من الممكن تفعيلها أو تعطيلها .
يتم اضافة ميزات وخدمات جديدة لدروبال عبر تفعيل وحدات موجودة
للتو , او عبر تثبيت وحدات جديدة تمت كتابتها من قبل أعضاء في مجتمع
دروبال drupal community, أو حتى عبر كتابة وحدات جديدة .
وبالتالي فإن اي موقع بإمكانه ان يعمل بالحد الأدنى من
الوحدات في حال لم يكن بحاجة لبقية الوحدات الاضافية , واما المواقع التي
تستلزم وظائف اخرى بإمكانها اضافة الوحدات التي تحوي هذه الوظائف وتفعيلها
بسهولة. تم توضيح هذه الامر عبر الرسم التوضيحي رقم 1-3
يمكن توسيع الوحدات عبر اضافة انماط جديدة من المحتوى new content types مثل recipes , blog posts or files
او يمكن اضافة سلوكيات لهذه الوحدات مثال : تنبيه بريدي e-mail notification …
ويتم استدعاء وظائف الوحدات modules functionality من قبل
اطار العمل framework في الوقت المناسب عبر ما يعرف ب hooks (السنانير و
مفردها سنارة ) والتي ساترجمها بالاحداث , لانها بالنهاية تمثل انقداح حدث
ما , اي حدوثه.
-الأحداث – السنانير Hooks
يمكننا أن نتخيل السنارة (الحدث ) على انه بمثابة حدث داخلي ضمن دروبال – لذلك ساتخذ كلمة حدث كترجمة ل Hook –
وتسمى بالاستدعاءات callbacks
ملاحظة : في الواقع فإن ال hooks لا تمثل استدعاءات بمعنى
الكلمة , لان ال hooks تُهيكَل وتبنى اعتمادا على معايير تسمية الوظائف
function – naming conventions , وليس عبر تسجيلهم بواسطة متنصت
listiener (كما هو الحال في بعض لغات البرمجة).
سنوضح هنا آلية عمل الأحداث hooks عبر مثال بسيط :
لنفترض بأن مستخدم ما قام بالدخول إلى موقع دروبال , خلال
الفترة الزمنية التي تتم بها عملية الدخول يقوم دروبال بقدح حدث
hook_user_login . وهذا يعني بأن اي تابع function يتطابق اسمه مع عُرف
التسمية module name + hook name سوف يتم استدعائه , مثلا إذا كنا في وحدة
التعليقات comment module عندها سيتم استدعاء التابع (الوظيفة ) comment_user_login , وإذا كنا في وحدة العقدة node module عندها سيتم استدعاء التابع node_user_login … وهلم جرة.
بفرض لدينا وحدة ما , وليكن اسمها spammy ,وظيفتها ارسال بريد للمستخدم عند كل دخول للموقع ,عندما نريد كتابة تابع (وظيفة ) للحدث Hook_user_login عندها يتم استبدال كلمة Hook باسم الوحدة , وبالتالي يكون اسم التابع spammy_user_login وسيتم استدعائه بشكل اوتوماتيكي عند كل دخول للمستخدم .
حيث ضمن محتوى هذا التابع نضع الترميز code الذي ينفذ عملية ارسال البريد الالكتروني للمستخدم مع كل دخول.
-الثيمات Themes
عندما نقوم بإنشاء صفحة انترنت ونريد ارسالها للمستعرض يكون لدينا اهتمامين اساسين :
- تجميع البيانات المناسبة
- وترميز المعطيات لتعرض على الويب
وتعتبر طبقة الثيم هي المسؤولة عن إنشاء HTML (أو JSON, XML ,etc ) التي سيقوم المستعرض بتلقيها.
يعتبر (PHP Template ) بمثابة محرك القوالب الاساسي
لدروبال templating engine, وبإمكانك ان تستخدم بدلاً عنه Easy Template
System (ETS) .
أغلب المطورين الذين يرغبون بإنشاء ثيمات جديدة في دروبال , يستخدمون محرك القوالب الاساسي الذي يأتي مع دروبال .
هنالك شيء مهم يجب تذكره بأن دروبال يشجع ويؤكد على فصل المحتوى عن الترميز.
يوفر دوربال عدة اساليب لتمكن المطورين من تعديل او تكيف
المظهر الخارجي للموقع يما يناسبهم. اسهل طريقة لذلك عبر استخدام ملفات
التنسيق cascading style sheet (CSS) وذلك لتجاوز التنسيقات المعرفة في
دروبال عبر اسناد تنسيقات جديدة للخاصيات class , id بتنسيقات جديدة معرفة
ضمن ملفات التنسيق.
على كل الأحول إذا رغبتم بالذهاب إلى أبعد من ذلك , وإجراء
تعديلات على خرج HTML الكلي , فإنه بإمكانك القيام بذلك نظام القوالب في
دروبال ( نتعرف عليه لاحقا).
تتألف ملفات القوالب في دروبال من لغتي HTML و PHP .
بالإضافة إلى ذلك فإن كل جزء ديناميكي من صفحات دروبال , مثل قائمة او ما
شابه , يمكن تجاوزه ببساطة override عبر تصريح تابع function يحمل الاسم
المناسب , وبالتالي فإن دروبال سوف يستخدم هذا التابع لينشأ ذلك الجزء من
الصفحة.
-العقد Nodes
إن انماط المعطيات content type في دروبال كلها مشتقة من نمط
اساسي فريد يسمى ب عقدة node . سواء كان blog entry او recipe او حتى
project task فإنهم هيكلية البيانات الاساسية واحدة في الكل.
تكمن العبقرية في هذا النهج في إمكانية التوسيع والتطوير
بسهولة. بإمكان مطوري الوحدات module developers اضافة ميزات اضافية مثل
التعليقات , تقييم , مرفقات ,… للعقد بشكل عام , دون الاكتراث إلى نوع
العقدة node type , ومن ثم يستطيع مدير النظام اختاير تفعيل الميزات التي
يريد على انماط المعطيات التي يريد . مثلاً : ريما يختار المدير ان يفعل
التعليقات للمدونات blog , وان لا يفعلها للمقالات …
تحوي العقد بشكل عام مجموعة من الخصائص السلوكية behavioral
properties التي يرثها كل انماط المعطيات.فاي عقدة يمكن تحديدها لتظهر في
الصفحة الرئيسية من الموقع , نشرها او عدم نشرها , او حتى وضع إمكانية
البحث ضمنها.
وبسبب هذه البنية الموجدة للعقد nodes فإن الواجهة الإدارة توفر لنا واجهات للتعامل مع هذه العقد و تحريرها.
-الحقول Fields
تتألف المحتويات في دروبال من حقول. فعنوان العقدة node title
هو عبارة عن حقل , وكذلك الحال بالنسبة لجسم العقدة node body . بإمكانك
استخدام الحقول في دروبال لإنشاء اي نمط محتويات content type ترغب به,
على سبيل المثال الحدث Event فإنه عادة يتألف من عنوان title وشرح
description or body , تاريخ البداية start date , توقيت البداية start
time , فترة زمنية duration , موقع location , ومن المحتمل ان يحوي على
رابط للتسجيل في الحدث . إن كل عنصر من العناصر السابقة يمثل حقل field .
لدينا في دروبال الامكانية لإنشاء انماط محتويات content type
باستخدام الحقول , إما بشكل برمجي عبر إنشاء وحدة module , او عبر
الواجهات الإدارية في دروبال وذلك عن طريق انشاء نمط معطيات جديد content
type وإسناده الحقول عبر واجهة المستخدم التي يوفرها لنا دروبال( التجربة
العملية توضح بشكل افضل الفكرة ) .
وكذلك تقدم لنا الواجهة الخاصة بالحقول field API التي يوفرها
لنا دروبال سهولة كبيرة في إنشاء انماط بسيطة ومعقدة من انمطا المحتويات
وذلك مع كم قليل من البرمجة .
-الكتل Blocks
الكتلة Block وهي عبارة عن معلومات يمكن تفعيلها أو تعطيلها
ضمن جزء محدد من قالب الموقع site’s template .على سبيل المثال , يمكن ان
تعرض الكتلة Block عدد المستخدمين الفعالين ضمن الموقع . أو يمكن ان يكون
لديك كتلة تحوي روابط لأكثر محتويات الموقع قراءة, او قائمة بالأحداث
القادمة.
عادة ما تتوضع البلوكات blocks ضمن العمود الجانبيsidebar في قالب الموقع , او ضمن الترويسة header او تذيل الموقع footer.
يمكن إعداد البلوكات لتعرض عقد node من نمط محدد في مكان محدد .
عادة ما تستخدم البوكات لعرض معلومات تم اعدادها بشكل خاص
للمستخدم الحالي. على سبيل المثال , فإن بلوك المستخدم تحوي فقط على روابط
للمناطق الادارية ضمن الموقع التي يستطيع المستخدم الحالي النفاذ إليها ,
مثل “حسابي ” my account .
المناطق Regions التي يمكن للبلوكات ان تظهر فيها (مثل
الترويسة او التذيل او العمود اليميني او اليساري من الموقع ) يتم تعريفها
ضمن ثيم الموقع site’s theme , ويتم التحكم بموضع وإمكانية رؤية هذه
البلوكات ضمن مناطقها regions عبر واجهة ادارية مخصصة لذلك.
-توضع الملفات File Layout
ان استيعاب وفهم بنية وتوضع الملفات ضمن التنصيب الاساسي
لدروبال يعلمنا عدة أمور وممارسات هامة مثل : معرفة مكان توضع الوحدات
والثيمات التي يتم تحميلها.
الشكل 1-4 أدناه يوضح مكان توضع الملفات والمجلدات ضمن التنصيب الأساسي لدروبال
ليست هناك تعليقات:
إرسال تعليق