2010-08-10 4 views
0

Le modèle standard pour un nœud dans Drupal est node.tpl.phpen utilisant un ID de nœud spécifique pour appeler un fichier modèle

Il est possible d'appeler un autre modèle pour un type de contenu, comme « newsitem ». Vous l'appellerez comme ceci: node-newsitem.tpl.php.

Je me demandais s'il y avait un moyen d'appeler un ID de nœud spécifique? node-34.tpl.php fait pas travail.

Merci

Répondre

3

Dans votre thème de template.php mettre les éléments suivants en haut de theme_preprocess_node():
$vars['template_files'][] = 'node-'. $vars['node']->nid;

Donc, si votre thème est appelé "myTheme", vous pourriez avoir:

function myTheme_preprocess_node(&$vars){ 
    $vars['template_files'][] = 'node-'. $vars['node']->nid; 
} 
-1

Cette convention de dénomination fonctionnera, mais pas par défaut. En supposant que cela est Drupal 6, essayez d'ajouter le code suivant à la template.php de votre thème:

/** 
* Override or insert variables into the node templates. 
* 
* @param $vars 
* An array of variables to pass to the theme template. 
* @param $hook 
* The name of the template being rendered ("node" in this case.) 
*/ 
function yourthemename_preprocess_node(&$vars, $hook) { 
    $node = $vars['node']; 
    $vars['template_file'] = 'node-'. $node->nid; 
} 

Assurez-vous de ne pas essayer de redéclarer yourthemename_preprocess_node() --Que est, si elle existe déjà dans le template.php de votre thème , ajoutez simplement les lignes $ node et $ vars ['template_file'].

0

Cela fonctionne en ce moment même. Dans Drupal 6, ma page d'accueil est le nœud 5. Il utilise

la page nœud-5.tpl.php

Si ce n'est pas le chargement, tenez compte du cache de compensation ou la reconstruction de votre registre thématique.

+0

page-node-5.tpl.php est une variante de page.tpl.php, l'OP cherche à créer des variantes de node.tpl.php – Aaron

+0

Bien sûr, mais newsitem-node-34.tpl. php accomplirait la même chose. –

+0

Je ne vous suis pas. newsitem-node-34.tpl.php ne suit aucun type de modèle de suggestion de modèle dans drupal 6 que je connais. – Aaron

6

Pour Drupal 7 utiliser ce nom de modèle (34 - est ID de nœud):

node--34.tpl.php 

Et ne pas oublier de vider votre cache! Plus d'informations on drupal.org

Questions connexes