<!-- SURCHARGE pour n'afficher le label "Se connecter par" que si un label n'est pas spécifié dans la population-->
<xsl:template name="login-credential-provider-popup">
<div class="login-inner login-credential-provider">
<button>
<xsl:attribute name="onclick"><xsl:call-template name="login-credential-provider-script"><xsl:with-param name="index" select="@index"/></xsl:call-template> return false;</xsl:attribute>
<xsl:choose>
<xsl:when test="additionalLabel"><xsl:value-of select="additionalLabel"/></xsl:when>
<xsl:otherwise>
<i18n:translate>
<i18n:text i18n:key="PLUGINS_CORE_AUTHENTICATION_BLOCKING_CONNECTION_LABEL" i18n:catalogue="plugin.core-impl"/>
<i18n:param>
<xsl:value-of select="label"/>
</i18n:param>
</i18n:translate>
<span class="glyph {iconGlyph}"></span>
</xsl:otherwise>
</xsl:choose>
</button>
</div>
</xsl:template>
Merci infiniment à Raphaël pour ses conseils et orientations.
]]>Cette XSL en question, commence par importer
<xsl:import href="plugin:core-ui://pages/login/login_form.xsl"/>
qui est celle dont vous parlez plus haut.
Donc, c'est bien la bonne : par contre, ce n'est pas elle qui s'occupe de générer la balise <html> ou la balise <body>.
Il en est de même dans les templates.
Donc vous ne pouvez pas mettre
class='front-login-bg'
sur la balise <body>
mais par contre tout ce qui est à l'intérieur de cette balise est recopié tel quel, donc
<body id="default">
<div class="front-login-bg">
<xsl:call-template name="body"/>
</div>
</body>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2011 Anyware Services
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
xmlns:resolver="org.ametys.cms.transformation.xslt.ResolveURIComponent"
extension-element-prefixes="resolver">
<xsl:import href="plugin:web://pages/frontoffice-login/login.xsl"/>
<xsl:template match="/">
<html>
<head>
<title><i18n:text i18n:key="PLUGINS_WEB_FO_LOGIN_TITLE" i18n:catalogue="plugin.web"/></title>
</head>
<body id="default" class='front-login-bg'>
<xsl:call-template name="body"/>
</body>
</html>
</xsl:template>
<xsl:template name="show-hint" />
<xsl:template name="body-title" />
<xsl:template name="body-existingaccount-title" />
</xsl:stylesheet>
Je n'y vois aucune référence à la clé citée.
]]>Je ne crois pas que la XSL qui gère l'affichage de notre page de connexion soit celle que vous m'indiquez.
C'était aussi celle dont m'avait parlé Bérénice lors de la formation, mais comme vous pouvez le voir sur ma capture, le markup généré ne vient pas de cette XSL.
Après quelques recherches, il semble qu'il vienne plutôt du template que j'ai linké précédemment. En effet, sur la capture on voit que le body a la classe "login" alors que la XSL que vous m'indiquez lui attribue la classe "front-login-bg" et l'id "default".
<xsl:template match="/">
<html>
<head>
<title><i18n:text i18n:key="PLUGINS_WEB_FO_LOGIN_TITLE" i18n:catalogue="plugin.web"/></title>
</head>
<body id="default" class='front-login-bg'>
<xsl:call-template name="body"/>
</body>
</html>
</xsl:template>
Peut être notre charte graphique ne fait-elle pas appel à la bonne XSL ? Je ne sais pas...
]]>La XSL que vous cherchez est dans skins/XXXX/services/web/pages/frontoffice-login/login.xsl
Attention, cependant, cette XSL effectue des traitements génériques et vous risquez de casser pas mal de chose dans le formulaire de connexion en touchant à cela
Je vois que la clef que vous spécifiez est utilisée à 3 endroits différent dans ce fichier, mais dans tous les cas, je vous conseille de faire un test du type
<xsl:if test="additionalLabel = 'CAS'">...</xsl:if>
<i18n:text i18n:key="PLUGINS_CORE_AUTHENTICATION_BLOCKING_CONNECTION_LABEL" i18n:catalogue="plugin.core-impl"/>
La bonne méthode est-elle de surcharger ce template en enlevant la référence i18n ?
Si oui, dans quelle XSL le faire ? (cf. problème ci-dessous)
D'autre part, je voudrais ajouter un titre sous ce même bouton, associé au formulaire de connexion "manuelle".
J'ai trouvé le template qui sert à ça, mais quand je le modifie (j'ajoute simplement un <h1></h1>) et que je colle mon code dans une stylesheet (j'ai essayé avec utils.xsl, skin\templates\login\stylesheets\template.xsl, main.xsl...), j'ai le droit à une erreur 500.
Dans quelle XSL dois-je mettre mon code pour surcharger le template ?
Merci beaucoup !
]]>