Pages enfant
  • Ajout d'un thème et d'un habillage

Introduction

Ceci est une suite d'opérations à réaliser pour ajouter un thème et un habillage propre à un établissement sans avoir à modifier le thème de base d'uPortal ni les habillages

J'ai suivi la doc d'uPortal 3.2 : https://wiki.jasig.org/display/UPM32/Create+a+New+Theme

Pour les noms de répertoires, on considère qu'un déploiement a déjà été fait (ant init deploy)

Le nom du thème est : univ (client navigateur Web) ou muniv (client mobile)

Ajout du thème

On part des thèmes par défaut d'uPortal : universality et muniversality

Feuilles de transformation

Client navigateur Web

  • Copier Portail/uPortal-rel-3.2.4/uportal-war/src/main/resources/layout/theme/universality dans custom/uPortal/uportal-war/src/main/resources/layout/theme/univ
  • Renommer universality.xsl en univ.xsl
  • Renommer universality.sdf en univ.sdf
  • Modifier les liens vers l'image/icône du thème dans univ.sdf :
  <samplePictureURI>media/skins/univ/univ_full.gif</samplePictureURI>
  <sampleIconURI>media/skins/univ/univ_icon.gif</sampleIconURI>
  • Modifier univ.xsl pour obtenir la structure voulue
  • Modifier messages.xml si des libellés ont été ajoutés ou doivent être modifiés

Client mobile

  • Copier Portail/uPortal-rel-3.2.4/uportal-war/src/main/resources/layout/theme/muniversality dans custom/uPortal/uportal-war/src/main/resources/layout/theme/muniv
  • Renommer muniversality.xsl en muniv.xsl
  • Renommer muniverslity.sdf en muniv.sdf
  • Modifier les liens vers l'image/icône du thème dans muniv.sdf :
  <samplePictureURI>media/skins/muniv/muniv_full.gif</samplePictureURI>
  <sampleIconURI>media/skins/muniv/muniv_icon.gif</sampleIconURI>


  • Modifier muniv.xsl pour obtenir la structure voulue
  • Modifier messages.xml si des libellés ont été ajoutés ou doivent être modifiés

Base de données

Thèmes

  • Copier Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/db/base_entities/theme/DLM_XHTML-1.theme dans custom/uPortal/uportal-impl/src/main/resources/properties/db/mini/theme/DLM_XHTML-univ.theme
  • Copier Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/db/mini/theme/DLM_mUniversality_android.theme dans custom/uPortal/uportal-impl/src/main/resources/properties/db/mini/theme/DLM_univ_android.theme
  • Copier Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/db/mini/theme/DLM_Universality_Mobile_2.theme dans custom/uPortal/uportal-impl/src/main/resources/properties/db/mini/theme/DLM_univ_Mobile_2.theme
  • Modifier dans ces trois fichiers :
    • le nom : Balise <name>
    • les références aux feuilles de transformation
    • les références aux images
    • l'habillage par défaut
    • Exemple :
<theme script="classpath://org/jasig/portal/io/import-theme_v2-6.crn">
  <name>DLM XHTML UNIV</name>
  <uri>/layout/theme/univ/univ.xsl</uri>
  <description-uri>/layout/theme/univ/univ.sdf</description-uri>
  <description-text>Renders DLM tabs and columns as xhtml</description-text>
  <struct-id>4</struct-id>
  <sample-icon-uri>media/skins/univ/univ_icon.gif</sample-icon-uri>
  <sample-uri>media/skins/univ/univ_full.gif</sample-uri>
  <mime-type>text/html</mime-type>
  <device-type>workstation</device-type>
  <serializer-name>XHTML</serializer-name>
  <module-class>org.jasig.portal.channels.DLMUserPreferences.TabColumnPrefsState</module-class>
  <parameters>  
     <parameter>
       <name>minimized</name>
        <value>false</value>
        <description>Flag determining if the channel is minimized or not</description>
        <type>3</type>
     </parameter>
     <parameter>
       <name>skin</name>
        <value>univ</value>
        <description>Design skin name</description>
        <type>1</type>
     </parameter>
  </parameters>
</theme>

Profils

  • Copier Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/db/mini/profile/ dans custom/uPortal/uportal-impl/src/main/resources/properties/db/mini/profile
  • Modifier les fichiers du répertoire pour faire correspondre <theme name> au nom du thème dans le répertoire ../theme
  • Modifier les fichier de fragment dans custom/uPortal/uportal-impl/src/main/resources/properties/db/mini/fragment-layout : Changer le <theme name>
  • Copier update/uPortal/uportal-impl/src/main/resources/properties/db/mini/layout/defaultTemplateUser.layout dans custom
  • Copier update/uPortal/uportal-impl/src/main/resources/properties/db/mini/layout/fragmentTemplate.layout dans custom
  • Modifier ces fichiers : Changer le <theme name>

Prise en compte du thème

Si la base est vide, un ant db.init suffit

Sinon, il faut :

  • réimporter les themes, layouts et fragment-layouts modifiés
  • modifier en base les thèmes des utilisateurs :
  • consulter la table up_ss_theme et noter les SS_ID des anciens (DLM XHTML, universality Android, universality Mobile) et des nouveaux (DLM XHTML UNIV, univ Android, univ Mobile) thèmes
  • mettre à jour la table up_user_profile :
 update up_user_profile set theme_ss_id=<nouveau thème> where theme_ss_id=<ancien thème>

Ajout d'un habillage

Navigateur web

  • Copier Portail/uPortal_rel-3.2.4/uportal-war/src/main/webapp/media/skins/universality dans custom/uPortal/uportal-war/src/main/webapp/media/skins/univ

Dans le répertoire custom/uPortal/uportal-war/src/main/webapp/media/skins/univ :

  • Copier un des habillages (uportal3, coal, ivy) dans un répertoire univ: Partir de l'habillage le plus proche de l'habillage final de l'établissement :* uportal3 : avec barre de côté et sous-menus horizontaux* coal : avec barre de côté sans sous-menus horizontaux* ivy sans barre ni sous-menus horizontaux* Modifier éventuellement le fichier univ/skin.xml : Changer le paramètre fss-theme en un autre thème Fluid  existant (voir dans /ResourceServingWebapp/rs/fluid/1.1.2/fss/css/) ou faire son propre thème
  • Modifier univ/portal.css ou univ/esup-portal.css pour ajuster les styles

Mobile

  • Copier Portail/uPortal_rel-3.2.4/uportal-war/src/main/webapp/media/skins/muniversality dans custom/uPortal/uportal-war/src/main/webapp/media/skins/muniv
  • Modifier les feuilles de style dans les répertoires android et iphone
  • Aucune étiquette