IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Portails Java Discussion :

Une seule CSS pour plusieurs portlets


Sujet :

Portails Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 45
    Points
    45
    Par défaut Une seule CSS pour plusieurs portlets
    Salut à tous,

    J'aimerais appliquer une même feuille de style CSS à plusieurs portlets.

    Voici ma config :
    - Liferay v5.2.3
    - Tomcat v6
    - Portlets intégrant ICEfaces

    J'ai pensé à deux solutions. La première consisterait à modifier le thème courant appliqué au portail. La deuxième serait d'ajouter la même feuille de style à chacune des portlets en utilisant la balise <ice:outputStyle> d'ICEfaces.
    Ai-je oublié une solution ? Quelle est la meilleure selon vous ?

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Bonjour,

    Je pense que la meilleure solution reste la mise en place d'un theme car les mécanismes de changements sont implémentés dans le portail; ils sont - au niveau du serveur - considéré comme une webapp à part entière (facilité de déploiement); tu peux paramétrer facilement le portail pour définir le thème à associer aux pages...

    Pour commenter ton deuxième choix, appliquer une même feuille de style à chacune des portlets n'a pas de sens en soit car dupliquer les feuilles de style alourdiraient le poids de ta page (pas cool pour les perfs) et si tes nommages sont cohérents, tu n'as besoin que d'un fichier CSS pour que les styles s'appliquent correctement à toutes tes portlets.
    Je ne connais pas le tag outputStyle mais une recherche rapide me laisse comprendre qu'il n'est pas à utiliser comme tu le souhaiterais
    the outputStyle component will include an additional style sheet for Internet Explorer and Safari browsers....This allows style classes to be overridden for specific browsers.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 45
    Points
    45
    Par défaut
    Merci pour ta réponse zorm.

    Oui effectivement, le choix du thème parait le plus propre. Cependant, si l'utilisateur change le thème, il ne verra plus les styles que j'ai écrits.

    La solution idéale serait de donner le chemin d'une unique feuille de style à chacune des portlets. Mais comment faire pour faire ça proprement et facilement ?

    Concernant la balise <ice:outputStyle>, cette documentation n'explique pas la même chose que celle là. Peut-être une histoire de version d'ICEfaces ?

  4. #4
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    A priori, la solution la plus propre, la plus efficace et la plus légère est d'avoir une CSS Custom partagée.
    Pour ma part, j'ai tendance à la sortir du contexte du portail et à la mettre à disposition dans les contenus "statiques" qui profitent donc des mécanismes de cache à la fois des navigateurs et des proxys.
    Pour ce qui est de son intégration, il y a une petite modification à apporter à chacun des thèmes que tu mets à disposition de tes utilisateurs afin que chacun prenne en compte, soit tu ajoutes un lien vers ta feuille CSS dans le code côté "HTML"
    ou soit dans ta feuille de style principale, tu peux ajouter une référence vers la feuille CSS commune :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @import url(/styles/habillage.css);
    En considérant que tes feuilles de style principales se nomment toutes "main.css", tu peux exécuter le script shell suivant dans ton répertoire de thèmes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for fs in `find . -name main.css`; do
      echo "@import url(http://monserveur/static/custom.css);" > "$fs"
    done

Discussions similaires

  1. Réponses: 18
    Dernier message: 15/05/2010, 20h10
  2. [Joomla!] Une seule bdd pour plusieurs sites
    Par Imp rusg dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 23/02/2009, 09h16
  3. Réponses: 2
    Dernier message: 10/07/2007, 13h45
  4. Réponses: 7
    Dernier message: 01/02/2006, 15h49
  5. [C#] Une seule méthode pour plusieurs composants
    Par niPrM dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/06/2004, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo