Drupal 7 – jak na vlastní page template dle vocabulary

Drupal 7 je v základu již hodně obsáhlý, ale bohužel se do jádra nedostaly i některé základní funkce. V minulém článku jsem psal o stylování fields . A dnes se podíváme jak Drupal 7 přinutit používat jinou template pro page na základě vocabulary.

Drupal 7 trochu nelogicky pro možný název page template využívá jen term id ve formátu page--taxonomy--term_id.tpl.php. Praktičtější by ovšem bylo, kdyby uměl použít i tvar page--taxonomy--vocabulary_machine_name.tpl.php. Čili například pro výpis kategorií článků page--taxonomy--articles.tpl.php.

Naštěstí to lze lehce doprogramovat. Jen dávejte bacha, že Drupal 7 již nezná taxonomy_get_term ale je nutné použít taxonomy_term_load !

function theme_preprocess_page(&$variables) {
  if(arg(0) == 'taxonomy' && arg(1) == 'term') {
        $tid = (int)arg(2);
        $term = taxonomy_term_load($tid);
        if(is_object($term)) {
           $variables['theme_hook_suggestions'][] = 'page__taxonomy__'.$term->vocabulary_machine_name;
        }
  }
}


Komentáře

Zatím nikdo nepřidal komentář, můžete být první.



O autorovi

Pari

Vítejte na mém blogu, rád bych se v krátkosti představil. Je mi 26 let. Momentálně nejvíce času věnuji projektu Lepime.cz - obchod se samolepkami na zeď a tvorbě webů postavených na redakčním systému Drupal pod značkou MEPA.CZ.