J'essaie de masquer le titre de la page actuelle (tel qu'imprimé par page.tpl.php
) si la page actuelle est 1) un nœud en plein affichage (par opposition au mode teaser) ET 2) le type de nœud est soit concert, soit bio . J'imprime le titre du nœud pour ces types de contenu directement dans le contenu du nœud, donc je veux masquer le doublon en cours d'impression par page.tpl.php. Je ne suis pas en mesure de faire fonctionner cela directement dans page.tpl.php, et ma lecture suggère que la meilleure pratique consiste à gérer la logique du modèle dans template.php en utilisant des fonctions de prétraitement et de traitement. Donc, j'essaie de masquer le titre de la page actuelle (avec les 2 conditions ci-dessus) en utilisant template_preprocess_page()
. Ceci est mon code.
<?php
function MYTHEME_preprocess_page(&$variables) {
if (!empty($variables['node']) && $variables['node']->type == 'concert') {
hide($variables['title']);
}
}
?>
Je lis Comment puis-je tester le type de nœud pour imprimer une variable à partir de template.php? et la page de documentation pour template_preprocess_page()
, et divers autres sites, mais je n'arrive pas à faire fonctionner cela. J'ai vu des suggestions que vous devez appeler isset()
sur $variables['node']
avant de tester pour le type de noeud, mais cela ne fonctionne pas non plus . Je n'ai vu aucune solution claire affichée nulle part, et je suis à bout de souffle.
$title
variable réelle avecmytheme_process_page(&$variables) { $title = false; }
.mytheme_process_page(&$variables) { $variables['title'] = false; }
et cela fonctionne BTW.<?php print $title; ?>
en<?php if (!$title_hidden): ?>
vous pouvez simplement mettre$variables['title_hidden'] = TRUE;
Vous pouvez gérer cela en utilisant drupal_set_title ().
la source
template_preprocess_page()
? J'ai utilisé le module Theme Developer pour inspecter le titre de la page en double et confirmé qu'il est appelé depuispage.tpl.php
. Dois-je penser à supprimer le titrepage.tpl.php
et à l'ajouter ensuite là où je veux qu'il soit utilisétemplate_preprocess_page()
? Je veux que le titre s'affiche, par exemple, lorsque la page contient une vue des nœuds, mais pas lorsque la page est un nœud unique d'un certain type / types.Essayez ceci en supposant que votre condition est correcte :)
la source
$variables['title']
avec la valeur renvoyée pardrupal_get_title()
.La manière la moins compliquée consiste à l'imprimer dans votre page.tpl.php
Mais si vous voulez qu'il soit dynamique, je suggère d'utiliser le
preprocess_page
comme suggéré par d'autres.la source
hide()
est utilisé avec des tableaux de rendu, pas des chaînes.En CSS, je l'ai fait pour mon thème
Tel que recommandé par http://www.alistapart.com/articles/now-you-see-me/
Pourquoi? Parce que vous voulez toujours que l'en-tête et h1 soient «visibles» pour filtrer l'accessibilité des lecteurs. Si vous supprimez simplement la valeur du H1, vous volez à vos visiteurs aveugles et malvoyants des informations potentiellement importantes.
la source
la suggestion de mytheme_preprocess_page fonctionne pour moi mais si elle est utilisée
$vars['title_hidden'] = TRUE;
la source
La fonction correcte est
au lieu de
la source