Vérifiez s'il vous plaît Pour Idiocy: Personnalisation de la page dans la taxonomie terme Drupal

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

  •  19-09-2019
  •  | 
  •  

Question

J'ai essayé d'avoir mon module Drupal 6 personnaliser les pages de façon terme de taxonomie sont affichés dans certaines conditions. Ceci est facile à réaliser par thèmes, mais il ne semble pas être un moyen simple d'y parvenir via un module.

Après une bonne affaire d'essais, d'erreurs et de recherche sur Google, je suis venu avec la manière suivante d'accomplir ceci:

Il semble bien fonctionner, et se sent beaucoup moins hacky que les solutions de rechange en ligne je trouve. Mais, je suis préoccupé par le fait que je ne vois pas cet exemple partout sur les nombreuses pages du forum Drupal - il me fait penser qu'il pourrait y avoir quelque chose de terriblement mal avec cette solution que je ne l'ai pas encore vu

Peut-SO'er voir les problèmes avec cette solution, ou (mieux) proposer une méthode qui pourrait s'appuyer sur les crochets thématiques existants de 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);
    }
}
Était-ce utile?

La solution

Comment l'utilisation hook_menu_alter() au lieu de hook_menu()? De cette façon, vous pouvez modifier l'élément de menu qui crée la taxonomie de manière claire, sans avoir à se soucier des poids du module et quel élément est ajouté dernier.

Dans le cas contraire, voilà comment je ferais quelque chose comme ça dans un contexte de module.

Autres conseils

Jetez un oeil à content.module ou views.module pour voir comment il est mis en œuvre là-bas, si vous les avez installés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top