2010-02-11 5 views
0

Je développe un thème pour un blog Drupal; Le mock-up que j'ai créé nécessite que le contenu de l'article, le bloc de rétroliens et le bloc de commentaires apparaissent dans une colonne centrale, avec des bordures de chaque côté.Comment contrôler le placement de la région des commentaires dans Drupal 6?

J'ai le CSS et le HTML qui fonctionnent correctement, donc ce n'est pas le problème ici. Mon problème est que le bloc de commentaires généré par Drupal est placé en dehors de la div définissant la colonne centrale, et donc il semble hors de place. En tant que tel, je pense que la solution est de coller une ligne dans mon thème en disant "imprimer le bloc de la colonne ici", mais ayant parcouru les docs Drupal je ne vois pas comment le faire. Basé sur la sortie HTML de Drupal, je ne suis pas sûr qu'une correction CSS/HTML fonctionnera.

Je suis sûr que d'autres développeurs de thème Drupal doivent se sont heurtés à cela avant ...

Répondre

1

J'ai finalement réussi à résoudre ce en utilisant un code HTML et CSS correctif après tout. Ce n'est pas aussi transparent que je le voudrais, mais ce n'est pas la fin du monde.

Merci pour les suggestions, je n'avais pas prévu que des choses comme des commentaires seraient sorties dans le cadre du contenu du nœud!

1

Il y a plusieurs façons d'aborder ce dans Drupal 6.

utilisant quelque chose comme le module comment_display, vous pouvez placez manuellement les commentaires n'importe où dans votre fichier page.tpl.php.

Alternativement, vous pouvez faire quelque chose de similaire en utilisant des panneaux.

+1

Il n'y a aucun moyen de le faire avec juste le noyau Drupal? Il me semble que les rétroliens seront également problématiques, et ils sont fournis par un module tiers. Y at-il une variable wrapper qui couvre tout ce qui est affiché après le message lui-même? – alastairs

+0

Pas dans Drupal 6, du fait que la fonction node_show appelle directement comment_render. Ce que fait le module comment_display, c'est d'abord un noeud show_show dans lequel les commentaires sont désactivés, puis via preprocess_page, il restitue les commentaires dans une variable qui peut être placée dans page.tpl.php. Si vous regardez le code, vous trouverez peut-être que vous pouvez faire quelque chose de similaire dans un module ou un thème personnalisé qui correspond mieux à vos besoins. – jhedstrom

2

Dans node.tpl.php, vous pouvez créer le html pour l'affichage complet du nœud (le nœud est en cours de visualisation). Vous pouvez créer des modèles pour chaque type de nœud, fx node-blog.tpl.php etc. Le modèle de nœud par défaut imprime simplement $content, mais si vous le souhaitez, vous pouvez imprimer chaque élément séparément avec le balisage souhaité.

Ceci est moins dynamique, car vous auriez besoin d'ajouter de nouveaux éléments s'ils étaient ajoutés au nœud, mais cela vous donnerait un contrôle plus fin sur le balisage. C'est la solution la plus simple à laquelle je puisse penser.

Pour placer les commentaires utiliser cet extrait:

<?php print comment_render($node); ?> 

ou Recherche de la fonction comment_render()

Questions connexes