This is an old revision of the document!
Nous allons créer une arborescence de personnalisation des themes et view pour notre institut (Telecom & Management SudParis , simplifié ici en tmsp1)
[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
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 <style type="text/css" media="screen">@import '<spring:theme code="css" />'/**/;</style>
cette directive @import ' va chercher dans le config.properties le nom du theme parametré , ici tmsp1:
ce qui resultera au final en
<style type=“text/css” media=“screen”>@import 'themes/tmsp1Theme/tmsp1cas.css'//;</style> === parametrage === Il faut indiquer a ant que nous allons utliser l'arborescence custom.tmsp1 et les themes/views tmsp1: <code> [root@cas2 cas-toolbox-3.3.5-3]# grep custom build.properties custom.path=${basedir}/custom cas.custom.webpage.path=${custom.path}/webpages cas.custom.source.path=${custom.path}/source </code> <code> [root@cas2 cas-toolbox-3.3.5-3]# grep tmsp1 config.properties theme=tmsp1Theme views=tmsp1Vue </code> === Création === Préparer l'arborescence de custom< <code> $ mkdir -p custom.tmsp1/webpages/WEB-INF/classes/ </code> Fichier tmsp1Theme.properties appel le css: <code> $ cat custom/webpages/WEB-INF/classes/tmsp1Theme.properties css=themes/tmsp1Theme/tmsp1cas.css </code> ==== arborescence de theme tmsp1 ==== <code> [root@cas2 cas-toolbox-3.3.5-3]# mkdir custom/webpages/themes/tmsp1Theme </code> Recopie du modele de cas.css et ajout d'images, dont le logo“ qui est chargé dans la css !: <code> [root@cas2 cas-toolbox-3.3.5-3]# cp update.esup/webpages/themes/esup/cas.css custom/webpages/themes/tmsp1Theme/tmsp1cas.css [root@cas2 cas-toolbox-3.3.5-3]# mkdir -p custom/webpages/themes/tmsp1Theme/images [root@cas2 cas-toolbox-3.3.5-3]# ls custom/webpages/themes/tmsp1Theme/images tmsp-logo.gif [root@cas2 cas-toolbox-3.3.5-3]# grep tmsp-logo custom/webpages/themes/tmsp1Theme/tmsp1cas.css background:#fff url(images/tmsp-logo.gif) no-repeat scroll 99% 32px; </code> 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. <code> [root@cas2 cas-toolbox-3.3.5-3]# mkdir -p custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui [root@cas2 cas-toolbox-3.3.5-3]# cp -a build/cas/WEB-INF/view/jsp/default/ui/* custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/ [root@cas2 cas-toolbox-3.3.5-3]# ls -LtR custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/ custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/: includes casLoginView.jsp casGenericSuccess.jsp serviceErrorSsoView.jsp casBlockedView.jsp casConfirmView.jsp casLogoutView.jsp serviceErrorView.jsp custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/includes: top.jsp bottom.jsp </code> 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: <code> $ grep css custom/webpages/WEB-INF/view/jsp/tmsp1Vues/ui/includes/top.jsp <style type=“text/css” media=“screen”>@import '<spring:theme code=“css” />'//;</style> </code>
et non le top.jsp par defaut qui force l'usage de css/cas.css autrement tout notre travail de personnalisation echoue. Initialement
<style type=“text/css” media=“screen”>@import 'css/cas.css'/**/;</style>
Pour chaque jsp il faut definir son appel dans *theme_name*_views.properties
[root@cas2 cas-toolbox-3.3.5-3]# cp build/cas/WEB-INF/classes/default_views.properties custom/webpages/WEB-INF/classes/tmsp1Vues_views.properties
On remplace toute auccorence de “default” par “tmsp1Vues” ici, (cf vi ”:1,$s/default/tmsp1Vues/“)
[root@cas2 cas-toolbox-3.3.5-3]# 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 serviceErrorView.(class)=org.springframework.web.servlet.view.JstlView serviceErrorView.url=/WEB-INF/view/jsp/tmsp1Vues/ui/serviceErrorView.jsp 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