IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Obtenir de xslt qu'il affiche une variable php sans l'interpréter


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut Obtenir de xslt qu'il affiche une variable php sans l'interpréter
    Tout est un peu dans le titre.

    Quelle est la syntaxe pour que dans la ligne suivante (sous xsl-t) $lec soit simplement affiché et non interprété par xslt qui dans ce cas, me renvoie null et refuse de compiler.

    J'ai bien essayé \$lec... mais ça n'est pas ça...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a class="lec" href="index.php?total=journal{$numéroJournal}" title="Lire tout le journal sans interruption"><img class="clic" src="templates/<?php echo $lec ?>"/></a></td>
    Merci du ptit coup de pouce...

    S'il vous plaît (pitié ) ne me renvoyez pas à une faq où un tuto, je démarre en php, d'ailleurs je démarre tout court dans l'informatique, et je ne souhaite pas m'initier maintenant à xsl-t (plus tard sans doute ceci dit, car la liberté qu'offre ce langage fait envie)...

    Juste une info de syntaxe vite fait bien fait... pour que je puisse avancer dans mon php par ailleurs...

    Merci d'avance...

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    xslt interprète ce qu'il y a entre les accolades, tu peux donc les virer si tu veux pas d'interprétation dans le contexte xslt.

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Quand tu dis accolades...

    Tu veux dire ce type de balises qui enserrent le code ?
    </xsl:result-document>
    </xsl:template>

    Que je devrais donc fermer puis rouvrir en plein milieu de mon template, juste pour immiscer le "<?php echo $truc ?>" ?

    Je sais que normalement, accolade signifie ça : '{}', mais il se trouve que dans ce cas, mon $truc n'est pas enserré dans des accolades...

    Y a pas moyen de "désactiver" l'interprétation xsl-t du $truc d'un simple signe ?

    En fait, c'est un ami qui programme en xsl-t qui m'avait fait ce joli template et vu que je vais réformer mon site, je réforme son template selon mes nouveaux besoins... Y a que ça qui coince... pour le reste, j'ai bien pigé la structure, fort intéressante et récursive du code xsl-t : D'abord le schéma général de la page, ensuite la boucle des trois lignes de code que je souhaite répéter une cinquantaine de fois : En l'espèce, chaque <tr> d'un tableau, comprenant pour chaque article 3 <td>, deux images cliquables puis le titre de l'article...

    Jusque-là, tout marche très bien...

    Là où je coince, c'est qu'il se trouve qu'en plus, j'ai absolument besoin d'introduire une variable php dans ces lignes intérieures à la boucle, pour appeler les liens images cliquables de grosseur différentes selon la feuille de style alternative choisie (site dédié au handicap visuel).

    Enfin, je ne peux pas mettre cette image dans la feuille de style idoine direct, vu qu'il faut dans tous les cas qu'il reste des liens cliquables pour les synthèses vocales ou plage braille...

    Voilà, vous savez tout, c'est pas un caprice de p'tite fille quoi...

    Je peux pas avancer dans mes feuilles de style alternatives tant que je ne peux pas pondre des html légèrement différents selon la feuille de style appelée...

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Je parlais pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="lec" href="index.php?total=journal{$numéroJournal}"
    Sinon , c'est php qui te l'interprete.
    Il faut bien distinguer les 2 traitements, les variable php n'en sont plus du point de vu xslt.

  5. #5
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Bon reprenons...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a class="lec" href="index.php?total=journal{$numéroJournal}" title="Lire tout le journal sans interruption"><img class="clic" src="templates/<?php echo $lec ?>"/></a></td>
    Dans cette ligne, la seule variable concernée par mon problème est (à la fin de la ligne $lec dans la balise php...

    Et bien sûr, quand j'essaie de produire mon document php, ça ne s'éxécute pas, car (à ce que je comprends) xslt interprète le $lec comme une variable de chez lui...

    C'est ça que je voudrais neutraliser... Simplement ça...

    Le reste, c'est bien des variables xsl-t...

  6. #6
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    erf, à force de bidouiller, je suis parvenue à résoudre mon problème...

    J'ai l'impression que je me faisais des noeuds dans la tête pour rien...

    DOH !

    Il suffisait de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img class="clic" src="$lec"/>
    Et à ma charge dans mon code php, de donner la valeur adhoc au $lec, à savoir, le bon chemin vers le bon .gif, en fonction de la feuille de style sélectionnée via le bon cookie...

    Non mais quelle truffe je fais des fois !

  7. #7
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Bouh... c'est pas bon ma solution prétendument express...
    J'ai coché trop vite résolu... Partez pas, c'est pas fini en vrai...

    Parce qu'à l'arrivée dans mon php, comme j'ai "$lec" ou "$tel" avec les guillemets, cette fois, c'est php qui n'interprète pas les variables que je lui envoie comme les siennes, et me les affiche bêtement sans agir dessus...

    Aidez-moi, ouin...

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Il faut que tu détermines dans ton architecture l'ordre de tes transformation.
    En général la transformation php précédente celle de xsl-t qui ne fait que de la mise en forme, mais l'inverse est possible.
    Tout ce qui est entre <?php ?> est interprété par php, en xsl-t c'est plus complexe à déterminer, il y a les accolades mais aussi les balises <xsl:... >.

  9. #9
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Si je comprends bien ce que tu dis, ce n'est donc pas une question d'échappement d'une variable pour le code xsl-t, mais dès le départ du code xsl-t, le passage de deux variables php... Si c'est la seule façon... Je m'y colle.

    J'ai pu qu'à aller feuilleter le grand manuel alors...

  10. #10
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Bonjour, c'est encore moi... qui ronge toujours le même os...

    Quelques heures de réflexion plus tard, je vais reformuler comme ceci ma question... qui devrait être simple pour les xsl-tistes que vous êtes.

    Dans la feuille de sortie xslt :
    quelle est la syntaxe pour définir une variable xslt de simple affichage :

    du genre :

    $php1='<?php echo $lec ?>'
    $php2='<?php echo $tel ?>'

    J'ai bien essayé ceci :

    <xsl: variable name='php1' as='xs:string' select='<?php echo $lec ?>'/>

    mais ça ne fonctionne pas... et quand je lance ça dans ma fenêtre de commande, il me renvoie un message disant que la variable doit être suivie d'un '='...

    Merci de me répondre... Si je parviens à ça, je saurai parfaitement me dépatouiller du reste, puisqu'après, je gère tout sous php...

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name="php1" select="'<?php echo $lec ?>'"/>
    devrait fonctionner.

  12. #12
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut


    Merci de persévérer à m'aider Morbo, mais non, je te mets le message d'erreur à la compilation. Bien entendu j'ai vérifié, la ligne 58 est bien celle de ta proposition de code...

    Peut-être cela t'aidera-t-il ?

    Bon enfin, ça ne m'a pas empêché de mettre en ligne mon site rénové, mais j'ai fait beaucoup de choses "à la main"...

    Et en ce qui concerne notre affaire, j'ai renoncé à changer les icones de clic (lecture et téléchargement) selon la feuille de style choisie... C'est pas dramatique, mais assez peu logique... Pour un amblyope, les icônes sont un peu riquiquis...

    Et j'aimerais améliorer l'affaire... en utilisant la feuille xslt de mon ami (qui est parti en vacances... sinon c'est lui que j'embêterais)...

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    J'y avais pas pensé, mais c'est vrai que je peux pas mettre de '<' ou '>' dans le select sans les encoder.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name="php1" select="'&lt;?php echo $lec ?&gt;'"/>
    Comme ça devient alors moins lisible, il y a peut être une autre syntaxe valide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name="php1"><?php echo $lec ?></xsl:variable>
    D'un autre coté je pensais que le traitement php se faisait en amont du xslt, auquel cas les balises php ne devraient plus exister au moment où le xsl-t s'execute et tu n'aurais pas pu avoir l'erreur que tu me montres.
    Si c'est le xsl-t qui est en amont du php, il ne peut utiliser des variables qu'aurait renseigné le php.
    Cette approche semble donc impossible.
    Ma question sur ton architecture tient toujours .

  14. #14
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    J'entends bien ta question de fond...

    Mais disons que dans la pratique, ça c'est déroulé ainsi :

    Je fais un site en ne sachant faire... que html et css...

    Un ami bienveillant et xslt-iste me pond un code personnalisé pour que je sorte ma feuille html en un clin d'oeil chaque semaine via ma fenêtre de commande windows...

    Entre temps, je "grandis" et j'apprends php...

    Enfin, je commence à apprendre php...

    Alors probablement qu'à terme, je sortirai ma feuille intégrale sous php... et me passerai des bons services du code xsl-t...

    Pour l'instant, j'en suis à un stade un peu mutant, où je demande à ma feuille xslt de faire des trucs pas casher... comme me renvoyer en sortie des balises php...



    Promis, au bout, je fais ça bien...

  15. #15
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Alors on passe aux tests...

    Y a du progrès !

    Ta méthode 1 compile et donne ça à l'arrivée dans la page .php :

    &lt;?php echo $lec ?&gt;

    Je tente ta méthode 2...

  16. #16
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    C'est peut-être moi qui débloque pour la 2...

    <xsl:variable name="php1"><?php echo $lec ?></xsl:variable>
    <xsl:variable name="php2"><?php echo $tel ?></xsl:variable>

    Pour la 1, je savais comment la déclarer, puis comment la convoquer...

    Pour la méthode ci dessus, toutes mes tentatives échouent...

    Bon, je crois que j'ai assez abusé de ta patience... ça va rester comme ça épicétou...

    En tout cas, merci pour ta gentillesse Morbo, quand je me mettrai au xsl-t, puisqu'il paraît que c'est l'avenir du web, quoiqu'en pense Microsoft, dixit mon pote... je reviendrai par ici...


  17. #17
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Utilise la méthode 1, mais pour décoder les valeurs en sortie utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="$php1" disable-output-escaping="yes"/>

Discussions similaires

  1. afficher une variable php dans du javascript
    Par Mut dans le forum Langage
    Réponses: 8
    Dernier message: 08/06/2011, 01h11
  2. [CS5] Loadvars, afficher une variable php dans Flash
    Par marcell dans le forum Dynamique
    Réponses: 0
    Dernier message: 22/09/2010, 14h48
  3. Afficher une variable php dans un champs texte dynamique contenu dans un clip
    Par yuyuboy dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 06/01/2010, 18h55
  4. Afficher une variable php avec un select
    Par HwRZxLc4 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 28/02/2008, 15h49
  5. afficher une variable php
    Par pimpmyride dans le forum Flash
    Réponses: 1
    Dernier message: 28/08/2006, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo