Transformation d'un .xsl (month-Full-year, etc)

Une question, un bug ?
Répondre
weather
Membre
Messages : 92
Inscription : mer. févr. 04, 2009 11:34 am
Contact :

Transformation d'un .xsl (month-Full-year, etc)

Message par weather »

Bonjour, bonsoir,
Dans les fichiers xxx.xsl, j'ai ajouté une param (qui peut aussi être une variable) qui me permet
par la suite de faire des tes conditionnels. Jusque là, no pb, les tests fonctionnent OK.

Problème: J'essaye de modifier dynamiquement ce param ou variable depuis le script de
MyGraphW.php qui génère les stats. Je sais que cela est faisable depuis un script php,
j'ai donc fait:

Code : Tout sélectionner

$xh = xslt_create();
//Création des paramètres
$param = array( 'lang' => 'en', );
//Transformation
echo xslt_process($xh, $xmlfile, $xslfile,  NULL ,NULL, $param  ); //$xmlfile, $xslfile  path vers les fichiers xml et xsl.
//Nettoyage des ressources
xslt_free($xh);  
Et cela ne fonctionne pas...

Testé en serveur interne (wamp), l'extension xsl est activée of course...

Antoine ou un autre os court... :!:

Cordialement @ tous.

-= weather =-
Image
.......... updated each 30 minutes .........
Logiciels: VWStation: 14.0p87 | GW : 2.0.281b | VWSql : 2.0 | WXsim : ?????
FTPGetter : 3.19.0.83 | StartWatch : 1.1.1.144 | AdvancedTaskScheduler : 1.5b0446
OS: Windows XP SP2 | Station VantagePro 2 ventilée, UV, RadSol, LinkPro IP
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par jturlier »

Bonsoir weather,
Peux-tu donner ce que tu as exactement dans $xmldata ?
A bientôt
Jean
weather
Membre
Messages : 92
Inscription : mer. févr. 04, 2009 11:34 am
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par weather »

Msieur Jean Bonsoir.

Heuuuh. J'ai pas compris la question...!!! Je répondrai... Stéphanie de Monaco...!!!

Je n'ai pas de $xmldata dans cette proc...

Cordialement @+

-= weather =-
Image
.......... updated each 30 minutes .........
Logiciels: VWStation: 14.0p87 | GW : 2.0.281b | VWSql : 2.0 | WXsim : ?????
FTPGetter : 3.19.0.83 | StartWatch : 1.1.1.144 | AdvancedTaskScheduler : 1.5b0446
OS: Windows XP SP2 | Station VantagePro 2 ventilée, UV, RadSol, LinkPro IP
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par TiToine »

Désolé je ne suis pas assez calé en XSL pour t'aider.
Peut-être il y a moyen de le faire directement ce que tu veux dans le XSL et non pas via un traitement PHP.
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par jturlier »

weather a écrit :Je n'ai pas de $xmldata dans cette proc...
Excuse moi :oops: $xmlfile

Par contre Johnny Haliday serait mieux que Stéphanie de Monaco ... mais je sais bien que tu es chauvin et que tu préfères les vedettes locales !

Cordialement, et encore désolé !

Jean
weather
Membre
Messages : 92
Inscription : mer. févr. 04, 2009 11:34 am
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par weather »

Le plus simple c'est d'aller voir sur le site "en développement" à:
http://meteoturbie.net/fr/?pg=113&pglin ... wstats.php

Jean, J'ai terriblement hésité... Mais je me suis dit que:
$xmlfile pour le fichier xml appelé et
$xslfile pour le fichier xsl, cela sonnait pas trop mail... :wink:

Et puis c'est mieux que Stéphanie de Monaco... :wink:

Et je cherche toujours à modifier cette var $lang dans le fichier
xsl pour pouvoir localiser l'affiche.

Ma solution évite le double upload des stats de GW et gagne en bandwith... :!:

La suggestion précédente des cookies est sympa mais pose des
problèmes de stabilité. Nous ne sommes pas sans savoir qu'une fois
les headers appelés, il n'est pas possible d'ajouter ou modifier un cookie.
En réalité cela fonctionne quand même, mais ce n'est pas béton.

Comme j'ai toujours /en/ ou /fr/ dans l'url, il m'est facile de le détecter
et au sein de MyGWsats.php, c'est là qu'il semble le plus possible
d'affecter la var $lang dans le fichier xsl.

Tests et rapports de cette page du site, bienvenus, les données sont à jour
et updatées régulièrement.

Cordialement @ tous.

-= weather =-
Image
.......... updated each 30 minutes .........
Logiciels: VWStation: 14.0p87 | GW : 2.0.281b | VWSql : 2.0 | WXsim : ?????
FTPGetter : 3.19.0.83 | StartWatch : 1.1.1.144 | AdvancedTaskScheduler : 1.5b0446
OS: Windows XP SP2 | Station VantagePro 2 ventilée, UV, RadSol, LinkPro IP
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par jturlier »

Salut weather,
Au vu de l'exemple du manuel PHP, il semble que le nom du fichier doive être passé dans une array en tant qu'argument ... donc comme je n'ai pas testé, je ne peux rien te garantir !
Tu passes aussi tes autres arguments naturellement
$arguments = array('/_xml' => $xmlfile , 'lang'=>'en');
Ensuite, ta ligne xslt_process devrait avoir cette forme :
echo xslt_process($xh, 'arg:/_xml', "$xslfile", NULL, $arguments);

Si tu n'y arrives pas ainsi, tu as toujours la possibilité de faire un copy de ton fichier "en_day.xsl" ou "de_day.xsl" ou autre en day.xsl comme ça tu n'as même pas à jouer avec les fonctions xslt.
Il ne devrait pas y avoir de risque de contention entre différents clients : Les fichiers xsl sont tellement petits que le temps de copie est quasiment nul. Si tu as des craintes, tu peux toujours utiliser un verrou flock()

De cette manière, tu n'as pas de double upload, c'est toujours le fichier xxx.xsl (xxx day, month ou year) qui est utilisé, mais tu changes son contenu... je sais ce sont des manières de voyou :wink: elle est pas belle la vie !

Jean
weather
Membre
Messages : 92
Inscription : mer. févr. 04, 2009 11:34 am
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par weather »

Msieur Jean,

J'ai envoyé un MP sans succès...

Merci de me communiquer les pages où l'on trouve
$arguments = array('/_xml' => $xmlfile , 'lang'=>'en'); etc,

Pour le reste j'ai peur que ce soit faux.... :?

En effet ce sont les .xml que nous ne contrôlons pas qui appellent les .xsl
Nous n'avons donc pas le choix.... :!:

Pour l'instant je patauge pour une solution viable, mais on y arrivera?

Cordialement @ tous.

-= weather =-
Image
.......... updated each 30 minutes .........
Logiciels: VWStation: 14.0p87 | GW : 2.0.281b | VWSql : 2.0 | WXsim : ?????
FTPGetter : 3.19.0.83 | StartWatch : 1.1.1.144 | AdvancedTaskScheduler : 1.5b0446
OS: Windows XP SP2 | Station VantagePro 2 ventilée, UV, RadSol, LinkPro IP
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par jturlier »

Je viens de répondre à ton MP,
weather a écrit :En effet ce sont les .xml que nous ne contrôlons pas qui appellent les .xsl
Nous n'avons donc pas le choix.... :!:
C'est bien pour cela que si tu renommes temporairement, le temps du traitement de MyGWstats les xsl "langage" avec le nom appelé par le xml ça devrait fonctionner. (ou alors je n'ai rien compris !)
Ca ne te plaît pas comme idée ? je vais quand même essayer de tester XSLT.

A+
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par jturlier »

weather a écrit :$arguments = array('/_xml' => $xmlfile , 'lang'=>'en');
Chargement d'une array :
$argument = array("foo" => "bar", 12 => true);

Utilisation de $argument
echo xslt_process($xsltproc, 'arg:/_xml', "$path/$xsl", NULL, $arguments);

Source : http://www.manuelphp.com/php/function.xslt-create.php

Je viens juste de comprendre ! :idea: :idea: :idea: :!: :!: tu veux modifier, à l'intérieur d'un seul fichier xsl, le texte correspondant à une langue !!
Ma proposition, plutôt que de faire ça c'est d'avoir autant de fichiers xsl que de langues et de renommer celui que tu veux en day.xsl ou autre
L'avantage que cela présenterait, c'est de ne jamais avoir à revenir sur le fichier de base quand tu ajoutes une langue
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par jturlier »

Pour info,

ce n'est peut-être pas beau, mais ça fonctionne :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>sans titre 1</title>
</head>

<body>
<?php copy("day_en.xsl","day.xsl");?>
<div style="height: 1350px; width: 920px; border: 1px solid #ccc; margin-top:10px">
<iframe style="height:100%; width:100%;" border="0" frameborder="0" scrolling="no" src="<?php echo "2010/12/2010_12_06.xml"; ?>">
</iframe>
</div>
</body>
</html>


Je regarde maintenant le XSLT

Jean
weather
Membre
Messages : 92
Inscription : mer. févr. 04, 2009 11:34 am
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par weather »

Bonjour,

L'idée était intéressante mais ne peut fonctionner car:

Code : Tout sélectionner

<?php copy("day_en.xsl","day.xsl");?> 


Si le fichier de destination dest (day.xsl) existe déjà, il sera écrasé. So, no good...!

Je continue à creuser. Mais je commence @ avoir des ampoules... :?

Cordialement @ +

-= weather =-
Image
.......... updated each 30 minutes .........
Logiciels: VWStation: 14.0p87 | GW : 2.0.281b | VWSql : 2.0 | WXsim : ?????
FTPGetter : 3.19.0.83 | StartWatch : 1.1.1.144 | AdvancedTaskScheduler : 1.5b0446
OS: Windows XP SP2 | Station VantagePro 2 ventilée, UV, RadSol, LinkPro IP
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par jturlier »

Déjà debout Weather ?

En fait si ça fonctionne, puisque le fichier day.xsl est TOUJOURS écrasé par celui qui est nécessaire. Les xml une fois chargés ne font plus appel aux xsl, donc ceux-ci pourraient même disparaître que ça ne changerait rien. L'important, c'est d'avoir le bon au moment où on en a besoin, c'est à dire au chargement pas 8 jours plus tard.
Mais tu ne peux pas en avoir un par défaut qui serait toujours là en cas de besoin. Si tu veux le français eh bien il faut le charger avant d'appeler le XML.

J'ai testé pour voir et c'est correct.

CDLT

Jean
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par jturlier »

Bonjour,
faisant suite à l'idée de Weather, qui m'avait paru très intéressante et donc pour ceux qui seraient intéressés, je tiens à leur disposition un modèle de script PHP ainsi que les modifications correspondantes d'une feuille XSL pour générer les pages de stats dans des langues différentes, et ce à partir d'un seul répertoire statistics.
Il remplace la suggestion de copie de fichiers que j'avais faite précédemment, qui fonctionne mais est sans doute moins stable.
Ce script a été réalisé en utilisant les fonctions XSLTProcessor qui font partie intégrante de PHP5.1, à condition d'activer l'extension php_xsl.
Je laisse l'application de ce script dans MyGWstats à ceux qui seraient intéressés à faire du multilingue !

Quand j'aurais un moment, je regarderai s'il existe la possibilité de faire la même chose en javascript pour appliquer à calmsimple.htm

Jean
weather
Membre
Messages : 92
Inscription : mer. févr. 04, 2009 11:34 am
Contact :

Re: Transformation d'un .xsl (month-Full-year, etc)

Message par weather »

A Jean,

Boite email saturéee... :evil:

@ +

-= weather =-
Image
.......... updated each 30 minutes .........
Logiciels: VWStation: 14.0p87 | GW : 2.0.281b | VWSql : 2.0 | WXsim : ?????
FTPGetter : 3.19.0.83 | StartWatch : 1.1.1.144 | AdvancedTaskScheduler : 1.5b0446
OS: Windows XP SP2 | Station VantagePro 2 ventilée, UV, RadSol, LinkPro IP
Répondre