Comment puis-je masquer le titre sur un nœud spécifique?
J'ai essayé les trois modules suivants, mais aucun d'entre eux ne fait ce que j'aimerais.
J'ai ajouté field_hide_title au type de contenu de la page, le code dans la fonction hook_preprocess_node()
. Cela ne peut pas fonctionner correctement.
La valeur indiquée par print_r($vars['node'])
est la suivante:
Objet stdClass ( [vid] => 4 [uid] => 1 [title] => search_material [log] = > [état] => 1 [commentaire] => 1 [promouvoir] => 0 [collant] => 0 [nid] => 4 [type] => page [langue] => zh-hant [créé] => 1339055801 [changé] = > 1339727555 [Tnid] => 0 [Traduire] => 0 [Revision_timestamp] => 1339727555 [Revision_uid] => 1 [corps] => Array ( [und] => Array ( [0] => Array ( [valeur] => [résumé] => [format] => php_code ) ) ) [field_hide_title] => Tableau ( [und ] => Tableau ( [0] => Tableau ([valeur] => 1) ) ) [Rdf_mapping] => Tableau ( [rdftype] => Array ([0] => foaf: Document) [title] => Array ( [predicates] => Array ([0] => dc: Titre) ) [créé] => Tableau ( [prédicats] => Tableau ( [0] => dc: date [1] => dc: créé ) [type de données] => xsd: dateTime [rappel] => date_iso8601 ) [modifié] => Tableau ( [prédicats) ] => Tableau ([0] => dc: modifié) [Type de données] => xsd: dateTime [Rappel] => date_iso8601 ) [ body] => Array ( [predicates] => Array ([0] => content: encoded) ) [uid] => Array ( [prédicats] => Array ([0] => sioc: has_creator) [type] => rel ) [name] => Array ( [prédicats] => Tableau ([0] => foaf: nom) ) [comment_count] => Tableau ( [prédicats] => Tableau ([0] = > sioc: num_replies) [datatype] => xsd: integer ) [last_activity] => Array ( [predicates] => Array ([0 ] => sioc: last_activity_date) [da tatype] => xsd: dateTime [callback] => date_iso8601 ) ) [cid] => 0 [last_comment_timestamp] = > 1339055801 [Last_comment_name] => [Last_comment_uid] => 1 [Comment_count] => 0 [Name] => admin [image] => 0 [données] => b: 0; [entity_view_prepared] => 1 )
================================================== ========== MISE À JOUR:
print_r ($ vars) dans la fonction mytheme_preprocess_page:
[summary] => [format] => php_code))) [field_hide_title] => Array ([und] => Array ([0] => Array ([value] => 1))) [rdf_mapping] => Array ([rdftype] => Array ([0] => foaf: Document) [title] => Array ([predicates] => Array ([0] => dc: title)) [created] => Array ([predicates ] => Tableau ([0] => dc: date 1 => dc: créé) [type de données] => xsd: dateTime [rappel] => date_iso8601) [changé] => Tableau ([ prédicats] => Tableau ([0] => dc: modifié) [type de données] => xsd: dateTime [rappel] => date_iso8601) [body] => Tableau ([prédicats] => Tableau ([0] => contenu : encoded)) [uid] => Array ([predicates] => Array ([0] => sioc: has_creator) [type] => rel) [name] => Array ([predicates] => Array ([0] ] => foaf: name)) [comment_count] => Array ([predicates] => Array ([0] => sioc: num_replies) [datatype] => xsd: integer) [last_activity] => Array ([predicates] => Tableau ([0] => sioc: last_activity_date) [datatype] => xsd: dateTime [callback] => date_iso8601)) [cid] => 0 [last_comme nt_timestamp] => 1339039221 [last_comment_name] => [last_comment_uid] => 1 [comment_count] => 0 [name] => admin [picture] => 0 [data] => b: 0; [entity_view_prepared] => 1))
Vous pouvez créer un champ cck (case à cocher/booléen) qui agira comme un indicateur. Vous pouvez donc avoir une option dynamique si vous souhaitez masquer le nœud ou non.
Pseudo code:
Dans template.php
function yourtTheme_process_page(&$variables) {
if($variables['node']->field_hide_title['und'][0]['value']) {
$variables['title'] = NULL;
}
}
N'essayez pas ce code mais je pense que cela fonctionnera.
EDIT: Ajout d'une capture d'écran d'un nouveau champ
Cela devrait être la valeur de votre cck
Utilisez CSS.
Chaque nœud individuel aura une classe spécifique sur le <body>
tag de la page, qui vous permettra de cibler votre nœud spécifique.
Par exemple, supposons que vous essayez de masquer le titre sur le nœud 69, il ressemblerait à ceci:
.page-node-69 .page-title {
display: none;
}
pour le noeud 150, cela ressemblerait à ceci:
.page-node-150 .page-title {
display: none;
}
Vous devrez peut-être l'ajuster en fonction de votre thème, et vous devrez peut-être cibler plus spécifiquement le titre de la page (c'est-à-dire h1.page-title
) juste au cas où il y aurait plus de spécificité plus haut dans la cascade.
Je suppose que vous pourriez ajouter quelque chose comme ça dans votre template.php:
function YOURTHEME_preprocess_node(&$node) {
// check if it's the node of interest
if($node['title'] == 'your-specific-node-title') {
// set the title to NULL so nothing is rendered
$node['title'] = NULL;
}
}
Comme chapab l'a suggéré, il pourrait être préférable de vérifier le nid du nœud au lieu du titre:
if($node['nid'] == 'your-node-nid') {
...
}
Le CSS sur le titre est une classe de titre et un ID de titre de page, donc mon CSS doit être
.page-node-69 #page.title {
display: none;
}
pour que cela fonctionne.