اذهب إلى المحتوى

د. محمد العطار

الأعضاء
  • المساهمات

    4
  • تاريخ الانضمام

  • تاريخ آخر زيارة

إنجازات د. محمد العطار

عضو مبتدئ

عضو مبتدئ (1/3)

0

السمعة بالموقع

  1. لعل من أهم ما يمتاز به اليوم أي موقع أو تطبيق هو تعدد اللغات التي يقدم بها خدماته للعملاء حول العالم، والذي لا يمنعهم من الاستفادة منه غير حاجز اللغة؛ امتاز دروبال عن سائر أنظمة إدارة المحتوى مبكرًا بدعمه المتقدم لتعدد اللغات وهي ميزة مهمة لبناء المواقع باللغة العربية. يتيح دروبال تعدد اللغات عبر وحدات متواجدة مع دروبال 9 افتراضيًا، توفر أغلب حاجات المواقع من حيث تعدد اللغات مع وجود أكثر من 198 وحدة من مشاركة مجتمع المصادر الحرة منشورة مجانًا في مستودع الوحدات في موقع دروبال الرسمي تحت تصنيف تعدد اللغات. متطلبات و ملاحظات حول الدرس معرفة عامة بنظام إدارة المحتوى دروبال و نسخة مثبتة من دروبال 9. الصور التوضيحية ناتجة بعد تثبيت و تفعيل وحدات يُوصى باستخدامها مثل Admin Toolbar؛ اذا لم تكن تستخدم هذه الوحدة يمكنك اتباع مسار الوصول URL وستكون بشكل اقتباس يبدأ بعد عنوان موقعك وبدون سابقة اللغة؛ أي العبارة التالية للوصول لصفحة الوحدات: admin/modules يتشكل أي موقع من حيث تعدد اللغات من جزئين الأول هو الأجزاء الثابتة من الموقع وتسمى واجهة المستخدم والثاني متغير وهو المحتوى الذي أنشأه صاحب الموقع. يدعم دروبال تعدد اللغات في كلا الجزئين. تفعيل وحدات تعدد اللغات يحوي دروبال 9 في صفحة الوحدات افتراضيًا تصنيف تعدد اللغات ويحوي أربع وحدات هي: Language و Interface Translation و Content Translation و Configuration Translation. توفر هذه الوحدات الأربع أغلب ما يحتاج إليه لدعم تعدد اللغات، فعّلها كلها. إدارة اللغات تبدأ عملية دعم تعدد اللغات بإضافة اللغة المطلوبة لقائمة اللغات المتوفرة في الموقع، من المسار أدناه اختر Add language ثم اللغة العربية.سيحمل دروبال الترجمة المتوفرة لهذه اللغة من المستودع (موقع دروبال الرسمي) لواجهة دروبال ولكل الوحدات المثبتة. لا ينصح بتغيير اللغة الافتراضية للموقع لغير الإنجليزية؛ يمكن التحكم بأوليات عرض اللغة بغض النظر عن اللغة الافتراضية للموقع من لسان التبويب Detection and selection. Configuration > Regional and language > Languages admin/config/regional/language أولويات عرض اللغة مع تفعيل اللغة العربية، يمكن الوصول لصفحات الموقع بالعربية بعدة طرق يمكن التحكم بها من صفحة أولويات عرض اللغة؛ من لسان التبويب Detection and selection أو المسار: admin/config/regional/language/detection ستلاحظ 6 طرق لترتيب أولويات عرض اللغة، كالتالي: خيار اللغة المختارة Selected language يمكن من هذا الخيار تحديد اللغة الافتراضية للعرض في حال عدم وجود أي خيار كأولوية، إجعل هذا الخيار في أعلى القائمة ثم احفظ إعدادات الصفحة، ثم اتجه لإعدادات اللغة المختارة، واختر اللغة العربية. سيتيح هذا الخيار أن تكون اللغة العربية هي اللغة الافتراضية للعرض إن لم تتغير بطريقة أخرى من الأولويات، ومثالًا على ذلك إن لم تحدد اللغة عبر العنوان URL، ستكون اللغة العربية اللغة الافتراضية للعرض، وسيؤدي طلب عنوان الموقع الرئيسي www.site.com لعرض الصفحة العربية إن لم تحدد بغير ذلك لاحقًا. خيار العنوان URL يعتمد دروبال على حرفين كمؤشر لكل لغة، فهي للإنجليزية en والعربية ar يتعامل بها لتنظيم التعرف على اللغة، ويمكن أن تكون لسابقة في اسم النطاق أو لاحقة بعد اسم النطاق، افتراضيًا ستكون لاحقة اسم النطاق ar إشارة للغة العربية، ويمكن تغير هذا لأي نص آخر. من صفحة إعدادات خيار العنوان تأكد من وجود الحرفين en للغة الانجليزية، احفظ صفحة الإعدادات ثم اجعل هذا الخيار في الرتبة الثانية و احفظ الإعدادات مجددًا. سيكون بالإمكان الوصول للصفحة الإنجليزية عبر المسار التالي www.site.com/en الجلسة: يحدد هذا الخيار أولوية تحديد اللغة في حال تعيين ذلك ضمن مرسلات http، مثل البيانات التي يزود بها الموقع تطبيق هاتف نقال. المستخدم: يمكن لكل مستخدم تحديد تفضيلات اللغة التي يريد تصفح الموقع بها؛ ويتم تحديد هذه الأولية بتغيير موضع هذا الخيار. المتصفّح: يمكن للمستخدم تحديد أولويات العرض من المتصفح، يوفر هذا الخيار تحديد أولوية استعراض اللغة عبر المتصفح. إدارة ترجمة العناصر المقصود بالعنصر من حيث الترجمة أي جزء متغير سواء كان ذلك أنواع المحتوى مثل الصفحة الأساسية أو المقال الموجودين افتراضيًا في دروبال أو الأعضاء أو التصنيفات. لتفعيل تعدد اللغات وترجمة أي محتوى اتبع المسار: admin/config/regional/content-language تحت العنوان Custom language settings مع تفعيل خيار أي نوع من العناصر -مثلًا المحتوى- يظهر جزء آخر أسفله اسم العنصر المفعّل، يحوي كل الخيارات المصنفة تحته، فمثلًا تحت عنصر المحتوى يتواجد "مقال" و "صفحة أساسية". سيتاح مع اختيار كل عنصر مفعل كل البيانات المتواجدة لهذا العنصر يمكن تحديد القابل للترجمة منها (بما في ذلك اختيار الوسائط المتعددة مثل الصور)، إضافة لقائمة تُحدد منها اللغة الافتراضية وخيار لتمكين المستخدم من تحديد لغة المحتوى حين الإنشاء أو التحرير. اجعل اللغة الإفتراضية العربية وفعّل خيار تمكين المستخدم من تحديد اللغة، ثم احفظ الإعدادات. إنشاء محتوى متعدد اللغات بفرض تفعيل خيار تعدد اللغات للمحتوى من نوع "مقال"، أنشئ مقالًا جديدًا من القائمة: المحتوى > إضافة محتوى > مقال أو مباشرة عبر المسار: node/add/article لاحظ وجود قائمة يمكن منها اختيار لغة المحتوى وهي افتراضيًا العربية مثلما تم تحديده في إعدادات تعدد اللغات لهذا النوع من المحتوى؛ احفظ الصفحة ثم لاحظ وجود لسان تبويب باسم الترجمة، حيث تتمكن من إدراج ترجمة مرتبطة بهذا المحتوى. هيكل تعدد اللغات في قاعدة البيانات من الأخطاء الرائجة في استخدام نظام إدارة المحتوى دروبال، إنشاء المحتوى بعدد لغات الموقع من القائمة (المحتوى > إضافة محتوى) عوضًا عن إنشائها عبر تبويب الترجمة، وهذا يعني إنشاء محتويين ليس بينها علاقة. تجنب إنشاء ترجمة لذات المحتوى مباشرة؛ إذ يجب أن يكون المحتوى المترجم مرتبطًا بالمحتوى الأصلي في قاعدة البيانات. لتتضح صورة جسامة هذا الخطأ في إدارة البيانات افتح phpmyadmin ثم قاعدة بيانات نسخة دروبال، ثم اتجه للجدول node حيث يُحفظ كل أنواع المحتوى مرة واحدة في هذا الجدول. لاحظ أن المحتوى "مقال" الذي تم إنشاؤه حديثًا له رقم nid قيمته 3 -قد يكون مختلفًا لديك- وقيمة نوع المحتوى "مقال" والنسخة الأصلية منه باللغة العربية حيث الحقل langcode قيمته ar. افتح جدول node_field_data والذي يحتفظ فيه دروبال بالبيانات الأساسية لكل محتوى، ستجد حقل معرف المحتوى nid ذات القيمة 3 مكررة مرتين، مرة للعربية ومرة للإنجليزية. في حال عدم اتباع خطوات الترجمة السليمة أعلاه، سيكون لكل لغة رقم معرف nid خاص غير مرتبط بالمحتوى الأصلي، ويتكرر عدم الإرتباط هذا في كل الجداول المعنية بحقول المحتوى. إدارة تعدد لغات الواجهة نصوص الواجهة هي النصوص الثابتة والتي تم إنشاؤها من قبل مبرمجي دروبال أو مبرمجي الوحدات البرمجية، يمكن ترجمة هذه النصوص عبر واجهة مستخدم من موقع دروبال من القائمة (الإعدادات > الإقليمية واللغة > ترجمة واجهة المستخدم) أو عبر المسار: admin/config/regional/translate حيث يمكن استعراض جميع النصوص الموجودة في ملفات ترجمة دروبال أو البحث عن أحدها؛ لاحظ حين ترجمة أي نص الإنتباه بعد تغيير أسماء المتغيرات token، فمثلاً حين ترجمة Welcome to [site:name] إلى أهلاً بك في [site:name] انتبه لعدم تغيير النص الموجود بين قوسين معقوفين. على الرغم من أن واجهة المستخدم تتيح إمكانية الترجمة بالكامل، إلا أن استخدام برامج مستقلة للترجمة أكثر سرعة وأسهل استخدامًا وأفضل من حيث المراجعة والتدقيق. لترجمة الموقع خارجيًا يجب أولًا تصدير النصوص غير المترجمة من لسان التبويب تصدير أو المسار: admin/config/regional/translate/export حيث سيزودك دروبال بملف من النوع Gettext Portable Object (.po) والذي يحوي النص الأصلي الذي يبدأ بكلمة msgid ثم الترجمة التي تبدأ بالكلمة msgstr، كالمثال أدناه. msgid "Operations" msgstr "عمليات" أدوات مساعدة للترجمة على الرغم من إمكانية استخدام أي محرر نصوص لعملية الترجمة، يفضل استخدام برامج مختصة بمعالجة هذا النوع من الملفات وأشهرها تطبيق poedit المتوفر مجانًا ولأنظمة التشغيل ويندوز، لينوكس وماك أو إس. يوفر هذا البرنامج واجهة تتيح الترجمة بسرعة مع العديد من إمكانيات مثل اقتراح النص مترجم بحسب الرائج في سائر البرامج أو عبر أدوات الترجمة الآلية مثل مترجم جوجل (النسخة المدفوعة). اقرأ أيضًا لوحة التحكم في دروبال Drupal 9 كيفية استخدام دروبال كمنصة تدوين متكاملة وحدات دروبال المهمة لغير المبرمجين
  2. يعد دروبال أحد أشهر ثلاثة أنظمة إدارة محتوى، ويتميز بمرونته العالية وقابليته الفائقة للتطويع وذلك بناءً على سببين أساسيين هما: أولًا هيكلية حفظ ومعالجة البيانات المنطقية واستقلاله عن شكل عرض المحتوى؛ وثانيًا آلاف الوحدات البرمجية التي يمكن إضافتها لمنح دروبال خصائص ووظائف جديدة. إنطلاقًا من السبب الثاني أي زيادة وظائف دروبال، لعل أول ما يعمد إليه المطورون بعد تثبيت دروبال هو تثبيت وتفعيل مجموعة الوحدات المتناسبة مع منطق العمل وحاجة المشروع؛ وقد يكون من أهم الفروق الجوهرية بين المبتدئين والمحترفين من بناة المواقع بنظام دروبال هو الاختيار الحكيم لمجموعة من الوحدات الضرورية ذات الوظائف العامة دون ازدحام نظام دروبال بالعديد من الوحدات ذات الوظائف القليلة أو المعالجة غير القياسية للبيانات. يمكن تصنيف الوحدات في نظام دروبال إلى ثلاثة أنواع هي: وحدات دروبال الأساسية: هي الوحدات المثبتة افتراضيًا مع تثبيت دروبال، لكن تفعيلها أمر اختياري مثل الوحدات المعنية بالترجمة والمستخدمة كثيرًا في المواقع ثنائية اللغة أو متعددة اللغات؛ تصنف هذه المجموعات لوحدات النواة ومجموعات أخرى مثل تصنيف وحدات أنواع الحقول أو تصنيف وحدات تعدد اللغات؛ في العديد من الأمثلة نقلت وحدات مجتمع المصادر الحرة الشهيرة لوحدات دروبال الأساسية ثم نقلت لوحدات النواة، فمثلًا في دروبال 9 يذكر عن وحدة Entity أنها ستنقل لاحقًا لوحدات النواة. بحسب مشروعك، انظر أولًا لوحدات النواة قبل البحث في وحدات مشاركات مجتمع المصادر المفتوحة، الكثير من الوظائف العامة متاحة ضمن أحد وحدات دروبال الأساسية. وحدات مشاركة مجتمع المصادر الحرة: بحسب موقع دروبال الرسمي، وفّر مجتمع المصادر المفتوحة قائمة تحوي 48,555 وحدة لدروبال؛ 8,183 وحدة منها مشاريع كاملة تعمل على دروبال 9؛ إضافة لهذه القائمة يوجد الكثير من الوحدات الخاصة بدروبال في مستودعات خاصة ومتاحة مثل GitHub؛ تأكد قبل التخطيط لبرمجة وحدة خاصة أن تقوم بدراسة وحدات مجتمع المصادر الحرة الشبيهة بمنطق عمل مشروعك فغالبًا ما ستجد وحدة تؤدي نفس الوظيفة. وحدات خاصة: هي الوحدات التي ينشئها صاحب المشروع لأداء وظيفة خاصة به دون أن ينشرها في وحدات مشاركة مجتمع المصادر الحرة. القائمة التالية بعض الوحدات المهمة والشائعة الاستخدام، إضافتها لدروبال ستتيح تجربة مختلفة. وحدة Admin Toolbar في لوحة تحكم دروبال الافتراضية، يجب على مدير الموقع حتى وصوله لصفحة التحكم المنشودة العبور على عدد من الصفحات التي تحوي كل منها قائمة بصفحات كثيرة، توفر وحدة Admin Toolbar هذا العناء بإنشاء قائمة منسدلة توفر وصولًا سريعًا لجميع صفحات الإدارة. حين كتابة المقال يستخدم هذه الوحدة 239,214 موقع ويمكن تثبيت الوحدة بالأمر: composer require 'drupal/admin_toolbar' وحدة token منذ أن تعرفت البشرية على التفكير التجريدي وعجلة التقدم تتحرك بدءًا بنشوء اللغات وحروف الكتابة وصولًا لمفاهيم الرياضيات والفيزياء القائمة على تجريد الأشياء من ذاتها وتحويلها لقواعد ومعادلات تستقي بياناتها من متغيرات لها مجرد اسم. وظيفة وحدة token تقديم عجلة التقدم القائم على التفكير التجريدي لموقعك عبر زيادة عدد أسماء المتغيرات المتاحة، وإضافة واجهة مستخدم لاستعراض هذه المتغيرات. كمثال، لنفترض أن منطق عمل المشروع يتطلب وضع عنوان البريد الإلكتروني لمستخدم افتراضيًا في خانة بيانات، توفر وحدة token اسم المتغير "عنوان البريد الإلكتروني" وتجعله قابلًا للتحكم والإدراج في أجزاء أخرى من الموقع باستخدام اسم متغير مثل [user:original:mail]. حين كتابة المقال يستخدم هذه الوحدة 686,824 موقع ويمكن تثبيت الوحدة بالأمر: composer require 'drupal/token' وحدة Pathauto على الرغم من تجريد أنظمة الحاسوب وقواعد البيانات للأشياء (ومنها أنواع المحتوى) من التسميات المفهومة وذوات المعاني عند البشر لتصير مجرد أرقام ورموز، لا يزال دروبال يتيح تخصيص أسماء مفهومة لكل محتوى على الرغم من تعامله داخليًا بالأرقام والرموز للوصول لكل المحتوى. فمثلًا حين تنشئ أول صفحة ينشئ لها دروبال افتراضيًا الرقم واحد ويصير الوصول إليه عبر المسار: node/1 لكن يمكنك اختيار مسار بديل له يدويًا من إعدادات إنشاء صفحة ليصير له مثلاً مسار صفحة "من نحن" أو about. تتيح وحدة Pathauto اختيار نمط للمسارات البديلة، مثل أن استبدال كلمة node في مسار المحتويات من نوع مقال بكلمة article. حين كتابة المقال يستخدم هذه الوحدة 601,894 موقع ويمكن تثبيت الوحدة بالأمر: composer require 'drupal/pathauto' وحدة Webform لعل أهم علامة فارقة وفرته التقنيات الرقمية هو جمع، معالجة، حفظ واسترجاع البيانات والذي نتج عنه كل ما نراه من تغيير في كافة مجالات الحياة ولضرورته نشأت عدة تخصصات معنية بهذه البيانات، وليس جزافًا أن يدعى أن أهم ما تملكه أي منشأة اليوم هو البيانات. توفر وحدة Webform حزمة كاملة لبناء الاستمارات والاستبيانات القادرة على جمع أي نوع من البيانات بأشكال مختلفة، كما تقدم عدة أدوات لمعالجة هذه البيانات وحفظها. فإن كنت تريد قياس رضا المستهلكين عن سلعة أو قياس أي سلوك اجتماعي، فستكون هذه الحزمة الخيار الأمثل. حين كتابة المقال يستخدم هذه الوحدة 426,548 موقع ويمكن تثبيت الوحدة بالأمر: composer require 'drupal/webform' وحدة Field Group إن كثرة البيانات وتشتتها وعرضها للمستخدمين بكثافة هو معضلة لمسها كل من يتعامل مع المواقع المختلفة، ولعل تزاحم البيانات هذه تؤدي لهروب المستخدمين لمواقع منافسة أقل تعقيدًا أو انصرافهم من إتمام العملية المرجوة في الموقع سواء كانت عملية بيع أو عملية جمع بيانات عبر استمارة؛ توفر وحدة Field Group القدرة على تصنيف الحقول لمجموعات مما يظهرها مرتبة وكأنها أقل عددًا وهو ما يساهم في خفض التكلفة المعرفية وعناء التفكير لدى المستخدم. مجموعات الحقول قد تكون بشكل ألسنة تبويب أو بشكل مراحل أو حتى وضع بعض الحقول ضمن تصنيف "المزيد". حين كتابة المقال يستخدم هذه الوحدة 327,750 موقع ويمكن تثبيت الوحدة بالأمر: composer require 'drupal/field_group' وحدة Paragraphs يعرف بناة المواقع ومستخدمو دروبال افتراضيًا حقل المتن الموجود في نوع المحتوى "صفحة أساسية" و "مقال" والذي يوضع ضمنه كل محتوى المتن كنصوص أو في أفضل الحالات كنص HTML بما في ذلك روابط الوسائط المتعددة من صور وفيديو، وعلى الرغم من أن هذه الطريقة لبت حاجات المواقع لسنوات، إلّا أنها تعاني من قصور متعدد الأوجه مثل ضرورة تمكن محرر النص من قواعد HTML و اضطراره لتكرار الأنماط ذاتها في كل مرة. من رحم الحاجة لأداة توفر قوالب مرنة يمكن استخدامها مرارًا دون الحاجة لوضع نصوص HTML وتوفر في الوقت ذاته هوية بصرية واحدة للموقع، ولدت وحدة Paragraphs، حيث يمكن بناء مكتبة من القوالب التي يمكن استخدام أي واحد منها عوضًا عن نص المتن الافتراضي في دروبال. حين كتابة المقال يستخدم هذه الوحدة 199,783 موقع ويمكن تثبيت الوحدة بالأمر: composer require 'drupal/paragraphs' وحدة Layout Builder على الرغم من أن عرض حقول أي نوع من المحتوى عموديًا في الصفحة قد يبدو منطقيًا، بل هو ما اعتاد عليه بناة المواقع في دروبال منذ الإصدارات الأولى، إلا أن تصميم تجربة المستخدم تفرض في الكثير من الأحيان أنماطًا أخرى مثل تعدد الأعمدة في الصفحة أو عرض العناصر العامة في دروبال والتي لا تنتمي لصفحة المحتوى الحالي مثل عرض أحد المجموعات Block في جانب من الصفحة. تعد وحدة Layout Builder أداة مناسبة لتخطيط الصفحات سواء كانت صفحة مفردة أو مخططًا معتمدًا لنوع من المحتوى وتعتمد آلية السحب والإفلات في وضع كل عنصر في موضعه من الصفحة، مما يجعله أبسط آلية ممكنة للتحكم بالمظهر، مع إمكانية الاستفادة من كل قدرات CSS في إعداد المظهر. هذه الوحدة من وحدات نواة دروبال ولا تحتاج لخطوات تثبيت، يكفي فقط تفعيلها من صفحة الوحدات. وحدة recaptcha منذ النصف الثاني من تسعينات القرن المنصرم انتشرت مجموعة من التقنيات والبرامج الجديدة حينها تسمح للمستخدم بالتعبير عن نفسه وإضافة قيمة لتلك البرامج المعتمدة على المتصفح غالبًا مثل المنتديات وهو ما أدى نهايةً لتغيير سلوك الإنترنت برمته ونتج عنه الإصدار الجديد وهو ويب 2.0؛ ظهر مع هذه التغييرات برامج الأتمتة أو الروبوتات التي تنشر الدعايات بخلاف رغبة أصحاب المواقع وهي الحاجة التي بررت ظهور برمجيات التعرف على المستخدم الحقيقي والسماح له بالتعامل مع الموقع ولعل أحد أشهرها اليوم برمجية recaptcha المدعومة من جوجل والمتاحة لأصحاب المواقع، الوحدة recaptcha توفر عملية الربط بين الخدمة المقدمة من جوجل ونظام دروبال. حين كتابة المقال يستخدم هذه الوحدة 172,971 موقع ويمكن تثبيت الوحدة بالأمر: composer require 'drupal/recaptcha' خاتمة على الرغم من أن دروبال لوحده ودون أي وحدات إضافية يقدم كل ما يلزم لبناء موقع متميز، إلا أن المئات من الوحدات المتوفرة مجانًا على موقع دروبال الرسمي تضاعف المهام التي يقوم بها وتصل به لمستويات متقدمة، ولهذا تقوم عليه الكثير من المشاريع الكبرى عالميًا. يستعرض الكثير من محترفي بناء المواقع دوريًا الوحدات المنشورة في موقع دروبال لاقتباس الأفكار وكيفية تطبيقها لمشاريعهم الخاصة. اقرأ أيضًا بناء استبيان في دروبال باستخدام وحدة webform إنشاء متجر إلكتروني في دروبال باستخدام وحدة commerce القوالب Themes في دروبال 9 Drupal
  3. لم يعد خافيًا على أحد أهمية جمع البيانات من زوار أي موقع، إما لأنها خدمة قائمة بذاتها مثل استبيانات تشخيص الذكاء، أو ﻷنها تتيح لصاحب المشروع معرفة مكامن الضعف والقوة في منتجه، أو لعمليات قياس الرأي العام في موضوع ما. تقدم وحدة webform باقة متكاملة لعمليات جمع البيانات بأشكال مختلفة وهو ما يعني بناء الاستمارات، كما يمكنه تقديم حلول حسابية على تلك البيانات وهو ما يوفر إمكانية تحويل الاستمارة إلى استبيان كامل. قبل استعراض وحدة webform يجب الانتباه إلى أن الإعداد السليم لأي استمارة أو استبيان يجب أن يكون مدعومًا بدراسة منطق العمل والهدف من الاستمارة/الاستبيان، وهذا علم يدرس باستفاضة في تخصص ماجستير القياس النفسي، لكن تنتشر تطبيقاته في الكثير من تطبيقات جمع البيانات. تثبيت وحدة webform من سطر الأوامر في مجلد موقع دروبال اكتب التالي (أو أي إصدار أحدث): composer require 'drupal/webform:^6.1' ستثبّت وحدة webform الإصدار 6.1. تفعيل وحدة webform: من قائمة الوحدات، يُظهر البحث عن كلمة webform أربع تصنيفات رئيسية هي: Webform و Webform Demo و Webform example و Webform [DEPRECATED] تحوي معًا 36 وحدة فرعية، لكن الوحدات الموجودة ضمن التصنيف الأول أي Webform هي التي تستخدم في المشاريع، إذ أن الموجودة في التصنيفين الآخرين أمثلة للاستخدام، أو وحدات ملغاة لا يوصى باستخدامها بسبب توقف تطوير البنية التحتية البرمجية التي تقوم هي عليها، أو انتقال وظائفها لوحدات أخرى في التصنيف الأول. يحوي التصنيف الأول 21 وحدة فرعية يؤدي كل واحدٍ منها مجموعة وظائف، بمعنى أن لدينا مكتبة ضخمة تحوي كل ما نحتاج إليه في مجال معالجة الاستبيانات. admin/modules ليس من الضروري تفعيل كل الوحدات فمنطق العمل يحدد الوحدات اللازم تفعيلها، عمومًا يمكن تصنيف هذه الوحدات إلى مجموعتين: مجموعة ذاتية العمل وهي الوحدات التي تعمل باستقلالية ضمن بيئة عمل webform (سنستعرض أهمها في هذا المقال، حاليًا فعّل فقط وحدة webform)، ومجموعة التكامل مع سائر الوحدات أو بيئات العمل (مجموعة وحدات) وأهمها: Webform Bootstrap: وتعد أحد أشهر أنظمة القوالب وتضم مكتبة ضخمة من أنماط المظهر الجاهزة، تتيح هذه الوحدة دمج webform مع نظام القالب Bootstrap. Webform Devel: لعل وحدة Devel أهم وحدة يستخدمها مطورو Drupal إذ تتيح لهم مجموعة وظائف مثل استعراض المتغيرات قبل خروج النتيجة النهائية للمستخدم، تتيح هذه الوحدة التكامل مع هذه الوحدة وعليه فهي لا تهم معدي المواقع الغير معنيين بتطوير الواجهة الخلفية. Webform Group: تتيح وحدة Group إنشاء مجموعات تتكون كل مجموعة من أي نوع من المحتوى أو أعضاء الموقع مع مجموعة من خيارات الصلاحيات للأعضاء للوصول و التحكم بالمجموعات، ومثالًا على ذلك تصور أن المشروع عبارة عن منصة تقديم دروس وكل درس يحوي عدة حلقات قد يضاف لها حلقات أخرى بمرور الزمن، للمستخدم شراء أي درس بكل ما فيه من حلقات أو التي تضاف إليه لاحقًا، لتطبيق هذا المثال يمكن للمستخدم شراء اشتراك في "مجموعة درس" باستخدام وحدة commerce، وتتيح وحدة Webform Group إمكانية إنشاء امتحانات في "مجموعة الدرس" فقط أي لا يمكن للمستخدم الوصول لامتحانات الدروس الأخرى. وحدة webform بعد تفعيل وحدة webform ستظهر في القائمة الهيكلية لوحة تحكم الوحدة، ويمكن الوصول لها عبر المسار التالي أيضًا: admin/structure/webform إفتراضيًا، يوجد مع الوحدة استمارة "تواصل معنا" Contact وتحوي التبويبات التالية: عرض: وهي الشكل النهائي الذي يظهر للمستخدم، ويمكن الوصول إليه عبر المسار: form/contact الاختبار: فحص شكل الاستمارة فقط. النتائج Results: جميع النتائج التي يرسلها المستخدمون، يمكن استعراضها والتحكم بها أو تحميلها من هذا التبويب. بناء Build: يستخدم هذا التبويب لبناء استمارة أو استبيان، وبما أن وحدة webform UI غير مفعلة فإن محتوى هذا التبويب لا يحوي غير صندوق نص فيه شيفرة YAML لبناء الاستمارة. الإعدادات: مراجعة إعدادات الاستمارة أو الاستمارة، سنستعرضه جزءًا منه لاحقًا. تصدير: لتصدير شيفرة YAML للاستمارة كاملة بما في ذلك الإعدادات لاستخدامها في مواقع ومشاريع أخرى مثلًا. بناء استمارة بوحدة Webform UI على الرغم من أن شيفرات YAML كافية لبناء استمارة، إلا أنها ليست الطريقة الأمثل لدى أغلب المستخدمين. طُوِرَت وحدة Webform UI لتوفر واجهة مستخدم لهذه المهمة، إذ توفر الكثير من الوحدات الفرعية افتراضيًا مع حزمة Webform مهام إضافية مثل هذه المهمة. لتفعيل الواجهة من قائمة الوحدات فعّل الوحدة Webform UI. admin/modules بعد تفعيل الوحدة Webform UI اتجه للاستمارة "تواصل معنا" الموجودة افتراضيًا مع الحزمة، اتجه لتبويب Build من واجهة المستخدم أو عبر المسار: admin/structure/webform/manage/contact ستظهر واجهة مستخدم للاستمارة تحوي كل أجزاء الاستمارة (الاسم، البريد الإلكتروني، الموضوع، الرسالة)، لكن في حال استخدامك للغة العربية عند تصفح لوحة التحكم ستلاحظ عدم وجود زر لإضافة عنصر جديد، يعود هذا إلى أن الاستمارة مصممة باللغة الإنجليزية دون تفعيل إمكانية ترجمة المحتوى، لتفعيل هذه الوظيفة، فعّل وحدة content translation وستتيح إمكانية إضافة عناصر جديدة للاستمارة حتى إن كانت بلغة مختلفة. لتصميم استمارة أو استبيان جديد، من القائمة الهيكلية ثم webform ثم الاستمارات ثم اختر Add webform أو اتجه للمسار: admin/structure/webform/add ستظهر نافذة منبثقة لإدخال بيانات الاستبيان الجديد. وبافتراض أن المشروع يتطلب بناء استبيان لقياس الرضا عن منتج ما، ليكن اسم الاستبيان "الرضى عن منتج" ومفتاحه بالانجليزية satisfaction. بعد حفظ صفحة إنشاء استمارة جديدة، سيتجه بك الموقع مباشرة لصفحة بناء الاستمارة، إذ يمكن عبرها إضافة عناصر الاستمارة أو صفحات لها (في حال كانت في صفحات متعددة) وكذلك التنسيق. عبر اختيار Add element ستظهر نافذة منبثقة يمكن من خلالها إضافة عنصر للاستبيان، وتحوي 72 نوع من العناصر ويمكن إضافة المزيد من أنواع العناصر في حال توفر وحدات برمجية خاصة بها، تمامًا مثل إضافة أي وحدة أخرى. admin/structure/webform/manage/satisfaction/element/add كتطبيق لمثال استبيان الرضا عن منتج، لنفرض أن دراسة بناء استبيان قياس الرضا عن المنتجات توصلت إلى أن ثلاثة عوامل هي المحددة للرضا عن المنتجات وهي: جودة الصناعة والميزات والسعر المناسب، لعل نوع العنصر ليكرت Likert سيكون مناسبًا لجمع البيانات حول الرضا عن المنتج. admin/structure/webform/manage/satisfaction/element/add/webform_likert يستخدم مقياس ليكرت عادة في الاختبارات النفسية عمومًا لقياس الردود الدالة على درجة الموافقة أو الاعتراض على صيغة ما، وعليه فهو يتكون من مجموعة أسئلة يسمى كل واحد منها "جذع"، ومجموعة خيارات تتدرج من الموافقة الكاملة إلى الإعتراض الكامل يسمى "السلم"، وعلى الرغم من أن السلم الخماسي هو الأكثر استخدامًا في عمليات الإحصاء والقياس النفسي، سنعتمد في المثال السلم الثلاثي. فليكن عنوان العنصر "الرضا عن منتج" ومفتاحه product_satisfaction، وفي جدول الأسئلة ليكن في خانات قيمة الأسئلة Question value القيم q1 و q2 و q3، ولنص كل سؤال بنفس الترتيب "هل أنت راضٍ عن جودة الصناعة؟" و"هل أنت راضٍ عن المميزات؟" و"هل السعر يتناسب مع المنتج؟". في جدول الإجابات، ليكن في خانات قيمة الإجابات Answer value الأعداد 1 و 0 و -1 يقابلها في خانات نص الجواب Answer text العبارات "راض" و "محايد" و "غير راض". احفظ صفحة العنصر ثم توجه لصفحة عرض الاستبيان. form/satisfaction إدارة النتائج من التبويب results أو المسار أدناه يمكن إدارة النتائج المرسلة عبر الاستبيان للوحة تحكم webform. admin/structure/webform/manage/satisfaction/results/submissions تنقسم إدارة النتائج لثلاثة تبويبات فرعية تشمل إدارة المرسلات Submissions، ويمكن منها القيام بعمليات منفردة على كل إجابة مرسلة مثل عرضها أو حذفها أو تحريرها، أما تبويب التحميل ويتيح تحميل النتائج بصيغ مختلفة مثل صيغة ملفات النص المحدد CSV القابل للتحرير بتطبيقات جداول البيانات مثل برنامج مايكروسوفت إكسل أو ليبر أوفيس كالك، أما التبويب الثالث يتيح حذف كل النتائج المرسلة. عمليات التفسير والاستنتاج كما ذكر في المقدمة، الفرق بين الاستمارة والاستبيان هو أن الثاني يقدم تفسيرًا ومعطيات جديدة بناءً على البيانات المدخلة، وللمحاسبة ثلاث طرق رائجة كالتالي: 1. طريقة إضافة عنصر Computed Twig إضافة لإعدادات العناصر العامة مثل العنوان والمفتاح، يتميز هذا العنصر بوظيفة إدخال أوامر Twig، وهو المحرك الافتراضي للتحكم بالمظهر في إطار العمل Symfony الذي تم تصميم دروبال عليه. لاستخدام هذه الطريقة أضف عنصر Computed Twig وليكن اسمه "نتيجة الرضا عن المنتج" و مفتاحه satisfaction_result. بفرض أن نتيجة الاستبيان هي الجمع الجبري للخيارات المدخلة، ضع في خانة Computed value/markup الأمر أدناه: {{ data.product_satisfaction.q1 + data.product_satisfaction.q2 + data.product_satisfaction.q3 }} من الواضح في الأمر أعلاه أن الوصول للبيانات بصورتها الأولية ممكنة عبر المسمى data ثم مفتاح العنصر وهو في مثالنا product_satisfaction ثم مفتاح كل سؤال مثل q1 و q2 و q3. فعل الخيار Automatically update the computed value using Ajax ليتم تحديث نتيجة الاستبيان مع كل تغيير يقوم به المستخدم والخيار Store value in the database ليتم حفظ القيمة النهائية للمحاسبة من الاستبيان في قاعدة البيانات. احفظ العنصر ثم احفظ تحديث العناصر في صفحة الاستبيان ثم استعرض صفحة الاستبيان. form/satisfaction 2. طريقة عرض التفسير في رسالة التأكيد من التبويب الإعدادات اختر Confirmation ثم ضع عنوانًا لصفحة رسالة التأكيد في الخانة Confirmation title وليكن "تفسير استبيان الرضا عن المنتج". [webform_submission:values:satisfaction_result] ستظهر ذات النتيجة في صفحة رسالة التأكيد، ويمكن إخفاء العنصر وحذف خيار Automatically update the computed value using Ajax من إعدادات العنصر، إذ تستهلك Ajax موارد الموقع. 3. طريقة استخدام ملفات Twig مباشرة ضمن إعدادات القالب الطريقة الثالثة هي استخدام ملفات Twig مباشرة ضمن إعدادات القالب، وهي طريقة مرنة جدًا لعرض نتائج الاستبيان تتيح إمكانيات لامتناهية مثل عرض الرسوم البيانية من نتيجة الاستبيان، وتقديم تفاصيل ضمن أوامر برمجية تتضمن الشروط، لكنها تتطلب معرفة أعمق بـ Twig. خاتمة وحدة webform تتشكل من حزمة متكاملة من الوحدات الفرعية وعناصر مختلفة تتيح بناء تشكيلة واسعة من الاستمارات والاستبيانات مع إمكانيات متعددة مثل محاسبة تفسيرها، وعليه فهي من أنسب الأدوات لجمع البيانات. اقرأ أيضًا إنشاء متجر إلكتروني في دروبال باستخدام وحدة commerce كيفية استخدام دروبال كمنصة تدوين متكاملة
  4. يعد دروبال أحد أشهر ثلاثة أنظمة إدارة محتوى، ويتميز بمرونته العالية وقابليته الفائقة للتطويع وهو ما يجعله الخيار الأنسب للمشاريع المتوسطة والكبيرة. تفرض هاتين الميزتين وجود التفاصيل الدقيقة والخيارات الكثيرة التي يتطلب إعدادها تخصيص وقت أطول للتعلم لقطف ثمرة إنتاجية أعلى وأكثر جودة. عمليات وخيارات التجارة الإلكترونية لها نفس الميزات العامة لدروبال، أي المرونة العالية والقابلية للتطويع، ليناسب كافة اﻻحتياجات والمشاريع، وعلى الرغم من وجود الكثير من الوحدات Module الخاصة بالتجارة الإلكترونية، تعد وحدة commerce هي الأشهر والأكثر استخدامًا في العالم (نحو 52,000 متجر إلكتروني قائم عليه عام 2022). متطلبات وملاحظات حول الدرس معرفة عامة بنظام إدارة المحتوى دروبال ونسخة مثبتة من دروبال 9. خادم محلي أو على الإنترنت بصلاحية SSH لتشغيل برنامج Composer. برنامج Composer لإدارة الحزم. الصور التوضيحية ناتجة بعد تثبيت وتفعيل وحدات يُوصى باستخدامها مثل Admin Toolbar، إذا لم تكن تستخدم هذه الوحدة يمكنك اتباع مسار الوصول URL وستكون بطريقة اقتباس يبدأ بعد عنوان موقعك وسابقة اللغة، أي العبارة التالية للوصول لصفحة التحكم بالعملات: admin/commerce/config/currencies وذلك عوضًا عن: http://127.0.0.1/your_site/web/ar/admin/commerce/config/currencies سيحوي كل عنوان جزءًا نظريًا يناقش عدة أفكار تطبيقية في ذلك الجزء، ثم خطوات تنفيذية لمهمة في ذلك الجزء. هيكل التجارة الإلكترونية في وحدة commerce لا يُقصد بالمتجر في وحدة commerce المعنى التقليدي للمتاجر، بل يشمل كل منشأة تمارس نشاطًا اقتصاديًا، سواء كان ذلك جمعية خيرية تستلم التبرعات أو فندقًا يمكن عبر موقعه حجز مواعيد وتحديد مدة الإقامة، أو موقعًا يقدم اشتراكًا مدفوعًا مقيدًا بمدة زمنية للوصول لبعض الموارد. إضافة لتلك التي تقدم خدمات مثل الاستشارات أو السلع، سواء كانت ملفًا إلكترونيًا، أو بضاعة تُرسل للعميل عبر الشحن. تتكون وحدة commerce من عدة وحدات فرعية يقوم كل واحد منها بمهمة محددة بدقة، ويمكن إضافة المزيد من الوحدات أو إنشاء أخرى جديدة بحسب متطلبات النشاط الاقتصادي، يجب التأكد دائمًا من فهم منطق العمل وما توفره وحدة commerce لإختيار الأسلوب والطريقة المثلى لإنجاز المهمة، إهمال التخطيط الدقيق للمهمة قد يسبب الكثير من التبعات المكلفة لصاحب المشروع. الصورة أدناه هي رسم توضيحي لهيكل منشأة تجارية بسيطة بوحدة commerce والتي تحوي افتراضيًا وحدات معنية بإدارة المتاجر والأموال والبضائع والطلبات، لكن قد يفرض منطق العمل توسعته بإضافة وحدات إضافية مثل وحدة إدارة المخازن commerce_stock أو وحدة الشحن commerce_shipping. تثبيت وحدة commerce من سطر الأوامر في مجلد موقع دروبال اكتب التالي (بحسب الإصدار الأحدث المتوفر): composer require 'drupal/commerce:^2.30' سيتم تثبيت وحدة commerce الإصدار 2.30، ستشاهد صورة مثل التالي: في حال مواجهة خطأ نقص الوحدة inlineentityform، ثبّت الوحدة بالأمر: composer require drupal/inline_entity_form:^1.0@RC' نفعّل وحدة commerce من قائمة الوحدات، يُظهر البحث عن كلمة commerce الوحدات المثبتة وهي 13 وحدة. admin/modules ليس من الضروري تفعيل كل الوحدات فمنطق العمل يحدد الوحدات اللازم تفعيلها لأغراض تعليمية، أقترح تفعيل وتجربة كل الوحدات. بعد إتمام عملية التفعيل، ستظهر لك قائمة جديدة لإعدادات التجارة الإلكترونية، مثل هذه: إنشاء المتاجر الإلكترونية المتاجر أنواع، ونوع المتجر يحدد سلوك المتجر وخصائصه، فمثلًا لا يُتصور أن يبيع ويشحن متجر ما (مطعم) طعامًا لبلد آخر كما أن نوع الفاتورة التي تستخدمها المتاجر من نوعية (المطاعم) تحوي بيانات (مثل طاولة الخدمة) غير مناسبة لسائر أنواع المتاجر (مثل المتاجر التي تعرض سلع رقمية فقط). يحوي commerce افتراضيًا متجرًا من نوع online دون تفاصيل منطق العمل. يجب توفير متجر واحد على الأقل لإنشاء بقية أجزاء النشاط الاقتصادي (إضافة منتج، أو إنشاء فاتورة، وغير ذلك)، لكن في الكثير من الأنشطة الاقتصادية يجب إضافة أكثر من متجر، مثل الأمثلة التالية: المشروع عبارة عن موقع لمجمع تجاري يضم عددًا من المتاجر المختلفة والتي تعرض أنواعًا مختلفة من السلع والخدمات، وليس بين مالكيها أي علاقة. المشروع عبارة عن نشاط تجاري له أكثر من فرع، ويقدم كل فرع خدماته لمنطقة معينة فقط، مثل مطعم له فرع في مدينة الرياض وفرع آخر في مدينة الدمام. إنشاء متجر لإنشاء متجر من نوعية المتاجر الموجودة مسبقًا في دروبال online يمكن اختيار المسار: store/add/online يحوي كل متجر من نوع online الموجود افتراضيًا في دروبال البيانات التالية: الاسم: اسم المتجر. البريد الإلكتروني: ستصل رسالة بريدية لصاحب المتجر في حال نشوء عملية شراء من متجره. العملة الافتراضية: العملة (العملات) التي يمكن للمتجر التعامل بها، افتراضيًا تتواجد عملة الدولار الأمريكي ويمكن إضافة المزيد من العملات. العنوان: تفرض الكثير من التشريعات وجود عنوان مُعلن للمتاجر الالكترونية، يتواجد في وحدة commerce نمط من العنوان الإلكتروني يضم البلد والمدينة والشارع. البلدان التي يقدم المتجر لها الخدمة Supported countries: يمكن اختيار جميع البلاد أو الاكتفاء ببعض البلاد دون غيرها، من تطبيقات هذا الخيار تحديد متاجر تقدم أسعارًا تفضيلية لبعض البلدان دون غيرها، أو حرمان بلاد أخرى من الخدمات. إعدادات الضرائب Tax settings: يمكن إنشاء البضاعة مع تكلفة الضرائب أو دون ذلك، وتحسب وحدة commerce الضريبة بحسب إعدادات مقدار الضريبة في كل بلد. يمكن التحكم في إعدادات الضرائب من الوحدة المعنية بالضرائب. يمكن الاطلاع على قائمة حقول بيانات المتجر من إعدادات نوع المتجر online من المسار: admin/commerce/config/store-types/online/edit/form-display إنشاء عملة تحتوي وحدة commerce افتراضيًا عملة الدولار الامريكي، لكن يمكن إضافة المزيد من العملات الرسمية مثل الريال السعودي أو الدينار البحريني، وغير الرسمية مثل العملات الرقمية أو حتى نظام عملات خاصة بالموقع أو المشروع، مثل نظام النقاط الموجود في الألعاب. يمكن إضافة العملات من المسار: admin/commerce/config/currencies إنشاء نوع متجر يمكن الاطلاع على أنواع المتاجر الموجودة في الموقع من المسار أدناه، ويمكن إضافة المزيد من أنواع المتاجر باختيار "إضافة نوع متجر" Add store type. admin/commerce/config/store-types في حال إضافة نوع متجر، سيٌضاف تلقائيًا حقول البيانات الافتراضية مثل الموجودة في نوع المتجر online ويمكن إضافة المزيد من الحقول بحسب منطق العمل تمامًا مثل إضافة حقول البيانات في أي نوع محتوى آخر. فمثلًا لو أُنشأ نوع متجر باسم مطعم، يمكن وضع حقل "يوفر خدمة توصيل الطلبات". إدارة المنتجات Product بحسب هيكل وحدة commerce تصنف الكيانات (مثل كيان المتجر أو كيان المنتج أو كيان الفاتورة) بأنواع محددة، ويحدد كل صنف صفات وسلوك كل عضو من هذا الصنف. مثلًا منتج "كتاب القانون في الطب" تقع ضمن صنف منتجات "كتاب"، ويحوي صنف المنتج "كتاب" مجموعة صفات تخص هذا الصنف مثل "عدد الأوراق" و "اسم دار النشر" و"الرقم الدولي المعياري للكتاب" المعروف اختصارًا باسم "ردمك". من الطبيعي أن أصنافًا أخرى من المنتجات تضم صفات وسلوكيات مختلفة قد تكون مشتركة بين العديد من الأصناف مثل "الوزن" وقد تكون مختصة بصنف دون غيره مثل صفات الكتاب أعلاه. افتراضيًا تضم وحدة commerce نوع منتج باسم "default"، يمكن الإطلاع على أنواع المنتجات، وإضافة نوع منتج إليها أو تحرير أحدها من المسار: admin/commerce/config/product-types تأكد من دراسة المشروع وفهم منطق العمل بدقة، فالتصميم الحكيم لصفات وسلوكيات أنواع المنتجات هو الأساس الذي يعمل به دروبال في إدارة العمليات، فمثلًا قد تحتاج لصفة "الوزن" لمحاسبة تكلفة الشحن البريدي لاحقًا. إنشاء منتج يمكن إنشاء منتج جديد من صفحة المنتجات في المسار التالي باختيار "Add product": admin/commerce/products كما يمكن الوصول مباشرة لصفحة إضافة منتج من نوع ما، فمثلًا لإضافة منتج من نوع default يمكن اختيار المسار: product/add/default ستكون في صفحة إضافة منتج من نوع default الحقول المعرفة لهذا النوع (العنوان والمتن)، إضافة لحقول دروبال العامة لكل نوع من المحتوى مثل لغة المحتوى وإعدادات المسار، ويمكن "حفظ" المنتج وإضافة أنواع المنتجات إليه لاحقًا، أو البدء بإضافة نوع إليه مباشرة عبر "Save and add variations". من الطبيعي أن إعدادات دروبال العامة تؤثر في الحقول التي تظهر حين إضافة المنتج، فمثلًا حقل اختيار اللغة متأثر بإعدادات الترجمة في إعدادات دروبال. /product/1/variations تحتوي وحدة commerce افتراضيًا صفة نوع باسم default أيضًا، يمكن إضافته لمنتج من المسار أدناه أو اختيار "Add variation". product/1/variations/add/default يظهر من صفحة إضافة صفة نوع default الحد الأدنى من البيانات اللازمة لإضافة صفة نوع المنتج، وهي: وحدة إدارة المخزون أو SKU: وهو معرف فريد لكل صفة نوع من البضائع ويستخدم لإدارة مخزون البضاعة، فمثلًا لو كان لدى متجر قميص أبيض بقياس 20 وآخر بقياس 40 وقميص أصفر بقياس 20 وآخر بقياس 40، فيجب إنشاء أربعة معرفات SKU حتى يتبين الكميات الصحيحة عند إدارة المخزون المتوفر من كل صفة نوع. لا يوجد قاعدة لإنشاء معرفات SKU لكن ينصح أن تكون نصًا يحوي بيانات نوع المنتج وتفاصيل صفة النوع. خيار قائمة الأسعار Provide a list price: يؤدي تفعيل هذا الخيار إلى إمكانية تعيين أكثر من عملة للمنتج، مثل أن تكون الريال السعودي أو الدينار البحريني. السعر: يضم هذا الحقل جزأين: قيمة عددية هي مقدار للسعر وقيمة اسمية وهي عملة السعر. اللغة: من إعدادات دروبال العامة وتحدد إمكانية ظهور هذا النوع في أي من لغات الموقع. بعد "حفظ" هذا النوع من المنتج سيظهر في قائمة أنواع المنتجات، كما أنه في حال عرض صفحة المنتج سيظهر السعر المحدد لهذا النوع (لأن المنتج يحوي صفة نوع واحد فقط) كما سيظهر زر إضافة لسلة المشتريات "Add to cart". لاحظ أنه يمكن الوصول لصفحة المنتج عن طريق مسارين، أحدهما باستخدام الرقم المعرف للمنتج والآخر ما وُضع في بديل المسار، أي: /product/1 /donate كتطبيق وتوسعة لإدارة المنتج، تصور أن المشروع موقع لبيع الكتب، نوع المنتج هو كتاب ولكل كتاب صفتا نوع: رقمي وورقي، والكتاب الورقي يمكن أن يكون له صفتي نوع: بغلاف عادي (ورقي) أو بغلاف صلب (فني أو مُجلد). إنشاء نوع منتج يجب بداية إنشاء نوع منتج باسم "كتاب" يضم البيانات المشتركة بين جميع أنواع هذا المنتج، في المثال أعلاه اسم المؤلف والناشر ونبذة عن الكتاب، بيانات ثابتة لكل منتج، بغض النظر عن صفة نوعه (رقمي أو ورقي). admin/commerce/config/product-types/add سننشئ صفحة لإنتاج نوع البضاعة كالصورة أدناه، وكسائر أنواع المحتوى في دروبال، لكل محتوى اسم بلغة البشر واسم بلغة الحاسوب (يجب ان يكون بحروف انجليزية صغيرة)، لاحظ حقول الأنواع الخاصة بنوع المنتج التي تنشأ حاليًا: الأنواع: في المثال أعلاه، يحتاج المشروع لنوع "كتاب ورقي" و "كتاب رقمي" غير الموجودين بعد، لاحظ أنه حين إنشاء نوع بضاعة، تقترح وحدة commerce إدراج نوع جديد له أو الاختيار من الأنواع الموجودة سابقًا. خيار إمكانية تعدد صفات النوع بالنسبة لنوع المنتج، وهو ما نحتاج إليه نظرًا لأن للكتاب صفتا نوع. بعد حفظ نوع المنتج المنشأ حديثًا، يمكن إضافة حقول المؤلف والناشر من المسار أدناه، كما هو معمول به في دروبال. admin/commerce/config/product-types/book/edit/fields إدارة أنواع المنتج عند إنشاء نوع منتج، يقدم دروبال خيار إنشاء نوع جديد بنفس اسم نوع المنتج (في المثال أعلاه book)، لكن يُقترح تجنب ذلك وإنشاء أنواع المنتج يدويًا لاختيار اسم لا يختلط مع سائر الأسماء. من المسار أدناه، إذهب لصفحة إنشاء نوع منتج. admin/commerce/config/product-variation-types/add من صفحة إنشاء صفة نوع منتج، ليكن اسم صفة النوع للمنتج "كتاب ورقي" والاسم الإنجليزي (للحاسوب) "book_paper". لاحظ خيار نوع الطلبية، إذ حاليًا لا يوجد إلا نوع واحد هو الطلبية الافتراضية، لكن في المثال أعلاه يفرض منطق العمل وجود نوعان من الطلبيات وهي الكتاب الورقي ويضاف فيه عملية شحن، بينما الكتاب الإلكتروني ليس بحاجة لهذا الإجراء. حاليًا ليكن الخيار هو الطلبية الافتراضية. كرر العملية بإنشاء صفة نوع كتاب رقمي "book_digital" لتحصل نهاية على قائمة بها ثلاثة أنواع من السلع، يوصى بالإبقاء على النوع default للاستخدامات العامة. بالرجوع لصفحة تحرير صفة نوع منتج الكتاب، يمكن اختيار صفة النوع "كتاب ورقي" و "كتاب رقمي" لتكون الصفتان متاحتين لنوع المنتج "كتاب". admin/commerce/config/product-types/book/edit كتطبيق عملي، اتجه لصفحة إضافة منتج من المسار: product/add بخلاف المرة الأولى، سيظهر في قائمة أنواع السلع، النوع "كتاب" الذي تم إنشاؤه سابقًا، أنشئ منتجًا من النوع "كتاب" وليكن اسمه "القانون في الطب" مثلًا، ثم اتجه لتبويب صفات الأنواع، سترى صفتي النوعين "كتاب ورقي" و "كتاب رقمي" في قائمة الأنواع، أنشئ منتج من كل صفة نوع كما ذكر أعلاه. اتجه لصفحة استعراض المنتج، ستظهر قائمة يمكن منها اختيار صفة نوع المنتج. أما الاختيار من صفات خاصة متوفرة في نوع ما من المنتج، فهو ما يتم عبر إدارة خصائص المنتج. إدارة خصائص المنتج Product attributes خصائص المنتج هو الخيار الذي يمكن من خلاله تحديد صفات ضمن نوع من السلع، في المثال أعلاه صفة نوع الغلاف ورقي أو رقمي ويمكن أن يكون لون لباس أو مقاس حذاء. لإنشاء خصائص منتج يمكن الإستفادة من المسار: admin/commerce/product-attributes/add في صفحة إضافة خصائص المنتج، ليكن اسم الخاصية "نوع الغلاف" مع مسمى إنجليزي متناسب معه وليكن "book_cover_type". نوع الحقل element type: سيكون شكل الخيار الذي يشاهده المستخدم. أنواع المنتج: من هذا الجزء تحدد الأنواع التي تحوي هذا الخيار (خصائص المنتج). بعد حفظ خاصية المنتج نوع الغلاف يمكن إدخال القيم المعنية وهي غلاف ورقي وغلاف محكم. بالرجوع لصفحة أنواع المنتج، ضاعف صفة النوع نسخة ورقية مع تغير الحقول: العنوان ومعرف SKU والسعر ونوع الغلاف. ومن صفحة استعراض المنتج، يمكن مشاهدة تغيير البيانات (مثلاً السعر) مع تغير صفة نوع المنتج من القائمة، ويمكن نهايةً إضافة المنتج المختار لسلة المشتريات وإكمال عملية الشراء. إدارة بوابات الدفع بوابات الدفع هي الآليات التي يتم عبرها تحويل سعر المنتج لصاحب المتجر وهي: آليات الدفع اليدوي: وتشمل الدفع النقدي عند التسليم أو الصكوك المصرفية التي يستلم صاحب المتجر المبلغ المعين بمراجعة المصرف. آليات الدفع الآلية: وتشمل جميع النظم الآلية للدفع الإلكتروني سواء كانت تعامل آلي مع الخدمات الإلكترونية لمصرف أو ضمن شبكة نقود وطنية (مثل بنفت في البحرين أو سداد في السعودية) أو بوابات دفع مرتبطة بشبكات صرافة دولية أخرى مثل PayPal أو Visa أو Tap أو Gaatee، عدد بوابات الدفع الآلية يتجاوز المئات. نظرًا لاختلاف الرسوم والضرائب وآليات تحويل المبلغ لصاحب المتجر، من الضروري دراسة بوابات الدفع المناسبة للمشروع قبل التعامل مع أي منها. من أشهر بوابات الدفع في دول الخليج العربي والشرق الأوسط: ميسر، بيتابس، هايبر باي، gate-e، تلر، تاب. إنشاء الدفع حين التسليم يمكن الوصول لصفحة إنشاء بوابة دفع من المسار: admin/commerce/config/payment-gateways/add حيث يمكن ملئ بيانات بوابة الدفع تمامًا مثل سائر أنواع المحتوى في دروبال، مع ملاحظة مايلي: خانة الإضافات Plugin: في حال عدم تثبيت وتفعيل إضافات بوابات الدفع الآلية، ستكون بوابة الدفع اليدوية Manual هي الخيار الوحيد المتاح. اسم العرض: يمكن أن يكون "دفع حين التسليم" أو "صك مصرفي" وغير ذلك من الآليات التي يجب على صاحب المتجر التأكد من وصول المبلغ إليه يدويًا، هذا الاسم يعرض لمستخدم الموقع. الشروط: شروط تفعيل بوابة الدفع مثل تحديد بوابة دفع معينة للعملاء في بلد معين، أو تفعيل بوابة دفع إذا تجاوز مبلغ الفاتورة مقدارًا معينًا. احفظ بوابة الدفع اليدوية دون شروط. إنشاء بوابة دفع الكترونية يوجد أكثر من 140 وحدة ربط بوابات الدفع الإلكترونية، على الرغم من أن العديد من المواقع العربية القائمة على دروبال توفر بوابات دفع، لم ينشر مطوروها الوحدة البرمجية الخاصة بربط بوابة الدفع بدروبال في موقع دروبال الرسمي للإستفادة العامة، قد تنشر بوابة تاب الوحدة البرمجية الخاصة بالتعامل مع دروبال حيث تتواجد صفحة الوحدة البرمجية commerce tap. توفر دروبال مجموعة ثرية من إمكانيات الإرتباط عبر API أنظمة الدفع المختلفة. إدارة الطلبات الطلب بمنطق commerce هو الآلية التي تنتظم بها عملية الشراء بدءًا من اختيار العميل للمنتج حتى حصوله عليه، من هذا المنطلق يمكن أن يكون للطلب أكثر من صفة نوع، فمثلًا يمكن أن يحوي نوع الطلب لمطعم يشتري فيه العميل الوجبات مع تحديد طاولة الخدمة أو أن تكون نتيجة عملية الشراء مجرد رقم تفعيل برنامج دون أي بيانات إضافية. في حال وجود منتج مكتمل البيانات أي محدد النوع وبوابة دفع مفعلة، يمكن إضافة المنتج لسلة المشتريات وإكمال عملية الشراء. توفر وحدة commerce إفتراضيًا نموذج سير عملية الطلب بالطريقة الأكثر رواجًا أي: توفير سلة مشتريات يمكن إضافة أي عدد من السلع إليها مع إمكانية تحديد كمية كل منتج وحساب التكلفة النهائية، ثم صفحة إدخال بيانات عنوان الشحن والاستفادة من العروض ثم دفع المبلغ المستحق عبر أي بوابة دفع مفعلة. كمثال، تظهر الصور التالية عملية شراء منتج الكتاب الذي تم إنشائه أعلاه. استعراض الطلبات يمكن الوصول للطلبات المكتملة أو إنشاء عملية طلب يدويًا من المسار: admin/commerce/orders في حال وجود طلب مكتمل يمكن عرضه أو تحريره أو إدارة عمليات الدفع الخاصة به. تحرير الطلبات في حال وجود طلب فعال يمكن الوصول إليه من المسار التالي (بافتراض أن رقم الطلب 1): admin/commerce/orders/1/edit تحتوي صفحة تحرير الطلب إضافة لبيانات عنوان العميل: تحرير أجزاء الطلب: تشمل حذف أجزاء أو إضافة أجزاء أخرى أو تغير كمية وسعر أي واحد منها. تعديلات على الطلب عمومًا Adjustments: مثل إضافة ضريبة أو تحديد خصم خاص. القسائم: يمكن استخدام قسائم العروض في حال وجودها ضمن إعدادات العروض. إدارة المدفوعات تشمل إدارة المدفوعات تأكيد إتمام عملية الدفع (في حال اختيار بوابة دفع يدوية) أو إرجاع المبلغ للعميل بالكامل أو جزئيًا في حال كانت بوابة الدفع يدوية أو إن كانت بوابة الدفع الإلكترونية توفر هذه الإمكانية وكذلك إضافة مدفوع جديد. يمكن الوصول لصفحة إدارة عمليات الدفع من خلال المسار: commerce/orders/1/payments إنشاء طلب يدوي يمكن إنشاء طلب جديد يدويًا لأي عضو مسجل في الموقع، أو إنشاء عضوية جديدة للعميل وإعلامه بإنشاء عضوية له، يمكن الوصول لصفحة إنشاء طلب جديد من المسار: admin/commerce/orders/add وفي حال إنشاء طلب، تنتقل الصفحة مباشرة لصفحة مماثلة لصفحة تحرير الطلب ويمكن من خلاله تنفيذ كل العمليات السابقة مثل تحديد عنوان الشحن وإضافة أجزاء الطلب والتعديلات الخاصة بذلك مثل العروض أو إضافة مبالغ الضرائب. خاتمة وحدة commerce تضم عدة وحدات فرعية وتوفر بيئة عمل متكاملة للتجارة الإلكترونية وهي بالغة المرونة وقابلة للتطويع لتناسب كافة المشاريع بمنطق عمل مختلف، كما يمكن توسعة وظائفه بالعديد من الوحدات الإضافية المتوفرة مجانًا. اقرأ أيضًا تثبيت دروبال Drupal 9 لوحة التحكم في دروبال Drupal 9 كيفية استخدام دروبال كمنصة تدوين متكاملة القوالب Themes في دروبال 9 Drupal
×
×
  • أضف...