Bonjour,
j'ai un fichier preferences.xml (parsé côté client par la feuille de style preferences.xsl), dans celui-ci j'ai entre-autres, un noeud "menu[@name='User']" où figurent une liste de nom de sites choisis par l'utilisateur:
Tous les choix possibles sont stockés dans un fichier annexe Sites.xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="preferences.xsl" type="text/xsl"?> <preferences> <menu name="User"> <item>Deezer</item> <item>LastFM</item> <item>Seeqpod</item> </menu> <menu name="Autres"> <item>ex1</item> <item>ex2</item> <item>ex3</item> </menu> </preferences>
La sélection se fait par l'intermediaire de case à cocher: (prerences.xsl)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="UTF-8"?> <list> <site>Deezer</site> <site>Imeen</site> <site>LastFM</site> <site>MOG</site> <site>Music IP</site> <site>Pandora</site> <site>Radioblogclub</site> <site>Seeqpod</site> <site>SocialFM</site> </list>
le template 'checksite' sert à déterminer les choix par défaut à afficher en pré-cochant la case... aucune case ne sort cochée... savez-vous pourquoi?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Sites</title> </head> <body> <xsl:for-each select="document('Sites.xml')/list/site"> <xsl:element name="input"> <xsl:attribute name="type">checkbox</xsl:attribute> <xsl:call-template name="checksite" /> </xsl:element> <xsl:value-of select="." /> <xsl:element name="br" /> </xsl:for-each> </body> </html> </xsl:template> <xsl:template name="checksite"> <xsl:variable name="site" select="." /> <xsl:variable name="checking" select="false" /> <xsl:for-each select="//preferences/menu[@name='User']/item"> <xsl:if test=".=$site"> <xsl:variable name="checking" select="true" /> </xsl:if> </xsl:for-each> <xsl:choose> <xsl:when test="$checking='true'"> <xsl:attribute name="checked">checked</xsl:attribute> <xsl:attribute name="title">Available - click to set Unavailable</xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="title">Unavailable - click to set Available</xsl:attribute> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
Merci
Partager