XML XSL propriété text indent sur plusieurs lignes... - XML/XSL - Programmation
Marsh Posté le 05-01-2011 à 13:55:04
Citation : Sachant que je n'ai pas le droit de toucher au style |
Ben tu as droit de toucher à quoi alors?
A+,
Marsh Posté le 05-01-2011 à 15:22:32
ReplyMarsh Posté le 05-01-2011 à 20:01:49
Torlik a écrit : ba à tout sauf ça ... |
Vachement explicite, ça!
Tu as combien de fichiers, qui contiennent quel type de données, et lesquels peux tu modifier?
A+,
Marsh Posté le 06-01-2011 à 19:47:20
j'ai l'impression que mon premier post n'a servi à rien si tu me poses cette question. Je ne suis peut-être pas très clair. Quoi qu'il en soit ici tu as tous les fichiers.
Et mon but est de décaler tout le texte du premier rectangle bleu-ciel vers la droite afin qu'il soit aligné pas un simple text-align:right sans toucher aux variables du XSL.
Il y a un petit bug au niveau des rectangles sous FF donc si vous avez IE mieux vaut regarder avec ce dernier.
Marsh Posté le 08-01-2011 à 02:21:56
Bon, tout ce que je peux te dire, c'est que:
Si tu pars du html généré actuel (qui ne te convient pas) et que tu le transformes (a coup d'ajout de div et/ou de style css local) en un html qui te convient [et ça, je n'ai pas l'intention de m'en occuper, car cela relève du design html], il doit y avoir moyen, en modifiant le XSL, d'obtenir le html qui te conviendrait, et je peux peut être t'aider à déterminer la modification du XSL (mais seulement si je connais le html d'arrivée). Maintenant, savoir si le transformation du XSL est de celles que tu peux faire, je n'ai pas d'idées la dessus, puisque je ne sais toujours pas ce que tu peux modifier.
Clairement, le html généré actuel, qui ne te convient pas, est:
<div style="margin-top:5px; padding:5px; font-size:15px; text-indent:50%; background-color:#DBFCFF;width:70%;">
Surcouf<br></br>15 avenue du Général de Gaulle<br></br>06 55 95 73 77<br></br>
</div>
A+,
Marsh Posté le 10-01-2011 à 15:23:11
Ok alors tu peux me dire ce que je devrais modifier le xsl ?
Marsh Posté le 10-01-2011 à 15:50:16
Uniquement quand tu auras pondu un style final qui va comme tu veux.
Le xsl, il va permettre de générer ce style final, mais si je ne sais pas ce qui doit être généré au final, je ne peux pas écrire le xsl qui va le générer.
Actuellement tu as ça:
<div style="margin-top:5px; padding:5px; font-size:15px; text-indent:50%; background-color:#DBFCFF;width:70%;">
Surcouf<br></br>15 avenue du Général de Gaulle<br></br>06 55 95 73 77<br></br>
</div>
Qu'est ce que tu devrais avoir à la place pour que ce soit placé comme tu veux? (tu as pas le droit de modifier le div global, mais tu peux rajouter des divs avec des propriétés style autour des autres morceaux de texte).
En jouant un peu avec le code généré, un truc comme ça a l'air de coller sous chrome:
<div style="margin-top:5px; padding:5px; font-size:15px; text-indent:50%; background-color:#DBFCFF;width:70%;">
<div style="text-indent:71%;">Surcouf</div><div style="margin-top:5px; text-indent:71%;">15 avenue du Général de Gaulle</div><div style="margin-top:5px; text-indent:71%;">06 55 95 73 77</div><div style="margin-top:5px; text-indent:71%;"></div>
</div>
mais je suis pas la pour savoir à ta place ce qu'il faut avoir visuellement.
Pour obtenir ce dernier truc, il faut faire plusieurs choses:
Se créer deux style supplémentaire:
<xsl:variable name='styleSupp1'>text-indent:71%;</xsl:variable>
et
<xsl:variable name='styleSupp2'>margin-top:5px; text-indent:71%;</xsl:variable>
Se créer deux templates supplémentaires:
<xsl:template name="Temp1">
<xsl:param name="elt"/>
<div style="{$styleSupp1}"><xsl:value-of select="$elt"/></div>
</xsl:template>
et
<xsl:template name="Temp2">
<xsl:param name="elt"/>
<div style="{$styleSupp2}"><xsl:value-of select="$elt"/></div>
</xsl:template>
et enfin remplacer
<xsl:template match="OrgDestinataire">
<xsl:value-of select="Nom"/>
<br></br>
<xsl:value-of select="Adresse"/>
<br></br>
<xsl:value-of select="Tel"/>
<br></br>
<xsl:value-of select="Fax"/>
</xsl:template>
par
<xsl:template match="OrgDestinataire">
<xsl:call-template name="Temp1"/>
<xsl:with-param name="elt" select="Nom"/>
</xsl:call-template>
<xsl:call-template name="Temp2"/>
<xsl:with-param name="elt" select="Adresse"/>
</xsl:call-template>
<xsl:call-template name="Temp2"/>
<xsl:with-param name="elt" select="Tel"/>
</xsl:call-template>
<xsl:call-template name="Temp2"/>
<xsl:with-param name="elt" select="Fax"/>
</xsl:call-template>
</xsl:template>
Il y a probablement moyen de simplifier ça un peu avec une seule nouvelle template au lieu de 2, etc, mais ce qui est fait serait présenté de manière moins claire.
Noter aussi que si tu avais le droit de modifier
<div style="{$styleDestinataire}">
<xsl:apply-templates select="OrgDestinataire"/>
</div>
Il y aurait peut être moyen de faire plus simple, mais comme tu n'as pas réussi à me dire ce que tu pouvais modifier...
Noter que si tu ne peux pas modifier le
<xsl:template match="OrgDestinataire">
<xsl:value-of select="Nom"/>
...........
(modification dont je ne sais toujours pas si elle est permise) alors c'est très mal barré.
A+,
Marsh Posté le 12-01-2011 à 01:51:56
Merci pour les explications.
Si je te dis :
Que je voudrais que ce texte :
"15 avenue du Général de Gaulle
06 55 95 73 77"
Soit aligné sous "Surcouf". Car le style text-indent ne s'applique que sur "Surcouf" et pas le reste.
Ensuite, tu as le fichier commande.xsl et tu peux modifier tout ce que tu veux dans ce fichier sauf les variables existantes à savoir de la ligne 5 à la ligne 17. Tu peux en revanche en rajouter.
J'espère que j'ai parlé français et que tu as compris ?
Marsh Posté le 12-01-2011 à 04:55:20
Si tu avais un minimum testé l'exemple de style
<div style="margin-top:5px; padding:5px; font-size:15px; text-indent:50%; background-color:#DBFCFF;width:70%;">
<div style="text-indent:71%;">Surcouf</div><div style="margin-top:5px; text-indent:71%;">15 avenue du Général de Gaulle</div><div style="margin-top:5px; text-indent:71%;">06 55 95 73 77</div><div style="margin-top:5px; text-indent:71%;"></div>
</div>
que j'ai essayé, à la place du
<div style="margin-top:5px; padding:5px; font-size:15px; text-indent:50%; background-color:#DBFCFF;width:70%;">
Surcouf<br></br>15 avenue du Général de Gaulle<br></br>06 55 95 73 77<br></br>
</div>
que tu as actuellement (lu par ton browser en sortie de la transfo xslt) tu aurais vu que ça le fait.
Citation : Ensuite, tu as le fichier commande.xsl et tu peux modifier tout ce que tu veux dans ce fichier sauf les variables existantes à savoir de la ligne 5 à la ligne 17. Tu peux en revanche en rajouter. |
Et ca correspond a quoi par rapport à ce que tu as posté dans ton 1er post? moi, j'ai pas le fichier commande.xsl sous les yeux, hein.
Bon, comme je t'ai dit, si tu peux toucher à la définition du template, c'est faisable, tu peux adapter ce que j'ai indiqué dans mon post précédent, sinon, c'est pas faisable.
A+,
Marsh Posté le 05-01-2011 à 01:18:26
3
Message édité par Torlik le 16-01-2011 à 16:33:35