ذكر العديد من المطورين في وكالات دروبال هذه الصعوبة في المنتديات. تمحور نظام قائمة 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}
هذا هو الأساس. إذا كان لديك أي مخاوف أو صعوبات في تطبيق توصياتنا على موقع الويب الخاص بك ، فأخبرنا بذلك ، وسنكون سعداء لتزويدك برد فردي على تعليقك. لا تتردد أيضًا في مشاركة هذه المقالة إذا وجدت أنها مفيدة!