请检查白痴:在Drupal中定制分类术语页面

请检查白痴:在Drupal中定制分类术语页面,drupal,drupal-6,drupal-modules,Drupal,Drupal 6,Drupal Modules,我一直在尝试让我的Drupal6模块在特定条件下定制分类术语页面的显示方式。这很容易通过主题来实现,但似乎没有一种直接的方式通过模块来实现 经过大量的尝试、错误和谷歌搜索,我想出了以下实现方法: 它似乎工作得很好,感觉比我在网上找到的替代解决方案要简单得多。但是,我担心的是,我在Drupal论坛的许多页面上都没有看到这个例子——这让我觉得这个解决方案可能有一些我还没有看到的可怕的错误 有谁能看到这个解决方案存在的问题,或者(更好)提出一种可以建立在Drupal现有主题挂钩上的方法 functio

我一直在尝试让我的Drupal6模块在特定条件下定制分类术语页面的显示方式。这很容易通过主题来实现,但似乎没有一种直接的方式通过模块来实现

经过大量的尝试、错误和谷歌搜索,我想出了以下实现方法:

它似乎工作得很好,感觉比我在网上找到的替代解决方案要简单得多。但是,我担心的是,我在Drupal论坛的许多页面上都没有看到这个例子——这让我觉得这个解决方案可能有一些我还没有看到的可怕的错误

有谁能看到这个解决方案存在的问题,或者(更好)提出一种可以建立在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\u menu\u alter()
代替
hook\u menu()
,怎么样?这样,您就可以清楚地更改分类法创建的菜单项,而不必担心模块权重和最后添加的项


否则,我会在模块上下文中这样做。

查看content.module或views.module,看看它是如何在那里实现的,如果您已经安装了它们的话