Je veux themer le modèle pour édition ou ajouter un nœud pour un type de contenu spécifique. Mais je n'ai pas trouvé le nom du modèle pour un type de noeud personnalisé, par exemple des produits. P>
J'ai besoin de theme uniquement pour les produits, mais pas pour les autres types de contenu. P>
J'ai essayé avec
Par exemple, au thème Tous les formulaires de type de contenu, j'utilise le fichier page-nœud- {Ajouter | edit} .tpl.php code> (selon ce que je dois faire ajouter ou modifier). P>
page-node-edit-product.tpl.php code> et
page-nœud-produit-edit.tpl.php code> mais pas de chance. < / p>
6 Réponses :
hmm. Il peut y avoir une meilleure façon, mais qu'en est-il de la fonction de préprocession.
Je suis toujours vraiment nouveau à Drupal, alors je voudrais peut-être essayer quelque chose comme ceci [code peut ne pas fonctionner]: P>
<?php function themeName_preprocess_page(&$vars, $hook) { if ((arg(0) == 'node') && (arg(1) == 'add' && arg(2) == 'product')) { $vars['template_files'][] = 'page-node-add-product'; } } ?>
Je suis un noob drupal moi-même, mais quelque chose que quelque chose (pourrait avoir besoin d'un peu plus) comme ce travail?
function phptemplate_node_form($form) { switch ($form['#node']->type) { case 'product': return theme_render_template(path_to_theme().'/node-edit-product.tpl.php', array('form' => $form)); default: return theme_node_form($form); } }
C'est ce que je pense, c'est le moyen "approprié" de le faire.
du module de nœud: p> si drupal tentera de thème "produit_node_form" p> afin que vous puissiez créer un module qui implémente ceci. p> Vous devrez mettre en place [harok_theme] [1] et fournir une fonction ou un modèle. P> Vous constaterez peut-être qu'il est plus facile d'utiliser [harok_form_alter] [2] pour ajouter des classes et des CSS normaux pour changer l'apparence. P> P>
Ah, mais je veux utiliser un modèle complet différent plutôt que sur le thème uniquement.
Bien que vous puissiez faire comme vous l'avez posté, je ne suis pas sûr que c'est ce que veut l'OP. Cela ne changera que le modèle de la forme réelle (qui n'utilise actuellement aucun), cela ne changera pas le modèle de page utilisé. De ses exemples semble être comme c'est ce qu'il veut.
pour moi le même problème. Invite d'où insérer un code: il est entré dans template.php ou dans la page-nœud - {Ajouter | edit} -example.tpl.php? P> P> P> P> P> P> P >
Dans la deuxième comparaison, il y a une erreur, il doit être un && au lieu de ||: PHP fonction themename_preprocess_page (& $ vars, $ crochet) {if (((0) == 'noeud') && (arg (1) == 'Ajouter' && arg (2) == 'Produit')) {$ var ["template_files '] [] =" page-nœud-add-produit "; }}?> Parce que cela s'applique à tout contenu "Ajouter".
Je mets ceci dans mon fichier template.php dans le répertoire de mon thème:
function themename_preprocess_page(&$vars) { // Add per content type pages if (isset($vars['node'])) { // Add template naming suggestion. It should alway use hyphens. // If node type is "custom_news", it will pickup "page-custom-news.tpl.php". $vars['template_files'][] = 'page-'. str_replace('_', '-', $vars['node']->type); } } Add the above code in template.phpThen create couple of tpl files1) page-contenttype.tpl.phpused when displaying and editing the content2) page-node-add-contenttype.tpl.phpused when adding that content type.Works with drupal 6.