2

Drupal 6 モジュールで、特定の条件下での分類用語ページの表示方法をカスタマイズしようとしています。これはテーマを介して簡単に実現できますが、モジュールを介してこれを実現する簡単な方法はないようです。

かなりの試行錯誤とグーグルの後、これを達成する次の方法を思いつきました。

それはうまく機能しているようで、私がオンラインで見つけた代替ソリューションよりもハッキリしていないように感じます. しかし、多くの Drupal フォーラム ページのどこにもこの例を見なかったという事実に懸念を抱いています。このソリューションには、まだ見たことのない恐ろしい問題があるのではないかと考えさせられます。

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);
    }
}
4

2 に答える 2

4

hook_menu_alter()の代わりに使うのはどうhook_menu()ですか?そうすれば、モジュールの重みや最後に追加される項目について心配することなく、分類法が作成するメニュー項目を明確な方法で変更できます。

それ以外の場合は、モジュール コンテキストでそのようなことを行う方法です。

于 2009-09-30T18:51:57.453 に答える
0

content.module または views.module を見て、それらがインストールされている場合は、そこにどのように実装されているかを確認してください。

于 2010-02-21T11:31:55.650 に答える