Voir la version complète : Comment faire appel à une fonction dans un template ?
icecube3
11/04/2004, 11h55
Bonjour :025:
Je souhaiterais modifier le template "navbar" où on peut voir l'utilisateur sous lequel vous êtes connecté.
<!-- clubs gérés -->
<if condition="$irbmanageur['clubid']">
Vous gérez liens_lienversclub($irbmanageur['clubid']).<br />
Caisse : club_credits($irbmanageur['caisse']) Cr.
</if>
<!-- / clubs gérés -->
mais évidemment ça ne marche pas, on voit juste affiché le nom de la fonction appelée.
est-il possible que ces deux fonctions soient évaluées (en php) ?
Merci d'avance :026:
Il faut que tu definisse ces variables en php je ne vois pas le problèmes !
icecube3
11/04/2004, 13h11
La variable tableau $irbmanageur est bien définie, et les fonctions liens_lienversclub() et club_credits() aussi, le problème, c'est que vbulletin interprète ça comme un texte, pas comme une fonction php :confused:
On obtient : "Caisse : club_credits(1) Cr."
J'ai essayé les brackets { }, rien n'y fait !
On obtient : "Caisse : {club_credits(1)} Cr."
En regardant les templates originaux de vbulletin, j'ai remarqué ce code :
<phrase 1="..." 2="...">$vbphrase[...]</phrase>
mais je ne comprends pas comment ça marche :o
merci d'avance :p
Pitchoune
11/04/2004, 13h26
1=... correspond à {1} d'une autre vbphrase, pareil pour 2...
Exemple (template postbit) :
<phrase 1="$post[username]">$vbphrase[xs_avatar]</phrase>
xs_avatar => "Avatar de {1}"
$post[username] => valeur prise directement de showthread.php
Aussi, dans les pages PHP, tu peux faire un construct_phrase pour créer un ebsemble aussi :
construct_phrase($vbphrase[phrase_a_afficher], $valeur_1, $valeur_2);
Dans ce cas, phrase_a_afficher => "N'importe {1} texte avec {2} variables"
$valeur_1 et plus peuvent être une vbphrase ou une variable.
icecube3
11/04/2004, 14h34
Merci Pitchoune, donc apparemment on ne peut pas s'en servir pour appeler une fonction php dans un template :(
c'est donc impossible ?
Ben suffit de définir les variables dans le fichier php avant l'appel du template.
icecube3
11/04/2004, 20h36
Mais les variables sont bien définies, puisque :
club_credits($variable) devient club_credits(1)
donc la variable $variable est bien interprétée et elle est remplacée par sa valeur "1".
Le problème vient des fonctions : en effet vB n'interprète pas club_credits(1),
une fonction que j'ai définie et qui retourne une chaîne de caractères.
En gros, c'est comme si je voulais afficher la chaîne de caractère :
$chaine = "du texte avec une fonction() au mileu";
et au lieu d'interprèter fonction() comme une fonction et la remplacer par sa valeur de retour, vB l'affiche comme si c'était du texte.
Si on était dans un script php, on ferait :
$chaine = "du texte avec une " . fonction() . " au mileu";
mais dans un template ce n'est pas possible.
Vous voyez ce que je veux dire ? :crazy:
C'est pour ça qu'il faut définir une variable ($truc=club_credits($variable);) dans le fichier php avant l'appel du template et puis appeler ensuite cette variable dans le template ($truc).
icecube3
11/04/2004, 21h58
Désolé, j'avais pas compris :055: :o
Merci Akex :026: :026:
vBulletin® v.3.8.0 Beta 4, Copyright ©2000-2008, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org