Documents:Personnalisation graphique CAS V3

Un article de Wiki ESCO-Portail.

Nous prendrons l'exemple du site netocentre, développé pour les lycées de la Région Centre. L'arborescence à mettre dans le répertoire custom de CAS est de la forme suivante :

webpages/
|-- WEB-INF
|   |-- classes
|   |   |-- messages_fr.properties
|   |   |-- netocentre.properties
|   |   `-- netocentre_views.properties
|   `-- view
|       `-- jsp
|           `-- netocentre
|               `-- ui
|                   |-- casLoginView.jsp
|                   `-- includes
|                       |-- bottom.jsp
|                       `-- top.jsp
`-- themes
    `-- netocentre
        |-- cas.css
        `-- images
            |-- connexion-bottom.jpg
            |-- connexion-bouton.jpg
            |-- connexion-center.jpg
            |-- connexion-top.jpg
            |-- education-nationale.gif
            |-- esco.gif
            |-- esup.gif
            |-- europe.gif
            |-- footer-bg.gif
            |-- ja-sig-logo.gif
            |-- mainlogo.gif
            |-- region-centre.gif
            `-- republique-francaise.gif

Les jsp sont définies dans l'arborescence custom/webpages/WEBAPPS/view/jsp . La css et les images sont placées dans le répertoire custom/webpages/themes .

Pour le déploiement du nouvel ensemble graphique il convient de définir les fichiers {nom_skin}.properties et {nom_skin}_views.properties, à partir de ceux de base, et de les placer dans le répertoire custom/webpages/WEB-INF/classes . Le fichier messages_fr.properties permet de redéfinir les libellés à afficher lors de l'utilisation de CAS.

Exemple de netocentre pour le fichier {nom_skin}.properties :

css=themes/netocentre/cas.css

Il redédinit l'emplacement de la css utilisée pour le graphique développé.

Exemple de netocentre pour le fichier {nom_skin}_views.properties :

### Login view (/login)
casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url=/WEB-INF/view/jsp/netocentre/ui/casLoginView.jsp
 
### Login confirmation view (logged in, warn=true)
casLoginConfirmView.(class)=org.springframework.web.servlet.view.JstlView
casLoginConfirmView.url=/WEB-INF/view/jsp/default/ui/casConfirmView.jsp
 
### Logged-in view (logged in, no service provided)
casLoginGenericSuccessView.(class)=org.springframework.web.servlet.view.JstlView
casLoginGenericSuccessView.url=/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp
 
### Logout view	(/logout)
casLogoutView.(class)=org.springframework.web.servlet.view.JstlView
casLogoutView.url=/WEB-INF/view/jsp/default/ui/casLogoutView.jsp
 
### CAS error view
serviceErrorView.(class)=org.springframework.web.servlet.view.JstlView
serviceErrorView.url=/WEB-INF/view/jsp/default/ui/serviceErrorView.jsp
 
viewServiceErrorView.(class)=org.springframework.web.servlet.view.JstlView
viewServiceErrorView.url=/WEB-INF/view/jsp/default/ui/serviceErrorView.jsp
 
viewServiceSsoErrorView.(class)=org.springframework.web.servlet.view.JstlView
viewServiceSsoErrorView.url=/WEB-INF/view/jsp/default/ui/serviceErrorSsoView.jsp
 
### Services Management Views
addServiceView.(class)=org.springframework.web.servlet.view.JstlView
addServiceView.url=/WEB-INF/view/jsp/services/add.jsp
 
editServiceView.(class)=org.springframework.web.servlet.view.JstlView
editServiceView.url=/WEB-INF/view/jsp/services/add.jsp
 
manageServiceView.(class)=org.springframework.web.servlet.view.JstlView
manageServiceView.url=/WEB-INF/view/jsp/services/manage.jsp
 
serviceLogoutView.(class)=org.springframework.web.servlet.view.JstlView
serviceLogoutView.url=/WEB-INF/view/jsp/services/logout.jsp

Nous voyons que seule la ligne :

casLoginView.url=/WEB-INF/view/jsp/netocentre/ui/casLoginView.jsp

a été modifiée dans cet exemple. Les autres éléments (écran de réussite de connexion par exemple) resteront ceux par défaut de CAS. Si ces éléments devaient être modifiés, il suffirait de placer les fichiers modifiés dans l'arborescence custom/webpages et de les déclarer dans ce fichier.

Pour mettre en œuvre un graphique personnalisé, il faut ensuite le déclarer dans le fichier config.properties de CAS. Par exemple :

# graphic theme
theme=netocentre
views=netocentre
pages développeurs
pages "communauté ESCO"