web-dev-qa-db-fra.com

Ajout d'un jeton au titre d'un bloc de vues

J'affiche des blocs de vue sur une page. Le contenu est filtré en passant le nid de l'URL dans un php personnalisé. Je souhaite modifier le titre du bloc pour utiliser un champ du nœud en question. Est-ce possible?

6
Lucy

Pour les vues 3, les réponses données sont partiellement incorrectes. Les jetons sont autorisés dans la zone d'en-tête des blocs de vue. Les seuls jetons disponibles sont pour les champs utilisés dans la vue. Vous pouvez donc définir le champ qui sera utilisé uniquement pour que son jeton soit masqué.

Vous devez sélectionner l'option Global: Zone de texte dans En-tête, cocher tiliser des jetons de remplacement dans la première ligne et sélectionner le jeton dans le - Modèles de remplacement liste déroulante.

4
Vodkasniffer

Dans la version actuelle de Views (3.14), vous pouvez écrire des jetons dans le titre de la vue.

Il ne le dit pas dans les messages d'aide, mais je l'ai testé sur https://simplytest.me et cela a fonctionné.

Vous pouvez voir les noms de jetons disponibles en sélectionnant le dernier champ et en activant Rewrite the output of this field et dépliant Replacement patterns.

Je ne pense pas que cela soit possible à partir de l'interface utilisateur des vues.

Vous pouvez le faire en créant le titre à l'aide de [theme_name]_preprocess_block accrochez votre thème. Vous pouvez également définir le titre du bloc dans un hook de prétraitement pour la vue, mais je ne sais pas lequel utiliser.

1
googletorp

Ce n'est pas possible car les vues ne vous permettent pas d'utiliser des jetons.

Cela étant dit, il est techniquement réalisable. Lorsque vous dites que vous passez le nid dans un php personnalisé. Que voulez-vous dire? La vue utilise-t-elle le nid comme argument? ou renvoyez-vous autre chose.

La vraie question est de filtrer le contenu par champ? Si vous êtes passé à passer le nid, à faire un chargement de nœud, puis à filtrer sur ce champ, cela est en effet possible. Je suppose que c'est ce que tu fais. J'ai peut être tort.

Si vous êtes en train de filtrer le champ, alors lorsque vous éditez l'argument, vous verrez qu'il y a une option pour remplacer le titre. Vous devriez pouvoir utiliser% 1 ou% 2 selon quel argument est la valeur du champ.

Notez que je fais beaucoup d'hypothèses sur cette réponse. Encore une fois, cela n'est possible que si la valeur sur laquelle vous filtrez est le champ.

1
ericduran

Je comprends que chaque vue renvoie un seul nœud affiché dans un bloc et que vous souhaitez modifier le titre de ce bloc. Vous pouvez facilement le faire avec une astuce :).

  • Construisez votre vue avec tous les champs dont vous avez besoin, ne lui donnez pas de titre
  • Sélectionnez le champ de titre du nœud et sélectionnez "réécrire la sortie", placez le jeton de champ dans la zone de texte avec <h2>: <h2>[field_FIELDNAME_value]</h2>
  • Ne mettez pas de titre sur votre bloc avec <none>

Normalement, avec cela, vous devriez voir votre bloc avec le titre du nœud renvoyé par votre vue comme un titre de bloc en raison de la présence du <h2>, un peu plus de CSS à peaufiner et vous avez terminé.

0
tostinni

C'est facile. Dans le titre du bloc, vous n'avez qu'à ajouter le jeton, que si, évidemment, ce champ doit exister dans votre vue, réécrivez la sortie du champ pour pouvoir obtenir le nom du jeton et copiez et collez le titre du bloc .

0
Rafa