Ajout de template page-xxxx.tpl.php

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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

Forum : 
Version de Drupal : 

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,

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