آلية عمل دروبال – الفصل الأول – من كتاب : التطوير الاحترافي لدروبال chapeter 1 – Pro drupal 7 development

آلية عمل دروبال        How Drupal Works

سنقدم في هذا الفصل لمحة عن دروبال وتشمل ما يلي :

  • تفاصيل عن آلية عمل كل جزء من نظام دروبال
  • تغطية تقنية المكدس stack technology  التي يعمل دروبال على اساسها
  • توضع وتنسيق الملفات التي تشكل دروبال
  • شرح للمصطلحات التي يستخدمها دروبال مثل
  •  Node  – عقدة
  • Block  – كتلة برمجية
  • Hooks  – السنارات(وتشير إلى الأحداث)
  • themes

ما هو دروبال؟

  • يستخدم دروبال لبناء المواقع الالكترونية .
  • دروبال عبارة عن نظام إدارة محتوى مفتوح المصدر , يعتمد في هيكليته على الوحدات بشكل كبير modules  , ويعتمد على العمل التعاوني في بناءه وتطويره.
  • ويتميز دروبال بأنه قابل للتوسع والتطوير , وموافق للمعايير , ويسعى للحفاظ على ترميز – كود – نظيف , بأقل حجم ممكن.
  • دروبال مزود بعدد من الوظائف والفعاليات الاساسية المدمجة في نواة دروبالdurpal core  , ويمكن اضافة وظائف جديدة عبر تفعيل وحدات خارجية .
  • تمت برمجة دروبال ليكون قابل للتكيف , ويمكن تعديل وظائفه عبر القيام ب override على نواة دروبال drupal core   أو عبر اضافة وحدات جديدة ,ولكن لا يتم ابدا التعديل المباشر على النواة core
  • تصميم دروبال يعزل , بشكل ناجح جدا, بين إدارة المحتوى content management  وبين العرض presentation
  • يستخدم دروبال لإنشاء المواقع الشخصية والإدارية , بالإضافة إلى مواقع التجارة الالكترونية e-commerce site  , الجرائد الالكترونية online newspaper  , ادلة الموارد resource directory , مواقع الشبكات الاجتماعية social networking sites , معارض الصور image gallery  … ,باختصار بإمكان دروبال إنشاء اي نوع من انواع المواقع الذي بإمكانك تخيل إنشاءه.
  • هنالك فريق امني متخصص بأمن دروبال drupal security team  , يسعى بشكل جاهد للحفاظ على دروبال آمن وذلك من خلال الاستجابة للتهديدات وإصدار التحديثات الأمنية.
  • جمعية دروبال – جمعية غير ربحية – تقوم بدعم دروبال عبر تطوير البنية التحتية لموقع دروبال drupal.org  , كما انها تنظم الأحدث والمؤتمرات حول دروبال .

   تقنية المكدس stack technology   

من التقنيات التي يستخدمها دروبال “تقنية المكدس ” وهي من التقنيات الشائعة جداً.

في الشكل ادناه 1-1  يتم توضيح تقنية المكدس التي يستخدمها دروبال stack technology

stack technology in drupal

stack technology in drupal

  • طبقة نظام التشغيل : حيث وكما نلاحظ فإن نظام التشغيل يقع في مستوى منخفض في المكدس stack  , وبذلك فإن دروبال لا يهتم كثيرا لنوع نظام التشغيل .
  • يعمل دروبال على اي نظلم تشغيل يدعم PHP
  • طبقة المخدم , وتقع فوق طبقة نظام التشغيل , ويعتبر Apache  أكثر مخدم ويب web server  يستخدم مع دروبل , مع العلم أنه يمكن استخدام مخدمات ويب اخرى مثل Microsoft IIS  .
  • وبسبب العلاقة الطويلة بين دروبال و apache  فإن دروبال ياتي مع ملف .htaccess الذي يقوم بحماية تثبيت دروبال drupal installation .
  • الروابط النظيفة Clean URL وهي عبارة عن الروابط الخالية من اشارات الاستفهام , & وبقية المحارف الغريبة الأخرى, ويتم تحقيق الروابط النظيفة عبر مكون mode_rewrite  الموجود في apache
  • ثم تاتي الطبقة التالية من المكدس عبر طبقة تجريد لقاعدة المعطيات database abstraction layer  والتي تم بشكل كامل إعادة كتابتها بدروبال 7 . المقصود بطبقة التجريد أي بأنها تؤمن واجهة موحدة لتنفيذ الاستعلامات بعض النظر عن نوع قاعدة البيانات المستخدمة.
  • تقوم واجهة قاعدة المعطيات database interface  بتامين واجهة API تعتمد بشكل اساسي على PHP data object PDO وتسمح لدروبال بدعم بأن يدعم اي قاعدة معطيات تدعم PHP.
  • من اكثر قواعد المعطيات الشائعة MySql , PostgreSQL
  • وضمن اصدار دروبال 7 فإن SQLite  اصبح مدعوما ايضا
  • الطبقة الأخيرة ::كتب دروبال بلغة PHP , وكل ترميز نواة دروبال خضعت لمعايير الترميز بشكل صارم.

النواة   Core   

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

تتضمن النواة ترميز (كود) يمّكن نظام دروبال من ان يقلع عندما يستقبل طلبا ما , وتحوي النواة core مكتبة تحوي على وظائف شائعة تستخدم بشكل متكرر ضمن دروبال , بالإضافة إلى وحدات modules  تؤمن الوظائف الاساسية مثل :

  • إدارة المستخدمين user management
  • نظام التصنيفاتtaxonomy
  • نظام القوالب templeting

كما هو موضع بالشكل  1-2

drupal-core

drupal-core

كما تتضمن النواة عدد من الكتل ذات الوظائف الاساسية التي تستخدم في أغلب المواقع  , ومن ضمنها

  • Feed aggregation
  • Blogging
  • Polls
  • Forums

الواجهة الإدارية   Administrative Interface   

تتميز الواجهة الإدارية بأنها مدمجة مع بقية الموقع , اي كجزء منه .

ويمكن بسهولة الوصول لكافة الوظائف والخدمات الإدارية عبر القوائم الإدارية التي تظهر في أعلى الصفحة عند الدخول كمدير للموقع site administrator

الوحدات     Modules   

يعتبر دروبال بمثابة إطار عمل وحدوي – ههههه إن جاز التعبير – اي ان بنيته قائمة على اساس الوحدات modular framework . حيث ان الوظائف والخدمات مضمنة ضمن وحدات modules  , والتي من الممكن تفعيلها أو تعطيلها .

يتم اضافة ميزات وخدمات جديدة لدروبال عبر تفعيل وحدات موجودة للتو , او عبر تثبيت وحدات جديدة تمت كتابتها من قبل أعضاء في مجتمع دروبال drupal community, أو حتى عبر كتابة وحدات جديدة .

وبالتالي فإن اي موقع بإمكانه ان يعمل بالحد الأدنى من الوحدات في حال لم يكن بحاجة لبقية الوحدات الاضافية , واما المواقع التي تستلزم وظائف اخرى بإمكانها اضافة الوحدات التي تحوي هذه الوظائف وتفعيلها بسهولة. تم توضيح هذه الامر عبر الرسم التوضيحي رقم 1-3

enabling-additional-modules

enabling-additional-modules

يمكن توسيع الوحدات عبر اضافة انماط جديدة من المحتوى 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   

عندما نقوم بإنشاء صفحة انترنت ونريد ارسالها للمستعرض يكون لدينا اهتمامين اساسين :

  1. تجميع البيانات المناسبة
  2. وترميز المعطيات لتعرض على الويب

وتعتبر طبقة الثيم هي المسؤولة عن إنشاء 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 أدناه يوضح مكان توضع الملفات والمجلدات ضمن التنصيب الأساسي لدروبال

file-layout in drupal

فيما يلي سنورد تفاصيل كل عنصر ضمن بنية المجلدات :

  • مجلد include  يحوي مكتبات libraries  الوظائف العامة التي يستخدمها دروبال
  • مجلد misc يخزن ملفات جافا سكريب javascript  وايقونات منتنوعة الخاصة بتنصيب دروبال
  • مجلد modules  يحوي وحدات النواة core modules  ,  وذلك حيث تتوضع كل وحدة ضمن مجلدها الخاص . من الأفضل ألا يتم لمس اي شيء ضمن هذا المجلد (او أي مجلد باستثناء مجلدي  profiles  و sites  ).وإذا رغبنا بإضافة وحدات إضافية فإننا نضيفها ضمن مجلد sites  .
  • مجلد profile   يحوي  على عدد من ملفات التثبيت المختلفة الخاصة بالموقع. في حال كان هنالك ملفات تثبيت اخرى بجانب ملفات التثبيت الافتراضية في مجلد فرعي , عندها سيقوم دروبال بالاستفسار عن الملفات التي نرغب تثبيتها وذلك أثناء تثبيت موقع دروبال.
  • مجلد scripts  يحوي عدد من السكريبتات التي تقوم بما يلي :
  •  تتحقق من ال syntax  (اي من صحة صياغة الكود )
  • السكريبتات التي تنظف الكود
  • السكريبتات المسؤولة عن تشغيل دروبال من خلال سطر الأوامر command line
  • السكريبتات الخاصة بالتعامل مع الحالات الخاصة عبر corn
  • السكريبتات التي تتقوم بتشغيل مجموعة الاختبار testing suits (وهي ميزة جديدة ضمن دروبال 7 ) .
  • المسار sites   (الشكل 1-5  )  يحوي على التعديلات التي قمت بها على دروبال وذلك يشمل التعديلات على الإعدادات setting  , الوحدات modules  , الثيمات  themes. عندما تقوم بإضافة وحدة جديدة إلى دروبال new module  من مخزن الوحدات المساهمة contributed modules repository أو وحدة قمت انت بكتابتها , فإن هذه الوحدات الجديدة تتوضع في المسار التالي : sites/all/modules. هذا يجعل كل التعديلات التي تقوم بها على دروبال تتوضع ضمن مجلد واحد. يتواجد ضمن مجلد sites  مجلد فرعي يدعى default  وهو يحوي على ملف الإعدادات الافتراضية لموقع دروبال (default.settings) . يقوم مثبت دروبال drupal installer  يقوم بتعديل هذه الإعدادات الاصلية اعتمادا على المعلومات التي تقوم بتزويدها وبالتالي يكتب المثبت ملف settings.php ضمن موقعك. الدليل (المسار) default عادة ما يتم نسخه وتغيير اسمه إلى مسار URL موقعك , وذلك بواسطة الشخص الذي يقوم بنشر الموقع, وبالتالي , فإن ملف الاعدادات النهائية سيكون على المسار التالي : sites/www.example.com/settings.php
  • مجلد sites/default/files يتم بشكل افتراضي تضمينه ضمن الثبيت الاساسي لدروبال . وهو ضروري لتخزين اي ملفات يتم رفعها لموقعك , ويتم استخدامها في وقت لاحق. بعض الأمثلة على محتويات هذا المجلد استخدام شعارات مخصصة , أو تحميل بعض الوسائط المتعددة المرفقة مع موقعك. يحتاج هذا المجلد الفرعي ان يُعطى صلاحيات قراءة وكتابة من قبل مخدم الويب الذي يعمل عليه دروبال. يقوم مثبت دروبال بإنشاء هذا المجلد الفرعي في حال تمكن من ذلك وسيقوم من التحقق فيما إذا كانت قد اعطيت الصلاحيات المناسبة. وبالاضافة إلى مجلد sites/default/files ,من الممكن ان يتم انشاء المسار التالي sites/default/private  وذلك لتخزين الملفات ذات الطبيعة الحساسة  والتي لا يمكن عرضها إلا إذا كان المستخدم يملك الصلاحيات المناسبة. بإمكانك إنشاء مسار الملفات الخاصة private files  وذلك من المسار التالي : configuration ->File System   وضمن هذه الصفحة يظهر لنا حقل نصي يحمل اسم “الملفات الخاصة ” private files  , ومن هنالك يتم ادخال المسار الذي نرغب في ان تتخزن الملفات الخاصة ضمنه.
  • مجلد themes يحوي على محرك القوالب template engines  والثيمات الافتراضية default themes الخاصة بدوبال. أما بالنسبة للثيمات الإضافية التي تقوم بتحميلها أو إنشائها لا يجب ان نضعها ضمن هذا المجلد, وإنما توضع ضمن المجلد sites/all/themes.
  • ملف corn.php  : يستخدم لتنفيذ المهام الدورية , مثل تشذيب قاعدة جداول قاعدة المعطيات و حساب الإحصاءات.
  • ملف index.php ويعتبر المدخل الرئيسي لتخديم الطلبات.
  • Install.php  ويعتبر المدخل الرئيسي لمثبت دروبال
  • ملف Update.php ويقوم بتعديل مخطط قاعدة البيانات وذلك بعد الترقية بإصدارت جديدة من دروبال
  • ملف Xmlrpc.php ويقوم باستقبال طلبات XML-RPC , ويمكن حذف هذا الملف بشكل آمن في حال لمن نكن ننوي استقبال طلبات XML-RPC.
  • ملف robots.txt robots.txt is a default implementation of the robot exclusion standard.
  • ملف authorize.php وهو عبارة عن سكريبت ادارية وذلك لتشغيل العمليات المسموحة على الملفات, على سبيل المثال , عملية تحميل أو تثبيت ثيم جديد new theme او وحدة من موقع دروبال.

أما بقية الملفات التي لم تذكر هنا فهي عبارة عن ملفات توثيقيةdocumentation files .

site-folder structur

site-folder structur

 تخديم الطلبات     Serving a Request     

يعتبر وجود إطارعمل يمكننا من معرفة ما الذي يحدث عندما يتلقى دروبال طلب ما , امر مهم جدا ومفيد. لذلك سنقوم ضمن هذا الجزء بتوفير خطوات سريعة عما يحدث عند تلقي طلب ما ضمن دروبال.

إذا كنت ترغب في أن تتتبع هذا الموضوع بنفسك , استخدم “مصحح اخطاء” debugger  جيد, وابدأ من صفحة index.php  , وهي المكان الاساسي الذي يتلقى في دروبال اغلب طلباته.

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

دور مخدم الويب     The Web Server’s Role         

يعمل دروبال على مخدم ويب ,وغالبا apache  . إذا كان مخدم الويب يأخذ بعين الاعتبار ملف .htaccess في دروبال , عندها سيتم تهيئة بعض إعدادات PHP. ويتم فحص الروابط URL. تقريباً, كل الاستدعاءات لدروبال تمر من خلال صفحة index.php , على سبيل المثال , إن استدعاء لصفحة http://example.com/foo/bar  يخضع للإجرائيات التالية :

  1. تقوم قواعد mode_rewrite الموجودة في .htaccess الخاص بدروبال ,بالتدقيق على كل الروابط القادمة URL , وتقوم بفصل المسار الأساسي base URL عن المسار المتبقى.  في مثالنا , المسار هو التالي : foo/bar.
  2. يتم اسناد المسار المتبقى إلى معامل الاستعلام q ضمن ال URL.
  3. وبالتالي فإن المسار الناتج URL  هو التالي : http://example.com/index.php?q=foo/bar
  4. يعامل دروبال foo/bar  على انه مسار داخلي ضمن دروبال , وتبدأ المعالجة ضمن صفحة index.php.

وكنتيجة لهذه المعالجة , فإن دروبال يقوم بمعالجة كل من http://example.com/index.php?q=foo/bar

و http://eample.com/foo/bar  بنفس الطريقة, وذلك لأن المسار هو نفسه “بشكل داخلي ضمن دروبال” في كلا الحالتين . وهذا يُمكن دروبال من استخدام المسارات URLs بدون وجود المحارف المضحكة ضمنهم. ويشار إلى تلك المسارات URLs بالمسارات النظيفة (لانها خالية من المحارف الغير مرغوب فيها ضمن المسار).

في مخدمات ويب اخرى, مثل Microsoft IIS , يمكن تحقيق المسارات النظيفة clean URLs باستخدام وحدة Windows Internet Server Application Programming Interface(ISAPI)  مثل ISAPI Rewrite.

إن IIS الاصدار 7 وما فوق تدعم بشكل مباشر المسارات النظيفة. إذا كنت تشغّل موقعك على ISS 7  او ما فوق , فيجب عليك عندها ان تتحقق من ملف   web.config الذي تستطيع من عنده تفعيل المسارات النظيفة , نستطيع حماية ملفاتنا التي لا نرغب المتطفلين من الوصول إليها مثل .install, .module , .test, .theme, .profile, .info,  الخ

إجرائية التمهيد     The Bootstrap Process         

يقوم دروبال بعملية تمهيد لنفسه مع كل طلب وذلك عبر الذهاب ضمن سلسلة من المراحل التمهيدية . تم تعريف هذه المراحل ضمن ملف bootstap.inc , وتمضي قدما عبر المراحل الموضحة ضمن الجدول 1-1

Purpose

Phase

Set global variables used through|out the bootstrap process

Configuration

Initializes the database system and registers autoload functions

Database

Loads system variables and all enabled bootstrap modules

Variables

Initializes session handling

Sessions

Invokes hook_boot(), initializes the locking system, and sends the default HTTP headers

Page Header

Initializes all the defined languages types

Languages

The final phase: Drupal is fully loaded by now .This phase validates and fixes the input data.

Full

معالجة الطلبات     Processing a Request     

إن تابع الاستدعاء   callback function يقوم بأي عمل مطلوب منه لمعالجة وتجميع المعطيات المطلوبة لتنفيذ الطلب request. على سبيل المثال , إذا كان قد تم تلقي الطلب التالي لاستعراض المحتوى : http://example.com/q=node/3 فإن هذا المسار URL تتم مطابقته مع التابع node_page_view() الموجود ضمن node.module . وستجري معالجات اخرى من ضمنها استعادة معطيات هذه العقدة من قاعدة المعطيات ووضعها ضمن بنية المعطيات. وبعدها يأتي وقت ال theme (اي تطبيق السمات المناسب – ستايل)

تطبيق السمات المناسبة على المعطيات – ستايل     Theming the Data

إن عملية تطبيق السمات المناسبة على المعطيات تتضمن نقل المعطيات التي تم استرجاعها ومعالجتها , او إنشائها ضمن HTML  ( أو XML أو اي تنسيق خرج اخر ).

يقوم دروبال باستخدام الثيم (الستايل) الذي قام المدير باختياره ليعطي الصفحة المظهر المناسب.  ثم يتم ارسال الخرج الناتج إلى مستعرض الويب ( or other HTTP client  ) .

الخلاصة    Summary     

بعد قراءة هذا الجزء , يجب ان يكون لديك فكرة واضحة عن آلية عمل دروبال , ولمحة عما يجري عندما يخدم دروبال طلب ما.

لتحميل التدوينة — انقر هنا –الفصل الأول : آلية عمل دروبال

المصطلح

الترجمة

الشرح

Stack

المكدس

المكدس : من تكديس الأشياء فوق بعضها

Module

وحدة

Template

قالب

Node

عقدة

content management

إدارة المحتوى

Taxonomy

نظام التصنيف

Vocabulary

مجموعة مصطلحات مرتبطة ببعضها البعض

taxonomy term

مصطلح او تصنيف

Core

نواة

block

الكتل

function

وظيفة أو تابع بحسب السياق

Profile Installation

ملف التثبيت

Installer

مثبت

Installation

التثبيت

Theme

التنسيق – الستايلات

Advertisements

, , , , , , , , , , , , , ,

  1. #1 by اوس on نوفمبر 3, 2012 - 1:09 م

    جهود مباركة
    بانتظار بقية الاجزاء من التطوير الاحترافي لدروبال , وجزاكم الله خيرا

  2. #2 by محمد الحمود on أغسطس 18, 2015 - 1:08 م

    أكثر من رائع, كل الشكر لك.
    قد أنشأت تصنيف في دروبل, ولاكن لم يظهر لا عند إنشاء مقال ولا في الصفحة الرئيسية, فما هي الطريقة الصحيحة لإنشاء تصنيف أو قسم.
    مع الشكر.

  3. #3 by Jayo Fahad on يونيو 27, 2016 - 6:26 م

    ماشاء الله تبارك الله .. شرح وافي و ممتاز للمبتدئين أمثالي
    جزاك الله خيرا

اترك رد

Please log in using one of these methods to post your comment:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: