begin process at 2010 09 03 08:34:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ColdFusion

 > 

Divers

 > 

Général

 > 

Custom tag


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Custom tag

jeudi 8 novembre 2007 à 11:15:17 | Custom tag

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
jeudi 8 novembre 2007 à 11:22:48 | Re : Custom tag

vendrce

Au fait, j'utilise HomeSite+ 5.5
jeudi 8 novembre 2007 à 12:29:19 | Re : Custom tag

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>


jeudi 8 novembre 2007 à 13:48:33 | Re : Custom tag

nickadele

Membre Club Administrateur CodeS-SourceS
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
jeudi 8 novembre 2007 à 14:00:46 | Re : Custom tag

vendrce

Super, ca marche

merci beaucoup
vendredi 9 novembre 2007 à 10:26:15 | Re : Custom tag

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.

vendredi 9 novembre 2007 à 19:50:02 | Re : Custom tag

nickadele

Membre Club Administrateur CodeS-SourceS
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
lundi 12 novembre 2007 à 08:30:10 | Re : Custom tag

vendrce

Je n'écris pas mon fichier xml à partir de coldfusion. Je l'ai créé à la main avec Altova XMLSpy
lundi 12 novembre 2007 à 11:29:27 | Re : Custom tag

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


Cette discussion est classée dans : tag, file, id, custom, lng


Répondre à ce message

Sujets en rapport avec ce message

Comment faire un formulaire et un sous formulaire??? [ par porgy ] bonjour,je souhaite faire un formulaire principal sous format traditionnel et un sous formulaire de type grid reliés par un champs "id". ce champs id crystal report [ par mg_one ] J'ai installé crystal enterprise 8 avec coldfusion serveur. lorsque je lance une page qui appelle un report j'ai le message d'erreru suivant qui s'aff CFOUTPUT ET CFMAIL.... [ par Metrox ] 'lut all,j'ai essayé de faire une page d'action qui envoyait un mail aux personnes trouvées dans la db... cette page se présente comme ça:...<cfmail affichage query sur plusieurs page [ par raf0002 ] Salut à tous,Je veux afficher le résultat d'une query sur plusieurs pages, ma query mesort 9300 enregistrements et je voudrais paginer par paquet de p <INPUT TYPE="FILE" ... valeur initiale? [ par yess ] Salut tlm,Je veux savoir comment je peux forcer une valeur initial à un élément Input de type "File" (ce type n'a pas d'attribut "value" et j'ai essay Valeurs CFPARAM URL.ID [ par zorro699 ] J'ai deux page cfm.La première contient une requete qui affiche le contenu d'une db access2000.SELECT ID, Titres,"Date", introFROM ModeWHERE ID = #URL urgent...pb tres bete avec un form [ par peejee ] Bonjour a tous, j'ai un probleme avec un formulaire.Je vs explique.....Je crée un formulaire sur ma page accueil.cfm dans lequel se trouve le cfselect Troublant et agaçant... [ par smathios ] Bonjour,Je fais afficher dans un tableau les enregistrements récupérés dans ma base de données.Jusqu'ici , aucun problème.Par exemple, je fais affiche Tester une valeur avec CF ? [ par aresh ] Bonsoir à tous ,J'ai un petit soucis. J'ai une jolie base de donnée, avec 300 entrée environs, mais dans la structure, il y a des "trou" (certainne li Nom d'attribut d'une requette dans un srtring [ par xenlo ] bon[jour/soir] J'ai un problème pour récupérer le resultat d'une requette, parce que le nom des champs(attributs) se trouvent dans une variable strin


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales