begin process at 2008 08 07 21:50:10
1 223 143 membres
483 nouveaux aujourd'hui
14 227 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Custom tag [ Divers / Général ] (vendrce)

Custom tag le 08/11/2007 11:15:17

vendrce
Bonjour,

je viens d'hétité d'une appli en coldfusion et je dois l'adapter au multilinguisme. Après quelques recherches, je me suis dit que le plus simple était de faire un custom tag qui recevrait 3 parametres :
- file : un fichier xml dns lequel se trouve les traductions
- id :id de l'element que je veux traduire
- lng : la langue

Mais j'ai certains problèmes.
1. Comment fait-on pour que coldfusion reconnaisse mon custom tag. Pour l'instant, j'ai le message suivant : Unknown tag: CFTRANS
2. Comment utiliser mes paramètres dans mon custom tag? Je m'explique. Voici mon code (il n'est pas fini, je cherche). J'aimerais remplacer les string en dur (en gras) par les paramètres (en rouge).
<CFPARAM name="Attributes.lng" default="EN">
<cfif isDefined('Attributes.file') and isDefined ('Attributes.id')>>   
    <cffile action="read"
    file="/ec/prod/app/webroot/external/secure/SANCO/idb/web.xml"     a remplacer par le parametre FILE
    variable="myxml">
   
    <cfscript>
        myxmldoc = XmlParse(myxml);
        selectedElements = XmlSearch(myxmldoc, "/web-app/security-role(ID)/role-name(LNG)"    a remplacer par les parametres I D / LNG);
        for (i = 1; i LTE ArrayLen(selectedElements); i = i + 1)
            writeoutput(selectedElements[i].XmlText & "<br>");
    </cfscript>
</cfif>
Je sais que ces questions doivent sembler basique pour pas mal de gens mais je viens d'un monde PowerBuilder et tout ceci me dépasse un peu pour l'instant.

Merci

Re : Custom tag le 08/11/2007 11:22:48

vendrce
Au fait, j'utilise HomeSite+ 5.5

Re : Custom tag le 08/11/2007 12:29:19

vendrce
Bon, j'ai résolu certains problèmes. Maintenant, j'affiche bien les données se trouvant dans le fichier xml et j'utilise correctement les parametres.

Mais, je suis obligé de mettre mon fichier CFTRANS.cmf dans le répertoire ou se trouve mes cfm qui l'utilisent.
Autre chose, et je ne vois absolument pas pourquoi, mon custom tag semble etre appele 2 fois. En effet, a la place d'avoir mon libellé traduit, je l'ai deux fois.

Exemple, ce code
                <h1>General information</h1>
                <h1><CF_CFTRANS file="/ec/prod/app/webroot/external/secure/SANCO/idb/Translates/IDB-Homepage-Home.xml" lng="FR" id="title"/></h1>
donne :

General information

Informations générales Informations générales


voici le code de mon custom tag
<CFPARAM name="Attributes.lng" default="EN">
<cfif isDefined('Attributes.file') and isDefined ('Attributes.id')>   
    <cffile action="read" file=#attributes.file#  variable="myxml">
    <cfscript>
        myxmldoc = XmlParse(myxml);
        selectedElements = XmlSearch(myxmldoc, "/doc/#Attributes.id#/#Attributes.lng#");
        writeoutput(selectedElements[1].XmlText);
    </cfscript>
</cfif>



Re : Custom tag le 08/11/2007 13:48:33

nickadele
Membre Club
(Admin CS)
Bonjour,

lorsque l'on utilise un module sous forme de customTag il est normal qu'il soit appelé 2 fois :
1. à l'ouverture de la balise
2. à la fermeture de la balise

Pour bien définir un custom tag il faut définir au sein du code ce qu'il faut faire lors de l'appel de l'ouverture ou celui de fermeture comme ci dessous :
<cfif thistag.executionmode EQ "start">
<!--- démarrage du custom tag, c'est ici que l'on récupéreère l'ensemnble des paramètres --->
<cfelse>
<!--- fin du custom tag, généralement c'est ici que l'on renvoie le résultat, éventuellement il peut être agrémenté du contenu qui se trouve entre la balise d'ouverture et de fermeture--->
</cfif>

Pour pouvoir utiliser un autre répertoire (exemple un répertoire reprenant l'ensemble des customtags) il suffit d'utiliser la fonction cfimport :
<cfimport taglib="le path de la librairie" prefix="le nom du préfix, facultatif">

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle

Re : Custom tag le 08/11/2007 14:00:46

vendrce
Super, ca marche

merci beaucoup

Re : Custom tag le 09/11/2007 10:26:15

vendrce
Voici le problème suivant.
J'ai donc bien créé mon custom tag et le fichier xml contenant les traductions. L'entête de mon fichier xml est <?xml version="1.0" encoding="UTF-8"?> car je dois utiliser des caractères de tout types (grecs, bulgares...).
Mais voici ce qui est affiché à l'écran : Informations générales
Il semblerait qu'il y ait un problème avec le CharacterSet. Ou et comment puis-je le changer? Normalement mon browser est capable d'afficher les accents dond je suppose que le problème vient de ColdFucion.


Re : Custom tag le 09/11/2007 19:50:02

nickadele
Membre Club
(Admin CS)
Bonjour,

lors de l'écriture de ton fichier XML, tu dois utiliser la fonction XmlFormat pour insérer des données.

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle

Re : Custom tag le 12/11/2007 08:30:10

vendrce
Je n'écris pas mon fichier xml à partir de coldfusion. Je l'ai créé à la main avec Altova XMLSpy

Re : Custom tag le 12/11/2007 11:29:27

vendrce
C'est bon, j'ai trouvé la solution. Je dois utiliser un ancoding ISO mais le ISO-10646-UCS-2 qui est unicode.

Maintenant, tout fonctionne


Merci encore pour tout


Classé sous : tag, file, id, custom, lng

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS