[Résolu] Alfresco Share : un theme specifique par site

cancel
Showing results for 
Search instead for 
Did you mean: 
zomurn
Member II

[Résolu] Alfresco Share : un theme specifique par site

Bonjour,

Je cherche à customisé le look and feel d'Alfresco Share. Celui-ci présente plusieurs sites qui n'ont rien avoir entre eux.
Je cherche donc à avoir un theme spécifique pour chaque site.
Actuellement, quand je change le thème selon http://wiki.alfresco.com/wiki/Share celui-ci s'applique soit à toute l'application Alfresco Share (et tous les sites qu'il présente) soit temporairement sur la page que l'on appelle par URL (avec l'extension .theme=…).
Cette dernière solution est limitée à une page, dès qu'on clique sur un lien, on perd le thème.

Moi je veux que qd dupond se logge il voit tout vert. Quand Durand se logge il voit tout rouge.
Bref, un thème spécifique par site et/ou utilisateur pré imposé.

C'est possible cela où bien tous les utilisateurs sont condamnés à avoir le même thème (et donc même couleurs, même logo (cela peut être gênant) ?

Merci.
3 Replies
zomurn
Member II

Re: [Résolu] Alfresco Share : un theme specifique par site

bertrandf
Active Member

Re: [Résolu] Alfresco Share : un theme specifique par site

Merci pour le lien. C'est très intéressant.
zomurn
Member II

Re: [Résolu] Alfresco Share : un theme specifique par site

De rien.

Et je confirme que ça marche très bien Smiley Happy.

J'ai apporté juste une modif au code de Kevin R. : le sien ne me prenait pas en compte le classpath (mon .properties est packagé dans mon jar).
Ci-dessous ma méthode init :

@Override
   public void init(FilterConfig conf) throws ServletException {

      String propsLocation = conf.getInitParameter( "mappingFileLocation" );
      if (propsLocation == null)
      {
         log.warn( "No filter init parameter 'mappingFileLocation' set (should refer to file in classpath)" );
         propsLocation = "themefilter.properties";
      }
      props = new Properties();
      try
      {
         URL url = Thread.currentThread().getContextClassLoader()
               .getResource( propsLocation );
         if (url != null)
         {
            props.load( url.openStream() );
         }
         else
         {
            log.warn( "Filter file " + propsLocation
                  + " couldn't be read in classpath" );
         }

         log.debug( "Successfully read site to theme properties file from "
               + propsLocation + " in classpath" );
      }
      catch (Exception e)
      {
         log.warn( "Failed to read theme properties from "
               + propsLocation
               + " (mappingFileLocation filter init parameter) in classpath." );
      }
   }

et le web.xml :

<filter>
      <description>Add theme parameter to requests</description>
       <filter-name>ThemeFilter</filter-name>
       <filter-class>fr.intuitiv.module.fds.filter.ThemeFilter</filter-class>
       <init-param>
               <description>Location of mapping file from sites to themes</description>
               <param-name>mappingFileLocation</param-name>
               <param-value>themefilter.properties</param-value>
       </init-param>
  </filter>
   <filter-mapping>
       <filter-name>ThemeFilter</filter-name>
        <url-pattern>/page/site/*</url-pattern>
  </filter-mapping>

Voili voulou.