Domanda

Ho cercato di avere il mio modulo di Drupal 6 personalizzare le pagine termine tassonomia modalità di visualizzazione dei dati di determinate condizioni. Questo è facile da realizzare attraverso i temi, ma non sembra essere un modo semplice di realizzare questo tramite un modulo.

Dopo un bel po 'di prove, errori e usare Google, mi è venuta in mente la seguente modo di realizzare questo:

Sembra funzionare bene, e si sente molto meno hacky rispetto alle soluzioni alternative che ho trovato on-line. Ma, io sono preoccupato per il fatto che non ho visto questo esempio in un punto qualsiasi delle molte pagine Drupal forum - mi fa pensare che ci potrebbe qualcosa di terribilmente sbagliato con questa soluzione che non ho ancora visto

Può un SO'er vedere i problemi con questa soluzione, o (meglio) suggerire un metodo che potrebbe costruire su ganci tema esistente di 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);
    }
}
È stato utile?

Soluzione

Come sull'utilizzo hook_menu_alter() invece di hook_menu()? In questo modo è possibile modificare la voce di menu che tassonomia crea in modo chiaro, senza doversi preoccupare di pesi moduli e quale elemento viene aggiunto per ultimo.

In caso contrario, è così che avrei fatto una cosa del genere in un contesto di modulo.

Altri suggerimenti

Date un'occhiata al content.module o views.module per vedere come viene implementato lì, se li avete installato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top