viewfield ou insert view

Catégories:

Bonjour,

Qui peut m’expliquer la différence entre viewfield et insert view.
en fait je voudrais insérer une vue dans une node et je n’y arrive pas !

Merci
Martine

#

Hello,

Insert_view est un filtre d’affichage. Un filtre permet de modifier le contenu saisi par un utilisateur en enlevant ou en modifiant des éléments pour des raisons de sécurité, ou comme une facilité syntaxique. Par exemple, il y a un filtre - activé par défaut - qui convertit automatiquement les URL et les adresses e-mail en liens cliquables.

Eh bien, insert_view fonctionne selon le même principe, sauf qu’au lieu de rendre les URLs cliquables, il permet de remplacer automatiquement le texte [view:NomDeLaVue] par le contenu d’une vue. C’est à toi de saisir ce texte dans ton contenu à l’endroit où tu veux que ta vue apparaisse.

D’après ce que tu dis, c’est ce module qu’il te faut. Pour l’utiliser, il faut te rendre dans Admin > Formats d’entrée après l’avoir installé. Tu verras alors les 3 formats d’entrée (format d’entrée = plusieurs filtres utilisés ensemble) qu’on trouve par défaut dans Drupal : Filtered HTML, Full HTML et PHP Code. Clique sur le lien «configurer» du format que tu utilises pour ton contenu, et active le fitre insert_view pour ce format.

PS. Le module viewfield fait en gros la même chose que insert_view. La différence c’est que insert_view te permet de faire apparaître une vue n’importe où dans du texte libre, alors que viewfield te permet de faire apparaître une vue dans un champ précis (et suppose que tu aies défini le champ en question avec le module CCK).

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

Bonjour,

J’ai installé insert_view et defini le format.
Une précision, quant à ce que je voudrais faire.
J’ai crée une node avec CCk et par exemple, j’ai un champ
«numero etudiant», je voudrais que une fois le N° saisi, la vue
concernant l’étudiant apparaisse ? est-ce possible ?

et si oui, comment cela se traduit-il au niveau de mon formulaire de saisie.
j’ai essayé en utilisant [view:rechetud1=1=nom du champ que je viens de saisir], aucun effet.
Merci

#

Je n’en suis pas sûr… mais tu pourrais créer un autre champ de type «computed field» dans ton node CCK.

Un champ «computed field» peut contenir une valeur générée à partir du contenu d’autres champs. En gros, il faudra mettre la syntaxe [view:XXX] dans le computed field (attention, il y a une syntaxe bien précise à respecter pour récupérer la valeur des autres champs - cf. http://drupal.org/project/computed_field).

Mais ça ne suffira pas : il faudra ensuite passer le contenu du computed field dans le filtre permettant de remplacer [view:XX] par la vue en question. Pour ça, il faut utiliser la fonction check_markup() qui prend 2 arguments : le texte à convertir et le numéro du format d’entrée à appliquer (1 = Filtered HTML ; 2 = PHP Code ; 3 = Full HTML).

CONCLUSION :

Ton computed field contiendra quelque chose comme :

<?php
check_markup
('[view:XXX]', 3);
?>

Je te laisse affiner la syntaxe exacte pour [view:XXX] sachant que quelque part dans le XXX, il faudra passer en paramètre à la vue le numéro d’étudiant récupéré dans l’autre champ.

Cette solution est moyenne, car tout le code HTML produit par la vue va être stocké dans le computed field. En fait, réflexion faite, je me dis que ça serait plus judicieux de laisser tomber le computed field, et de simplement ajouter ça dans le template de ton node (node-XXX.tpl.php) :

<?php
print check_markup('[view:XXX]', 3);
?>

Toujours en remplaçant le XXX par le code qui va bien. C’est exactement la même logique, mais en plus léger. :)

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

Bonjour et merci de la réponse,

Mais je suis vraiment débutante sous drupal,
et un question bête : où trouve-t-on le node-XXX.tpl.php et comment le modifier….
je suis allée voir ce qui avait dans le «content template» correspondant à mon node et j’avoue n’avoir pas tout compris.
bonne journée.
Martine

#

Les fichiers .tpl.php se trouvent dans le répertoire de thème (l’emplacement exact dépend du thème que tu utilises).

Cela dit, si tu utilises contemplate, tu peux insérer le code que je t’ai indiqué directement dans le contemplate (qui fait office de fichier .tpl.php).

Désolé si mes explications te paraissent courtes, mais pour vraiment te répondre, il faudrait écrire un tuto complet sur le sujet.

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

merci beaucoup, c’est déja bien de me répondre et je vais me débrouiller avec tout ça !
Martine

Syndiquer le contenu