دروبال 8: كيفية تغيير عنوان صفحة الاتصال (الوحدة النمطية لنموذج الاتصال)

a.abuzakham

ذكر العديد من المطورين في وكالات دروبال هذه الصعوبة في المنتديات. تمحور نظام قائمة Drupal 7 حول hook_menu () ، والذي وفر ارتباطات بين المسارات ووظائف رد الاتصال (وحدات التحكم) وعمل أيضًا كمكان مركزي لتوفير عناصر القائمة في قوائم مختلفة (غالبًا في قائمة الإدارة) المرتبطة بالمسارات ، وكذلك مثل توفير علامات التبويب وروابط الإجراءات على الصفحات والروابط السياقية لمسارات مختلفة. كما أنها تمكنت من الوصول إلى التحقق ، وتحميل الكيان ، والعديد من الوظائف الأخرى - بالطبع ، هناك الكثير للتعامل مع نظام واحد فقط.

هذا هو السبب في Drupal 8 يتم فصل هذه المجالات من الوظائف الآن إلى أنظمة مختلفة. يتم الآن التعامل مع اقتران المسار بوحدة تحكم ، إلى جانب إلغاء المعلمات وفحص الوصول ، في نظام التوجيه. يعمل هذا النظام كأساس للوصول إلى المسار على موقع دروبال 8. نظام قائمة Drupal 8 هو الآن مجموعة من واجهات برمجة التطبيقات المختلفة لعناصر القائمة المحددة بواسطة الوحدات بالإضافة إلى المهام والإجراءات المحلية والروابط السياقية.

ستجد أدناه خطوتين سهلتين ستسمحان لك بتغيير مسارات نموذج الاتصال:

 

الخطوة 1:

إنشاء وحدة مخصصة. في الوحدة النمطية المخصصة الخاصة بك ، قم بإنشاء فئة جديدة تمد RouteSubscriberBase في ملف src / Routing / RouteSubscriber.php في الوحدة النمطية الخاصة بك لتغيير مسارات نموذج الاتصال.

<؟ php
/ **
 * ملف
 * يحتوي على \ Drupal \ YOUR_CUSTOM_MODULE \ Routing \ RouteSubscriber.
 * /

مساحة الاسم Drupal \ YOUR_CUSTOM_MODULE \ التوجيه ؛

استخدام Drupal \ Core \ Routing \ RouteSubscriberBase ؛
استخدام Symfony \ Component \ Routing \ RouteCollection ؛

/ **
 * يستمع إلى أحداث المسار الديناميكي.
 * /
فئة RouteSubscriber تمد RouteSubscriber {
  / **
   * {inheritdoc}
   * /
  الوظيفة العامة alterRoutes (مجموعة RouteCollection $) {
    إذا ($ route = $ collection-> get ('contact.site_page')) {
      $ route-> setDefault ('_ title'، 'Contact us')؛
    }}
  }}
}} 

 

الخطوة 2:

يجب تسجيل الفصل كخدمة لمشترك الحدث. استخدم ملف YOUR_CUSTOM_MODULE.services.yml في وحدتك.

خدمات:
  YOUR_CUSTOM_MODULE.route_subscriber:
    الفئة: Drupal \ YOUR_CUSTOM_MODULE \ Routing \ RouteSubscriber
    العلامات:
      - {الاسم: event_subscriber} 

 

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