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;
}
}
}
Přidej vlastní názor
Ty