cancel
Showing results for 
Search instead for 
Did you mean: 

Customisation de la page d'accueil Alfresco

skank
Champ in-the-making
Champ in-the-making
Bonjour,

je viens de commencer la customisation d'Alfresco, et pour commencer en douceur, j'ai choisi de modifier le logo de la page d'accueil. Pour cela, j'ai rajouté une jsp login.jsp dans le répertoire jsp/extension, copié le code de la page d'accueil initial, et modifié la balise de l'image (j'aurais pu directement modifié la jsp initiale, mais mon but est de rajouter des extensions, donc je ne veux pas toucher au code initial comme c'est déconseillé dans le livre de jeff potts).

J'ai ensuite modifié le fichier web-client-config-custom.xml dans shared pour faire pointer sur la nouvelle jsp de login :


    <config>
        <client>
         <!– the login page the client will use –>
            <login-page>/jsp/extension/login.jsp</login-page>
        </client>
    </config>

Résultat : ça fonctionne, j'ai bien http://localhost:8080/alfresco/faces/jsp/extension/login.jsp quand je tape http://localhost:8080/alfresco, et on voit le nouveau logo.

Cependant, il y a un petit bug, qui je pense n'en est pas vraiment un, plutôt un défaut de configuration : en effet, quand on se connecte puis se déconnecte, on retourne sur la page de login initial (avec le premier logo donc), bien que l'url soit dashboards/container.jsp ; puis quand on tente de se reconnecter (on reclique sur connecter donc), il retourne sur ma jsp modifiée. Il faut recliquer sur connection sur être de nouveau connecté.

J'ai essayé de mettre ceci dans le fichier de config, pensant que cela venait du fait que je ne n'étais pas occupé du relogin :


    <config>
        <client>
         <!– the login page the client will use –>
            <login-page>/jsp/extension/login.jsp</login-page>
            <relogin-page>/jsp/extension/relogin.jsp</relogin-page>
        </client>
    </config>

Mais cela n'a rien changé.

Avez-vous des idées ?

Cordialement.
10 REPLIES 10

rguinot
Confirmed Champ
Confirmed Champ
La procédure est la bonne, mais vous avez sans doute oublié de configurer également l'outcome pour les règles de faces navigation.
regardez dans le fichier WEB-INF/faces-config-navigation, il y a , par défaut :

   <navigation-rule>
      <from-view-id>/jsp/*</from-view-id>
      <navigation-case>
         <from-outcome>logout</from-outcome>
         <to-view-id>/jsp/login.jsp</to-view-id>
      </navigation-case>
      <navigation-case>
         <from-outcome>relogin</from-outcome>
         <to-view-id>/jsp/relogin.jsp</to-view-id>
      </navigation-case>
   </navigation-rule>

Il faudrait dans votre cas sans doute pointer le view-id custom en sortie des outcomes ci-dessus.

skank
Champ in-the-making
Champ in-the-making
Bonjour,

exact, c'est le bon fichier. J'ai cherché un éventuel faces-config-navigation-custom.xml, sans succès. Ces fichiers seront-ils recopié lors d'une éventuelle mise à jour, ou ils resteront comme les aurais modifiés ?

Cordialement.

skank
Champ in-the-making
Champ in-the-making
J'ai essayé de créer un faces-config-navigation-custom.xml et d'y mettre le code, sans résultat ; j'ai aussi essayé de mettre le code dans faces-config-custom.xml (qui lui existe), rien non plus. Tant pis, je modifie faces-config-navigation.xml, là ça marche, c'est le principal.

Merci pour l'aide.

jayjayecl
Confirmed Champ
Confirmed Champ
Bonjour,
voici le pourquoi de vos derniers petits tracas, je pense que cela vous éclairera sur la bonne méthode de surcharge de règle de navigation :
http://wiki.alfresco.com/wiki/Packaging_And_Deploying_Extensions#JSF_configuration_files

skank
Champ in-the-making
Champ in-the-making
Bonjour,
voici le pourquoi de vos derniers petits tracas, je pense que cela vous éclairera sur la bonne méthode de surcharge de règle de navigation :
http://wiki.alfresco.com/wiki/Packaging_And_Deploying_Extensions#JSF_configuration_files

Bonjour,

j'ai créé un faces-config.xml dans META-INF comme décrit dans le wiki, avec ce contenu :

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
                              "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
      <navigation-rule>
      <description>
         The decision rule used by the NavigationHandler to
         determine which view must be displayed after the
         current view, login.jsp is processed.
      </description>
      <from-view-id>/jsp/extension/login.jsp</from-view-id>
      <navigation-case>
         <description>
             Indicates to the NavigationHandler that the browse.jsp
             view must be displayed if the Action referenced by a
             UICommand component on the login.jsp view returns
             the outcome "success".
         </description>
         <from-outcome>success</from-outcome>
         <to-view-id>/jsp/browse/browse.jsp</to-view-id>
      </navigation-case>
   </navigation-rule>
  
<!– rule to get back to the login page from anywhere –>
   <navigation-rule>
      <from-view-id>/jsp/*</from-view-id>
      <navigation-case>
         <from-outcome>logout</from-outcome>
         <to-view-id>/jsp/extension/login.jsp</to-view-id>
      </navigation-case>
      <navigation-case>
         <from-outcome>relogin</from-outcome>
         <to-view-id>/jsp/extension/relogin.jsp</to-view-id>
      </navigation-case>
   </navigation-rule>
  
</faces-config>

Puis j'ai remis le code initial dans WEB-INF/faces-config-navigation.xml. Rien d'anormal donc. Mais il me refait la même petite erreur que précédemment, à savoir qu'il me renvoie sur la page initial lors d'un relogin.

jayjayecl
Confirmed Champ
Confirmed Champ
pouvez-vous préciser dans quel répertoire META-INF ?

skank
Champ in-the-making
Champ in-the-making
Et bien du coup, je l'ai mis dans les 2 (alfresco\META-INF et maintenant alfresco\classes\web\META-INF), mais même résultat.

skank
Champ in-the-making
Champ in-the-making
Après maintes recherches et essais, je suis finalement parvenu à un résultat concluant… bien que cela nécessite un gros bidouillage.

Comme écrit sur le wiki dans http://wiki.alfresco.com/wiki/Customising_The_Login_Page#Overriding_JSF_configuration et http://wiki.alfresco.com/wiki/Packaging_And_Deploying_Extensions#JSF_configuration_files ainsi que sur ce blog : http://klungvik.com/index.php/2009/alfresco-the-first-lessons-learned

1) Il faut créer un JAR (je ne crois pas que le nom soit important, personnellement j'ai mis faces-config.jar) comme ceci :
faces-config.jar
   – META-INF
        – faces-config.xml
        – MANIFEST.MF

Si vous utilisez le créateur de JAR du JDK, il faut faire dans le répertoire /bin du JDK :
jar.exe cvf [i]adresse_de_sortie\faces-config.jar[/i] [i]adresse de faces-config.xml[/i] 
Il créera le fichier MANIFEST.MF automatiquement (voir http://www.siteduzero.com/tutoriel-3-30916-creer-une-archive-jar-executable.html)

2) Mettre le JAR dans webapps\alfresco\WEB-INF\lib

C'est tout de même du bidouillage à mon goût, il serait intéressant de faciliter l'overriding des faces-config lors des prochaines mises à jour.

jayjayecl
Confirmed Champ
Confirmed Champ
oui en fait ce n'est pas du bidouillage, c'est comme cela qu'il faut faire.
En l'occurence, ce n'est pas un choix technique d'Alfresco, mais une contrainte imposée par JSF