Je cherche à rendre un certain champ avant le titre du nœud lors de l'affichage d'un teaser dans D7.
Effectivement je veux aller de ceci à ceci .
Je l' ai regardé dans la mise à jour du node.tpl.php mais je remarque qu'il sépare $title
de $content
sorte que je ne suis pas sûr comment aborder ce sujet . Après quelques recherches, j'ai constaté que certaines personnes avaient suggéré d'utiliser les modules CCK et ConTemplate pour résoudre ce problème dans Drupal-6, mais je me demande s'il existe une solution plus Drupal-7.
Aucune suggestion?
Réponses:
C'est vraiment très simple avec Drupal 7.
Avec
render
ethide
vous savez avoir la possibilité de contrôler le placement d’un seul élément$content
sans avoir à imprimer tous les éléments vous-même comme il était nécessaire dans Drupal 6.Un modèle de nœud simplifié ressemble à ceci:
Une petite modification répondrait à vos besoins:
En utilisant
render
, vous pouvez sortir un élément. C’est plus astucieux que de simplement imprimer des choses, dans la mesure où Drupal gardera trace de ce qui a été rendu, pour éviter que la même chose soit imprimée deux fois à la place. Lors du rendu du champ au-dessus du titre, vous supprimez également ce qui est rendu quand$content
est rendu.la source
Display Suite est également très cool.
la source
Consultez le module Titre - http://drupal.org/project/title . Cela pourrait s'avérer utile pour votre scénario. Je l'ai installé / activé pour une raison quelconque, probablement similaire au vôtre, et il a semblé donner de la souplesse quant à la manière de placer le champ de titre.
Je l'ai depuis désactivé (et j'utilise Display Suite), mon rappel risque donc d'être un peu flou.
la source
Ceci est une solution bidon et je suis sûr que quelqu'un trouvera quelque chose de plus élégant, mais au cas où vous seriez coincé, et personne ne le ferait ...
Vous pouvez utiliser
page.tpl.php
pour supprimer$title
complètement l'impression et ajouter un nouveau champ personnalisé appelé Titre avec le nom d'ordinateur $ new_title ou quelque chose du genre. Puis , le modifier node, cacher la zone Titre original, et sur le noeud Enregistrer utilisation calculée sur le terrain ou un peu php personnalisé pour copier le$new_title
à$title
.Après tout cela, écrivez quelques css pour que $ new_title ressemble au titre de la page auparavant et vous devriez pouvoir placer les champs dans l'ordre de votre choix, simplement en les faisant glisser dans l'écran de gestion des champs. Parce que vous avez copié
$new_title
à$title
, le titre de la page dans la barre du navigateur devrait fonctionner et rien ne devrait se plaindre de manquer titres de nœud.Comme je l'ai dit, c'est un bidouillage - mais cela fonctionnerait. Tenez-moi au courant si vous avez besoin de plus d'informations
la source
page.tpl.php (guirlande)
template.php
la source
Ceci ne s’applique pas à la question Teaser du message original, mais pour les personnes qui tombent sur cela et veulent simplement que cela se produise dans la vue complète, voici une option sans code: affichez le champ dans un bloc (en utilisant vues, par exemple) et placez ce bloc au-dessus de votre bloc de contenu mais dans la même région.
la source
Je pense que vous devriez utiliser des fonctions de pré-traitement dans votre template.php
Et en plus
vider les variables et faire tout ce que vous voulez. ajouter / supprimer / mettre à jour.
la source
J'ai résolu ce problème en utilisant une solution sans code à l'aide de Display Suite et de sa fonctionnalité supplémentaire «Région à bloquer». J'aime cette solution surtout pour sa flexibilité.
Fondamentalement, activez la partie extras "Région à bloquer", activez l'affichage du "Contenu Fulltext" dans Display Suite. (en supposant que vous souhaitiez afficher le contenu au-dessus du titre dans l'affichage du nœud complet, vous pouvez également l'utiliser pour tout autre mode d'affichage, à l' exception du mode Par défaut). Maintenant, dans "Gérer l'affichage" de la partie "Contenu du texte intégral", en bas de l'écran, l'onglet "Bloquer les régions" devrait apparaître. Entrez le nouveau nom du bloc ici, sauvegardez et glissez-déposez les champs désirés dans ce bloc. Enfin, déplacez le bloc nouvellement créé dans l'écran Blocs quelque part au - dessus du titre du nœud.
Vous pouvez voir la vidéo de la même approche ici: http://www.youtube.com/watch?v=y4wyjxyhbNA , bien sûr, vous devez placer le bloc au-dessus du titre (pas dans la barre latérale gauche) à la fin.
la source
Pour les modèles zen, le code ci-dessous fonctionne pour moi.
Pour finir, vous pouvez facilement imprimer votre champ dans page.tpl.php;
la source
Je sais que vous auriez déjà utilisé un thème pour créer et que vous essayez maintenant d’ajouter les champs en haut du titre.
Mes suggestions à tous les développeurs qui construisent un thème sur Drupal 7 consisteraient à utiliser: modules Omega theme + Context et Delta. Cela donne une base très solide pour votre mise en page.
Et flexibilité pour organiser les régions, les blocs et les champs.
la source
Vous pouvez faire ist avec le module panneaux
la source