إعادة توجيه أو إعادة كتابة روابط دروبال

StackOverflow https://stackoverflow.com/questions/3921209

  •  29-09-2019
  •  | 
  •  

سؤال

لدي بنية مخصصة لتصفح المحتوى الذي تم تصميمه به hook_menu ووجهات النظر. أرغب في توجيه روابط للمحتوى بواسطة نوع العقدة إلى الوجهة المناسبة في هيكيتي. لذلك أثناء النقر عادة على رابط العقدة ، يأخذك node/123, ، بدلاً من ذلك أود أن أرسل إلى foo/123 (لأن العقدة 123 هي من النوع "فو").

لقد جربت Pathauto لكن الأمر لا يعمل على صنعه فقط foo/123 الاسم المستعار node/123. بنية محددة ، علامات التبويب ، إلخ ... تم تصميمها باستخدام hook_menu إلى عن على foo/123. Pathauto (كما أفهمها) هو مجرد عرض فقط node/123 وهو مجرد عرض عقدة Drupal ، وليس ما أريد أن أظهره.

بدأت في التجميع hook_nodeapi و drupal_goto لإعادة توجيه بناء على نوع العقدة. [العمل على بعض المشكلات التي لا حصر لها ، لكنني متأكد من أنني أستطيع معرفة ذلك.] لكن هل أريد حقًا القيام بذلك؟ ألن يكون هناك ضربة سريعة للحصول على كل رابط على الموقع يمر عبر إعادة توجيه HTTP؟

ما هي الطريقة المثلى لعمل هذا؟

يحرر
في الواقع ، أعتقد أن المشكلة هي أن Pathauto لا يحترم Hook_Menu ، وربما ليس الأداة الصحيحة لهذا الوظيفة. مع عدم إعداد Pathauto حتى الآن ، لدي hook_menu تحدد صفحة لـ foo/123 حيث فو هو نوع العقدة. التنقل إلى foo/### يعمل كما هو متوقع عرض الإصدار المخصص من Node ###.

الآن أريد إعادة التوجيه node/### إلى foo/###, ، أو وضع طريقة أخرى ، أريد جميع الروابط إلى node/### ليتم كتابتها باسم foo/###. يبدو هذا بمثابة مهمة واضحة لـ Pathauto حيث يكون نمطتي تحت نوع العقدة foo/[nid]. إلا بعد إعداده ، لم يعد Hook_node يعمل. هذا بسبب الآن foo/### يتم توجيهه إلى node/### كما طلبت ذلك وما يتم عرضه هو عرض عقدة الفانيليا Drupal ، وليس Hook_Menu.

هل كانت مفيدة؟

المحلول

في الواقع ، يمكن إعداد Pathauto لتحديد نوع المسار المخصص الخاص بك. يستخدم وحدة الرمز المميز للسماح لك بسهولة إعادة تكوين كيفية بناء المستعار ...

تحقق في صفحة الإدارة من Pathauto (المسؤول/البناء/المسار/pathauto).

يحرر

لتحرير ما سأفعله هو تنفيذ Hook_Menu_alter ، وسأقوم بتعديل رد الاتصال على صفحة العقدة/٪ إلى رد الاتصال المستخدم في Hook_Menu لتقديم صفحة Foo/123.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top