Ma situation est la suivante: J'ai un séminaire de type de contenu, avec les champs A, B et C. J'ai les régions En-tête, Pied de page, Contenu et Barre latérale gauche. Il y a certains champs dans Séminaire que je veux afficher dans la région Contenu, mais aussi dans la région Gauche de la barre latérale.
Comment dois-je procéder? Toutes mes excuses si cela a déjà été répondu auparavant. Je suis développeur et n'hésite pas à me plonger dans les fonctions hook et préprocesseur. J'ai installé le module Views, mais je ne l'ai jamais utilisé (c'est mon premier site Drupal, si vous ne pouvez pas dire: P).
À votre santé.
EDIT: C'est pour Drupal 7 .
Réponses:
Il n'y a pas de moyen simple d'ajouter le contenu d'un nœud à différentes régions de la page. Il existe plusieurs façons de résoudre ce problème.
Manière non codante: vues et blocs
Créer une vue
(plus les paramètres supplémentaires que vous souhaitez)
Ensuite, allez à la page de blocage de l'administrateur Déplacez le bloc de vue nouvellement créé, dans la région que vous souhaitez qu'il affiche. Il ne doit s'afficher que sur les pages des nœuds du séminaire.
Répéter pour toutes les régions
Coding Way avec theme_preprocess_region ():
le code ressemblerait à quelque chose comme ça
C'est uniquement pour Drupal 7. Maintenant, c'est disponible dans votre region.tpl.php.
la source
Le module Display Suite vous permet de le faire. Vous devrez activer le module Display Suite Extras pour exposer les régions de thème en tant que cibles pour les composants de noeud. Des informations sur la façon de procéder peuvent être trouvées dans les champs Ajouter à une page de blocage de la documentation Display Suite
la source
J'ai eu le même problème. La solution est assez simple. Vous pouvez baser le fait que dans Drupal 7, nous pouvons définir notre propre view_mode, pas seulement FULL et TEASER (comme nous le savons des versions les plus anciennes). Donc, définissez un autre view_mode à utiliser dans votre région: par exemple LEFTHAND. Drupal affiche FULL view_mode dans la région de contenu. Donc, vous devez dire à Drupal d'afficher LEFTHAND dans la région de la barre latérale gauche.
Dans template_preprocess_page ()
Dans node.tpl.php, ajoutez un nouvel affichage pour le mode d'affichage à gauche
la source
if (array_key_exists('block_14',$vars['page']['main_content'])){}
de le faire apparaître uniquement sur les pages avec un bloc spécifique.Si la suite d'affichage semble trop pour vos besoins (c'est un excellent module, mais il peut être exagéré si vous avez juste besoin de déplacer quelques champs), il existe un module uniquement dans ce but -> Blocs CCK .
Je sais que cela s'appelle des blocs «CCK», mais cela fonctionne avec Drupal 7 (qui a apporté la fonctionnalité de CCK au cœur).
la source
Un léger changement dans la réponse de @Patrik Lucan
if ($vars['node'])
m'a causé des problèmes sur des pages qui n'étaient pas des nœuds, par exemple une page d'accueil personnalisée avec un bloc ou une page de vues.Changé en:
if (array_key_exists('node', $vars))
Ce qui semble avoir résolu le problème.
la source
En attendant, il y a un module pour cela. Depuis la page du module:
la source