===== CAS Themes ===== ==== Référence ==== * http://doc-cri.univ-nancy2.fr/public/?contentId=3841#AUTO_SECT0.2.1 * http://www.esup-portail.org/display/PROJESUPMOBILE/CAS+Mobile * http://wiki.esco-portail.org/index.php/Documents:Personnalisation_graphique_CAS_V3 ==== Arborescence Custom ==== Nous allons créer une arborescence de personnalisation des themes et view pour notre institut (Telecom & Management SudParis , simplifié ici en tmsp1) === Arbre FS === [root@cas2 cas-toolbox-3.3.5-3]# mkdir -p custom/webpages/themes/ [root@cas2 cas-toolbox-3.3.5-3]# cp -a update.esup/webpages/themes/esup custom/webpages/themes/ [root@cas2 cas-toolbox-3.3.5-3]# ls custom/webpages/themes/ esup [root@cas2 cas-toolbox-3.3.5-3]# ls custom/webpages/themes/esup/ cas.css images au final on aura ce type d'arborescence dans custom [root@cas3 custom]# tree -a . └── webpages ├── themes │   ├── esup │   │   ├── cas.css │   │   ├── default-mobile-custom.css │   │   └── images │   │   ├── esup-logo.gif │   │   └── logos.gif │   └── tmsp1Theme │   ├── cas.css │   └── images │   ├── bandeau.jpg │   ├── flags │   │   ├── brazil.png │   │   ├── chinese.png │   │   ├── croatia.png │   │   ├── czech.png │   │   ├── english.png │   │   ├── french.png │   │   ├── german.png │   │   ├── italian.png │   │   ├── japonese.png │   │   ├── netherlands.png │   │   ├── poland.png │   │   ├── russian.png │   │   ├── slovenia.png │   │   ├── spanish.png │   │   ├── svenskt.png │   │   ├── turkey.png │   │   └── urdu.png │   ├── fond.png │   ├── it.png │   ├── tem.png │   └── tsp.png └── WEB-INF ├── classes │   ├── messages_fr.properties │   ├── tmsp1Theme.properties │   └── tmsp1Vues_views.properties ├── usersFile └── view └── jsp └── tmsp1Vues └── ui ├── casBlockedView.jsp ├── casConfirmView.jsp ├── casGenericSuccess.jsp ├── casLoginView.jsp ├── casLogoutView.jsp ├── includes │   ├── bottom.jsp │   └── top.jsp ├── serviceErrorSsoView.jsp └── serviceErrorView.jsp 14 directories, 40 files ==== Theme ==== === CSS === Le theme est essentiellement le fichier css, ici ce sera tmsp1cas.css qui sera chargé par toutes les pages statiques (jsp) car elles inclus toutes top.jsp (et bottom.jsp) [root@cas2 cas-toolbox-3.3.5-3]# grep css /root/cas-toolbox-3.3.5-3/update.esup/webpages/WEB-INF/view/jsp/default/ui/includes/top.jsp cette directive @import va chercher dans le config.properties le nom du theme parametré , ici tmsp1: ce qui resultera au final en === parametrage === Il faut indiquer a ant que nous allons utliser l'arborescence custom et les themes/views tmsp1: [root@cas3 cas-toolbox-3.4.7-1]# grep custom build.properties custom.path=${basedir}/custom cas.custom.webpage.path=${custom.path}/webpages cas.custom.source.path=${custom.path}/source [root@cas3 cas-toolbox-3.4.7-1]# grep tmsp1 config.properties theme=tmsp1Theme views=tmsp1Vue === Création === Préparer l'arborescence de custom $ mkdir -p custom/webpages/WEB-INF/classes/ recopier le fichier esup.properties [root@cas3 cas-toolbox-3.4.7-1]# cp /root/cas-toolbox-3.4.7-1/update.esup/webpages/WEB-INF/classes/esup.properties custom/webpages/WEB-INF/classes/tmsp1Theme.properties Fichier tmsp1Theme.properties appel les css: [root@cas3 cas-toolbox-3.4.7-1]# cat custom/webpages/WEB-INF/classes/tmsp1Theme.properties mobile.custom.css.file=themes/tmsp1Theme/default-mobile-custom.css standard.custom.css.file=themes/tmsp1Theme/cas.css ==== arborescence de theme tmsp1 ==== [root@cas3 cas-toolbox-3.4.7-1]# mkdir custom/webpages/themes/tmsp1Theme Recopie du modele de cas.css et ajout d'images, dont le logo" qui est chargé dans la css !: [root@cas3 cas-toolbox-3.4.7-1]# cp /root/cas-toolbox-3.4.7-1/update.esup/webpages/themes/esup/cas.css custom/webpages/themes/tmsp1Theme/ [root@cas3 cas-toolbox-3.4.7-1]# mkdir -p custom/webpages/themes/tmsp1Theme/images [root@cas3 cas-toolbox-3.4.7-1]# cp tmp/images/it.png custom/webpages/themes/tmsp1Theme/images [root@cas3 cas-toolbox-3.4.7-1]# grep it.png custom/webpages/themes/tmsp1Theme/cas.css background:#fff url(images/it.png) no-repeat scroll 99% 32px; Logo dans la section #header ==== views JSP ==== Les views sont des pages statique (jsp) visibles dans /webpages/WEB-INF/view/jsp/theme/ui === modele === On reprend l'ensemble des jsp du theme par defaut pour les adapter à notre site. [root@cas3 cas-toolbox-3.4.7-1]# mkdir -p custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui [root@cas3 cas-toolbox-3.4.7-1]# cp -a build/cas/WEB-INF/view/jsp/default/ui/* custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/ [root@cas3 cas-toolbox-3.4.7-1]# ls -LtR custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/ custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/: includes casConfirmView.jsp casLoginView.jsp serviceErrorSsoView.jsp casBlockedView.jsp casGenericSuccess.jsp casLogoutView.jsp serviceErrorView.jsp custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/includes: bottom.jsp top.jsp Attention a top.jsp qui peut-etre ecrasé par la manip ci-dessus, s'assurer qu'il contient bien l'appel spring au parametage du theme: $ grep css custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/includes/top.jsp et non le top.jsp par defaut qui force l'usage de css/cas.css autrement tout notre travail de personnalisation echoue. Initialement ==== Views tmsp1 ==== Pour chaque jsp il faut definir son appel dans *theme_name*_views.properties [root@cas3 cas-toolbox-3.4.7-1]# cp build/cas/WEB-INF/classes/default_views.properties custom/webpages/WEB-INF/classes/tmsp1Vues_views.properties On remplace toute occurence de "default" par "tmsp1Vues" ici, (cf vi ":1,$s/default/tmsp1Vues/" 7 substitutions on 7 lines ) [root@cas3 cas-toolbox-3.4.7-1]# cat custom/webpages/WEB-INF/classes/tmsp1Vues_views.properties ### Login view (/login) casLoginView.(class)=org.springframework.web.servlet.view.JstlView casLoginView.url=/WEB-INF/view/jsp/tmsp1Vues/ui/casLoginView.jsp ### Login confirmation view (logged in, warn=true) casLoginConfirmView.(class)=org.springframework.web.servlet.view.JstlView casLoginConfirmView.url=/WEB-INF/view/jsp/tmsp1Vues/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/tmsp1Vues/ui/casGenericSuccess.jsp ### Logout view (/logout) casLogoutView.(class)=org.springframework.web.servlet.view.JstlView casLogoutView.url=/WEB-INF/view/jsp/tmsp1Vues/ui/casLogoutView.jsp ### CAS error view viewServiceErrorView.(class)=org.springframework.web.servlet.view.JstlView viewServiceErrorView.url=/WEB-INF/view/jsp/tmsp1Vues/ui/serviceErrorView.jsp viewServiceSsoErrorView.(class)=org.springframework.web.servlet.view.JstlView viewServiceSsoErrorView.url=/WEB-INF/view/jsp/tmsp1Vues/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 viewStatisticsView.(class)=org.springframework.web.servlet.view.JstlView viewStatisticsView.url=/WEB-INF/view/jsp/services/viewStatistics.jsp 403.(class)=org.springframework.web.servlet.view.JstlView 403.url=/WEB-INF/view/jsp/tmsp1Vues/ui/casBlockedView.jsp ==== Messages ==== on peux aussi personnaliser les messages (intitulés) via messages_fr.properties [root@cas3 cas-toolbox-3.4.7-1]# cp update/webpages/WEB-INF/classes/messages_fr.properties custom/webpages/WEB-INF/classes/ [root@cas3 cas-toolbox-3.4.7-1]# vim custom/webpages/WEB-INF/classes/messages_fr.properties un ant init / deploy est necessaire apres chaque modification dans custom ! ==== JSP Login ==== Adaptation de la page premiere de Login CAS; casLoginView.jsp [root@cas2 cas-toolbox-3.3.5-3]# diff -ur custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/casLoginView.jsp build/cas/WEB-INF/view/jsp/default/ui/casLoginView.jsp Notament les images/drapeaux pour les langues et les logos en bas de pages:
  • English
  • ...
  • Turkish
    • Télécom SudParis
    • Télécom Ecole de Management