يرجى التحقق من IDIOCY: تخصيص صفحة مصطلح التصنيف في Drupal

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

  •  19-09-2019
  •  | 
  •  

سؤال

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

بعد قدر كبير من المحاكمة والخطأ والجوغلينج، فقد وصلت إلى الطريقة التالية لإنجاز هذا:

يبدو أن العمل جيدا، و شعور ناقص أقل بكثير من الحلول البديلة التي وجدتها عبر الإنترنت. لكنني أشعر بالقلق إزاء حقيقة أنني لم أر هذا المثال في أي مكان في صفحات منتدى دروبال العديدة - يجعلني أعتقد أنه قد يكون هناك خطأ فظيع في هذا الحل الذي لم أره بعد.

هل يمكن لأي من So'er أن يرى مشاكل مع هذا الحل، أو (أفضل) اقتراح طريقة يمكن أن تنشئ على خطافات موضوع Drupal الموجودة؟

function foo_menu() {
    // other menu callbacks ... 
    $items['taxonomy/term/%'] = array( 
        'title' => 'Taxonomy term',
        // override taxonomy_term_page
        'page callback' => 'foo_term_page',
        'page arguments' => array(2),
        'access arguments' => array('access content'),
        'type' => MENU_CALLBACK,
    );
    // other menu callbacks
}

function foo_term_page($str_tids = '', $depth = 0, $op = 'page') {
    if ($my_conditions_are_true) {
        // foo_theme_that_page is a copy-paste of taxonomy_term_page
        // that includes the customizations I want
        return foo_theme_that_page($str_tids,$depth,$op);
    } else { //Conditions aren't met. Display term normally
        module_load_include('inc', 'taxonomy', 'taxonomy.pages');
        return taxonomy_term_page($str_tids,$depth,$op);
    }
}
هل كانت مفيدة؟

المحلول

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

خلاف ذلك، فهذه الطريقة التي سأفعل شيئا كهذا في سياق وحدة.

نصائح أخرى

إلقاء نظرة على المحتوى. ألم أو وجهات النظر. لمشاهدة كيفية تنفيذها هناك، إذا كنت قد تثبيتها.

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