Submitted by mehdi.s on
Bonjour tout le monde,
Voilà, j'explique ce que je veux faire.
Je suis sur Drupal 7.
J'ai créé deux types de contenu (marque et modèle) et pour chaque type de contenu, j'ai créé un template (node--marque.tpl.php, node--modele.tpl.php) pour personnaliser l'affichage de mes pages.
J'ai installé nodeblock et nodelevelblock, pour mettre mes pages dans des blocks afin que je puisse afficher l'ensemble dans un seul template parce que le rendu final doit contenir à la fois les pages du premier type de contenu et du deuxième aussi.
Ce que je dois faire aujourd'hui, c'est quand le visiteur clique sur un lien d'une marque precise, il sera redirigé vers une page qui contiendra le block de la marque et en-dessous le block du modèle correspondant.
Je veux créer un nouveau template comme page.tpl.php mais il sera nommé page-marque.tpl.php qui contiendra l'affichage le résultat de redirection.
J'ai utilisé, function monmodule_preprocess_page(&$variables) , pour dire si le node du type marque ou modèle, tu utilise le template page-marque.tpl.php , mais malheureusement, mon code n'est pris en compte.
Je voudrais savoir comment faire reconnaître à Drupal que page-marque.tpl.php est un nouveau template à récupérer lorsqu'il s'agit de page marque et modèle, svp ?
ce que je voudrais savoir, comment regrouper mes deux blocks dans la même page, si vous avez des idées, s'il vous plait ?
Mais si vous avez d'autres idées ou d'autres manières de faire, je suis preneur.
Merci beaucoup d'avance de votre aide.
Mehdi.S
D'après ce que j'avais testé,
Permalien Soumis par vincent59 le 27 Novembre, 2014 - 12:05
D'après ce que j'avais testé, ça fonctionne (cf http://www.vincentliefooghe.net/node/29).
Il faut reconstruire le cache pour que le nouveau template soit pris en compte.
Pour cela, on peut aller dans la gestion des thèmes (structure -> Apparence) et changer de thème puis réactiver le nouveau, ça suffit à reconstruire le cache de thème.
Bonjour Vincent,
Permalien Soumis par mehdi.s le 27 Novembre, 2014 - 17:13
Bonjour Vincent,
Tout d'abord je te remercie bcp d'avoir pris le temps pour me répondre.
Sinon, oui j'e connais la personnalisation du template d'un type de contenu : node--typecontenu.tpl.php et après tu dessine ton design comme tu veux.
Par contre, j'ai un autre soucis, que je rencontre actuellement, c'est rendre le résultat d'un form_submit sur un template, je m'explique :
J'ai le code suivant :
'monmoduleform-page' => array(
'variables' => array(
'var_a ' => NULL,
'var_b' => NULL
),
'template' => 'templates/monmoduleform-page',
),
function monmodule_page_form_submit($form, &$form_state) {
$form_values = $form_state['values'];
$vars['var_a'] = $form_values['var_a'];
$vars['var_b']= $form_values['var_b'];
}
je ne sais pas, comment je fais pour que mes deux variables $var_a et $var_b s'affichent sur le template que je définis dans mon hook_theme.
j'ai regardé sur des forums, on utilise :
return theme('monmoduleform-page', $vars);
$form_state['rebuild']=TRUE;
mais ça ne marche pas.
Le contexte, c'est que je dois faire comme un moteur de recherche, c'est à dire le client choisit sa marque de voiture et moi je dois afficher les modèles de cette marque.
J'ai essayé d'abord de faire un simple formulaire de deux variables et tester mon affichage avant de faire la tache de recherche.
Merci bcp d'avance de votre retour.
M.S