custom theme creation websphere portal 8.5

26
CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1 Michele Buccarello 8/12/2014 This document describe how to create a custom theme for portal 8.5 CF1.

Upload: michele-buccarello

Post on 13-Jun-2015

1.510 views

Category:

Software


9 download

DESCRIPTION

This guide cover step by step how to create a custom theme in WebSphere Portal version 8.5

TRANSCRIPT

Page 1: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE

PORTAL 8.5 CF1

Michele Buccarello

8/12/2014

This document describe how to create a custom theme for portal 8.5 CF1.

Page 2: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 1

Table of Contents ENVIROMENT CHECK ................................................................................................................................... 2

EXTRACT THEME DYNAMIC AND STATIC PART ............................................................................................. 2

Extract Dynamic part................................................................................................................................ 2

Extract Static part .................................................................................................................................... 3

Preparing RAD 9.1 for theme packaging ....................................................................................................... 4

Preparation for dynamic area................................................................................................................... 4

Create the dynamic war ....................................................................................................................... 4

Preparation for static area ....................................................................................................................... 7

Create the static war ............................................................................................................................ 7

Setting the access in web.xml ............................................................................................................... 9

Preparing the EAR for deployment ........................................................................................................... 9

CREATING DYNAMIC CONTENT SPOTS ......................................................................................................... 9

Changes introduced in Portal 8.5 ............................................................................................................. 9

Create the plugin.xml in the dynamic war ...............................................................................................11

Replace the module in all theme profiles ................................................................................................14

Replace the new Dynamic Content Spots ...................................................................................................14

Deploy Theme and Register in Websphere Portal via xmlaccess .................................................................15

Deploy the ear in console ........................................................................................................................15

Register theme with the xml access below ..............................................................................................17

Use Theme Analyzer Portlet and Validation Report .................................................................................21

Page 3: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 2

ENVIROMENT CHECK

This guide cover the creation of custom theme for websphere Portal 8.5. To package the theme you need:

1) RAD 9.1 (older version are supported but install the suggested version)

2) WebDav Client ( I use CyberDuck )

3) Portal 8.5 cf1 on a local or remote machine ( in my case I have a local installation)

EXTRACT THEME DYNAMIC AND STATIC PART

Websphere Portal 8.5 theme is composed by two area:

- Static Files located in webdav store

- Dynamic Files located in the Default85 theme

You need to copy this two area of files in two separated folders, in my case I create on folder named

Portal_85_theme and in this folder you need to create two folder:

- theme_dynamic

- theme_static

Extract Dynamic part The dynamic part in my case is located in:

C:\IBM85\WebSphere\PortalServer\theme\wp.theme.themes\default85\installedApps\DefaultTheme85.ear

\DefaultTheme85.war

In this folder you see:

Page 4: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 3

You need to copy only the folders :

- skins

- themes

- WEB-INF

In the WEB-INF folder delete the files:

- Web.xml

- ibm-web-bnd.xmi

- ibm-web-ext.xmi

Extract Static part Download via webdav client or via url this folder “themes”, you could use this url

http://localhost:10039/wps/mycontenthandler/dav/fs-type1/themes/?mime-type=application/zip

unzip the file in the theme_static folder

Go inside and delete the folder Toolbar85.

Rename the folder Portal8.5 in CustomTheme85.

Page 5: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 4

Preparing RAD 9.1 for theme packaging

In these steps we made an EAR with two WAR, one for static area and one for dynamic area.

Preparation for dynamic area

Create the dynamic war

1) Create new Dynamic Web Project and then press next

Page 6: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 5

2) Select as target runtime WebSphere Application Server v8.5, web module version 2.4

Press next next review the context root if is right and then press finish.

3) Now copy the resources located in the dynamic folder in the webcontent directory of the dynamic

war, below you see the screenshot and a map of the file location :

skins → WebContent/skins

themes → WebContent/themes

WEB-INF/ → WebContent/WEB-INF

Page 7: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 6

Page 8: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 7

Preparation for static area In this part you need to create the WAR and setting the access in the web.xml file for static resources.

Create the static war

1) Create new Dynamic Web Project

Page 9: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 8

Press next next and in the final window check the context root and then press finish.

2) Now copy the resources located in the static folder in the webcontent directory of the static war,

below you see the screenshot and a map of the file location :

themes → WebContent/themes

Page 10: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 9

Setting the access in web.xml

In this step you need to add the yellow line to enable the access for anonymous user to the static files and

remove the green line. The web.xml is located in CustomThemeStatic\WebContent\WEB-INF\web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app id="WebApp_ID"

version="2.4"

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-

app_2_4.xsd">

<display-name>CustomThemeStatic</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>

<context-param>

<description>A regular expression that defines which of the resources in the WAR file

can be served by the portal war datasource. </description>

<param-name>com.ibm.portal.whitelist</param-name>

<param-value>.*</param-value>

</context-param>

<context-param>

<description>A regular expression that defines which of the resources in the WAR file

cannot be served by the portal war datasource.</description>

<param-name>com.ibm.portal.blacklist</param-name>

<param-value>WEB-INF/.*</param-value>

</context-param>

</web-app>

Preparing the EAR for deployment

Right-click on the EAR project (in my case is Custom8001ThemeCF5) and select Java EE -- Prepare for deployment.

CREATING DYNAMIC CONTENT SPOTS

Changes introduced in Portal 8.5 In the portal 8 to create dynamic content spot people log on to the WebSphere Integrated Solutions

Console and follow this steps:

- Go to Resources -> Resource Environment -> -> Resource environment providers -> WP

DynamicContentSpotMappings.

- Select Custom Properties.

- Select New

Page 11: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 10

- Add the “custom properties”

At the link below you find the official documentations for creating the dynamic content spots in portal 8

http://www-

10.lotus.com/ldd/portalwiki.nsf/xpDocViewer.xsp?lookupName=V8+Update%3A+Supplemental+Document

ation#action=openDocument&res_title=Creating_a_dynamic_content_spot_wp8001&content=pdcontent

http://www-

10.lotus.com/ldd/portalwiki.nsf/xpDocViewer.xsp?lookupName=V8+Update%3A+Supplemental+Document

ation#action=openDocument&res_title=Working_with_dynamic_content_spots_wp8001&content=pdcont

ent

From portal 8.0.0.1 also is possibile to register via plugin.xml all dynamic content spot but you must reboot

portal to register the dynamic content spot in the plugin.xml.

In portal 8.5 the resources aggregation framework is able to dynamically load every dynamic content spot

or module registered via plugin.xml, to load the changes simply use the theme analyzer portlet ( THANKS

FOR THIS GREAT TOOL!!!!) go in control center and click invalidate cache link.

Page 12: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 11

Create the plugin.xml in the dynamic war

Replace the content of plugin.xml file with the xml below

<?xml version="1.0" encoding="UTF-8"?> <plugin id="customTheme_dynamicContentSpots_85" name="8.5 Custom Theme Modules" provider-name="IBM" version="1.0.0"> <extension id="customTheme_dynamicContentSpots_85" point="com.ibm.portal.resourceaggregator.module"> <module id="customTheme_dynamicContentSpots_85"> <title lang="ar" value="8.5 الرئيسي النسق الى الديناميكية المحتويات نقاط"/> <title lang="ca" value="Àrees de contingut dinàmic per al tema 8.5"/> <title lang="cs" value="Dynamický obsah pro motiv 8.5"/> <title lang="da" value="Dynamiske indholdsspot for 8.5-tema"/> <title lang="de" value="Dynamische Inhaltsbereiche für das 8.5-Motiv"/> <title lang="el" value="Σημεία δυναμικού περιεχομένου για το θέμα έκδοσης 8.5"/> <title lang="en" value="Dynamic Content Spots for the 8.5 Theme"/> <title lang="es" value="Áreas de contenido dinámico para tema 8.5"/> <title lang="fi" value="Dynaamiset sisältöpisteet version 8.5 teemaan"/> <title lang="fr" value="Zones de contenu dynamique pour le thème 8.5"/> <title lang="he" value="8.5 ערכה עבור דינמית תוכן נקודת"/> <title lang="hr" value="Dinamičke točke sadržaja za 8.5 temu"/> <title lang="hu" value="Dinamikus tartalomhelyek a 8.5 témához"/> <title lang="it" value="Content spot dinamico per il tema 8.5"/>

<title lang="ja" value="8.5 テーマ用の動的コンテンツ・スポット"/> <title lang="kk" value="8.5 тақырыбына арналған Динамикалық мазмұн орындары"/>

<title lang="ko" value="8.5 테마를 위한 동적 컨텐츠 스팟"/>

<title lang="nl" value="Dynamische contentspots voor het 8.5-thema"/> <title lang="no" value="Dynamic Content Spots for the 8.5 Theme"/> <title lang="pl" value="Dynamiczne obszary danych dla kompozycji w wersji 8.5"/> <title lang="pt" value="Pontos de conteúdo dinâmico para o Tema 8.5"/> <title lang="pt_BR" value="Pontos de Conteúdo Dinâmico para o Tema 8,5"/> <title lang="ro" value="Spoturi de conţinut dinamice pentru tema 8.5"/> <title lang="ru" value="Динамические области информации для темы 8.5"/> <title lang="sk" value="Miesta dynamického obsahu pre tému 8.5"/> <title lang="sl" value="Točka dinamične vsebine za temo 8.5"/> <title lang="sv" value="Dynamiska innehållspunkter för 8.5-temat"/> <title lang="th" value="จุดแสดงเนื้อหาไดนามกิส าหรบั 8.5 Theme"/> <title lang="tr" value="8.5 Teması İçin Dinamik İçerik Noktaları"/> <title lang="uk" value="Області динамічного вмісту для теми 8.5"/>

<title lang="zh" value="8.5 主题的动态内容点"/>

<title lang="zh_TW" value="8.5 佈景主題的動態內容點"/> <description lang="ar" value="الرئيسي للنسق الديناميكية المحتويات نقاط كل تعريف يتم الل ذلك يسمح .8.5 الل من ديناميكية محتويات نقطة أي باح </".أخرى برامج وحدات خ<description lang="ca" value="Defineix totes les àrees de contingut dinàmic per al tema 8.5. Això permet superposar fàcilment les àrees de contingut dinàmic a través d'altres mòduls."/> <description lang="cs" value="Definuje veškerý dynamický obsah pro motiv 8.5. To umožňuje snadno překrýt libovolný dynamický obsah prostřednictvím jiných modulů."/> <description lang="da" value="Definerer alle dynamiske indholdsspot for 8.5-temaet. Herved bliver det nemt at overlejre et hvilket som helst indholdsspot via andre moduler."/>

Page 13: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 12

<description lang="de" value="Definiert alle dynamischen Inhaltsbereiche für das 8.5-Motiv. Dies ermöglicht die einfache Überlagerung aller dynamischen Inhaltsbereiche durch andere Module."/> <description lang="el" value="Ορίζει όλα τα σημεία δυναμικού περιεχομένου για το θέμα έκδοσης 8.5. Αυτό επιτρέπει την εύκολη επικάλυψη οποιουδήποτε σημείου δυναμικού περιεχομένου με άλλες λειτουργικές μονάδες."/> <description lang="en" value="Defines all dynamic content spots for the 8.5 Theme. This allows to easily overlay any dynamic content spot through other modules."/> <description lang="es" value="Define todas las áreas de contenido dinámico para el tema 8.5. Esto permite superponer fácilmente cualquier área de contenido dinámico en otros módulos."/> <description lang="fi" value="Määrittää kaikki version 8.5 teeman dynaamiset sisältöpisteet. Tämän avulla voit helposti peittää mahdolliset muiden moduulien kautta määritetyt dynaamiset sisältöpisteet."/> <description lang="fr" value="Définit toutes les zones de contenu dynamique pour le thème 8.5. Cela permet de facilement recouvrir une zone de contenu dynamique dans d'autres modules. "/> <description lang="he" value="מאפשר 8.5 ערכה עבור הדינמיות התוכן נקודות כל הגדרת </".אחרים מודולים דרך תוכן נקודת כל של כל ריבוד<description lang="hr" value="Definira sve dinamičke točke sadržaja za 8.5 temu. Time se omogućuje jednostavno prekrivanje bilo koje dinamičke točke sadržaja pomoću drugih modula."/> <description lang="hu" value="Meghatározza az összes dinamikus tartalomhelyet a 8.5 témához. Ezzel könnyedén átfedést hozhat létre bármelyik dinamikus tartalomhellyel más modulokon keresztül."/> <description lang="it" value="Definisce tutti i content spot dinamici per il tema 8.5. Ciò consente di sovrapporre facilmente il content spot dinamico attraverso altri moduli."/>

<description lang="ja" value="8.5 テーマ用の動的コンテンツ・スポットをすべて定義します。これ

により、他のモジュールを介して任意の動的コンテンツ・スポットを簡単にオーバーレイできます。"/> <description lang="kk" value="8.5 Тақырыбы үшін барлық динамикалық мазмұн орындарын анықтайды. Кез келген динамикалық мазмұн орындарын басқа модульдері арқылы жеңіл қабаттасуға мүмкіндік береді."/>

<description lang="ko" value="8.5 테마를 위한 동적 컨텐츠 스팟을 모두 정의합니다. 이렇게

하면 다른 모듈을 통해 동적 컨텐츠 스팟을 쉽게 오버레이할 수 있습니다."/>

<description lang="nl" value="Hiermee worden alle dynamische contentspots gedefinieerd voor het 8.5-thema. Dit maakt het mogelijk om op een eenvoudige manier dynamische contentspots te overschrijven via andere modules."/> <description lang="no" value="Definerer alle dynamiske innholdspunkter for 8.5-temaet. Dette gjør det enkelt å legge over dynamiske innholdspunkter gjennom andre moduler."/> <description lang="pl" value="Definiuje wszystkie dynamiczne obszary danych dla kompozycji w wersji 8.5. Umożliwia to łatwe nakładanie dowolnego dynamicznego obszaru danych przez inne moduły. "/> <description lang="pt" value="Define todos os pontos de conteúdo dinâmico para o Tema 8.5. Permite sobrepor com facilidade qualquer ponto de conteúdo dinâmico através de outros módulos."/> <description lang="pt_BR" value="Define todos os pontos de conteúdo dinâmico para o Tema 8,5. Isso permite sobrepor facilmente a qualquer ponto de conteúdo dinâmico através de outros módulos."/> <description lang="ro" value="Defineşte toate spoturile de conţinut dinamice pentru tema 8.5. Aceasta permite suprapunerea uşoară a spotului de conţinut dinamic pe alte module."/> <description lang="ru" value="Определяет динамические области информации для темы 8.5. Обеспечивает простое наложение динамических областей информации в других модулях."/> <description lang="sk" value="Definuje všetky miesta dynamického obsahu pre tému 8.5. Toto umožňuje jednoducho prekryť ľubovoľné miesto dynamického obsahu cez iné moduly."/>

Page 14: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 13

<description lang="sl" value="Definira vse točke dinamične vsebine za temo 8.5. To omogoča preprosto prekritje katere koli točke dinamične vsebine z drugimi moduli."/> <description lang="sv" value="Definierar alla dynamiska innehållspunkter för 8.5-temat. Det gör det enkelt att lägga på dynamiska innehållspunkter via andra moduler."/> <description lang="th" value="ก าหนดจุดแสดงเนื้อหาไดนามกิทัง้หมดส าหรบั 8.5 Theme. ซึง่อนุญาตใหซ้อ้นจุดแสดงเนื้อหาไดนามกิใดๆ ผา่นทางโมดูลอืน่ๆ ได้ง่าย"/> <description lang="tr" value="8.5 Teması için tüm dinamik içerik noktalarını tanımlar. Böylelikle, her dinamik içerik noktası diğer modüllerle kolayca yüklenebilir."/> <description lang="uk" value="Визначає всі області динамічного вмісту для теми 8.5. Це дозволяє легко накладати будь-які області динамічного вмісту різних модулів."/>

<description lang="zh" value="定义 8.5 主题所有的动态内容点。这将便于通过其他模块覆盖任何动

态内容点。"/>

<description lang="zh_TW" value="定義 8.5 佈景主題的所有動態內容點。這可讓您輕鬆地透過其他模

組套疊任何動態內容點。"/> <contribution type="dyn-cs"> <sub-contribution type="markup" ref-id="customTheme85_footer"> <uri value="res:{war:context-root}/themes/html/dynamicSpots/footer.jsp"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_crumbTrail"> <uri value="res:{war:context-root}/themes/html/dynamicSpots/crumbTrail.jsp?rootClass=wpthemeCrumbTrail&amp;startLevel=2"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_topNav"> <uri value="mvc:smartphone/tablet@res:{war:context-root}/themes/html/dynamicSpots/navigation.jsp?rootClass=wpthemeHeaderNav&amp;rootLabel=Portal&amp;startLevel=0&amp;primeRoot=true"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_primaryNav"> <uri value="mvc:res:{war:context-root}/themes/html/dynamicSpots/navigation.jsp?rootClass=wpthemePrimaryNav%2520wpthemeLeft&amp;rootLabel=Portal%2520Application&amp;startLevel=1,smartphone@,tablet@"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_secondaryNav"> <uri value="mvc:res:{war:context-root}/themes/html/dynamicSpots/navigation.jsp?rootClass=wpthemeSecondaryNav&amp;startLevel=2&amp;rootLabel=Application&amp;levelsDisplayed=2,smartphone@,tablet@"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_sideNav"> <uri value="mvc:res:{war:context-root}/themes/html/dynamicSpots/sideNavigation.jsp?startLevel=2,smartphone@,tablet@"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_mobileNav"> <uri value="mvc:smartphone/tablet@res:{war:context-root}/themes/html/dynamicSpots/mobileNavigation.jsp"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_commonActions"> <uri value="res:{war:context-root}/themes/html/dynamicSpots/commonActions.jsp"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_layout"> <uri value="lm:template"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_toolbar"> <uri value="mvc:dyn-cs:id:85toolbar,smartphone@,tablet@"/> </sub-contribution>

Page 15: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 14

<sub-contribution type="markup" ref-id="customTheme85_head"> <uri value="res:{war:context-root}/themes/html/dynamicSpots/head.jsp"/> </sub-contribution> <sub-contribution type="markup" ref-id="customTheme85_status"> <uri value="mc:wp_status_bar@res:{war:context-root}/themes/html/dynamicSpots/status.jsp"/> </sub-contribution> </contribution> </module> </extension> </plugin>

Replace the module in all theme profiles

In the static war go in the profiles folder and replace in all profiles wp_dynamicContentSpots_85 with

customTheme_dynamicContentSpots_85

Replace the new Dynamic Content Spots

Change the dynamic content spots in every file in the NLS folder.

The location of this files is “CustomThemeStatic/WebContent/themes/CustomTheme85/nls/* “

This change must be done for all theme_*.html files , for a fast replace I use notepad++ I open every

theme_xx.html and I do a find replace in all opened document, and in the find replace box I put:

- FIND: 85theme_

- REPLACE: CustomTheme85_

Page 16: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 15

Deploy Theme and Register in Websphere Portal via xmlaccess In this part is described the installation process of the theme and the registration process in websphere

portal via xmlaccess.

Deploy the ear in console

Export the ear from rad and install in portal via the integrated solution console:

Press NEXT

Page 17: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 16

Page 18: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 17

Register theme with the xml access below

Save the xml below in a file and import via portal administration.

Page 19: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 18

<?xml version="1.0" encoding="UTF-8"?>

<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="PortalConfig_8.0.0.xsd" type="update" >

<portal action="locate">

<skin action="update" active="true" context-root="/CustomThemeDynamic" default="false"

domain="rel" resourceroot="custom" type="default"

uniquename="com.ibm.portal.custom.theme.skin85.hidden">

<localedata locale="en">

<title>Custom Hidden Skin</title>

</localedata>

<parameter name="com.ibm.portal.skintype" type="string"

update="set"><![CDATA[template]]></parameter>

<parameter name="com.ibm.portal.skin.template.file.name.html" type="string"

update="set"><![CDATA[skin.html]]></parameter>

<parameter name="com.ibm.portal.skin.template.ref" type="string"

update="set"><![CDATA[war:CustomThemeStatic/themes/CustomTheme85/skins/Hidden/]]></parameter>

</skin>

Page 20: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 19

<skin action="update" active="true" context-root="/CustomThemeDynamic" default="false"

domain="rel" resourceroot="custom" type="default"

uniquename="com.ibm.portal.custom.theme.skin85.hiddenplus">

<localedata locale="en">

<title>Custom Hidden Plus Skin</title>

</localedata>

<parameter name="com.ibm.portal.skintype" type="string"

update="set"><![CDATA[template]]></parameter>

<parameter name="com.ibm.portal.skin.template.file.name.html" type="string"

update="set"><![CDATA[skin.html]]></parameter>

<parameter name="com.ibm.portal.skin.template.ref" type="string"

update="set"><![CDATA[war:CustomThemeStatic/themes/CustomTheme85/skins/HiddenPlus/]]></parame

ter>

</skin>

<skin action="update" active="true" context-root="/CustomThemeDynamic" default="false"

domain="rel" resourceroot="custom" type="default"

uniquename="com.ibm.portal.custom.theme.skin85.noskin">

<localedata locale="en">

<title>Custom NoSkin Skin</title>

</localedata>

<parameter name="com.ibm.portal.skintype" type="string"

update="set"><![CDATA[template]]></parameter>

<parameter name="com.ibm.portal.skin.template.file.name.html" type="string"

update="set"><![CDATA[skin.html]]></parameter>

<parameter name="com.ibm.portal.skin.template.ref" type="string"

update="set"><![CDATA[war:CustomThemeStatic/themes/CustomTheme85/skins/NoSkin/]]></parameter>

</skin>

<skin action="update" active="true" context-root="/CustomThemeDynamic" default="false"

domain="rel" resourceroot="custom" type="default"

uniquename="com.ibm.portal.custom.theme.skin85.standard">

<localedata locale="en">

<title>Custom Standard Skin</title>

Page 21: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 20

</localedata>

<parameter name="com.ibm.portal.skintype" type="string"

update="set"><![CDATA[template]]></parameter>

<parameter name="com.ibm.portal.skin.template.file.name.html" type="string"

update="set"><![CDATA[skin.html]]></parameter>

<parameter name="com.ibm.portal.skin.template.ref" type="string"

update="set"><![CDATA[war:CustomThemeStatic/themes/CustomTheme85/skins/Standard/]]></paramete

r>

</skin>

<theme action="update" active="true" context-root="/CustomThemeDynamic" default="false"

defaultskinref="com.ibm.portal.custom.theme.skin85.noskin" domain="rel" resourceroot="dynamicSpots"

uniquename="com.ibm.portal.custom.theme.theme85">

<localedata locale="en">

<title>Custom Theme</title>

<description/>

</localedata>

<allowed-skin skin="com.ibm.portal.custom.theme.skin85.hidden" update="set"/>

<allowed-skin skin="com.ibm.portal.custom.theme.skin85.hiddenplus" update="set"/>

<allowed-skin skin="com.ibm.portal.custom.theme.skin85.noskin" update="set"/>

<allowed-skin skin="com.ibm.portal.custom.theme.skin85.standard" update="set"/>

<parameter name="com.ibm.portal.friendly.name" type="string"

update="set"><![CDATA[CustomThemeDynamic]]></parameter>

<parameter name="com.ibm.portal.layout.template.href" type="string"

update="set"><![CDATA[war:CustomThemeStatic/themes/CustomTheme85/layout-

templates/TopColumn2ColumnUnequal/]]></parameter>

<parameter name="com.ibm.portal.theme.template.ref" type="string"

update="set"><![CDATA[war:CustomThemeStatic/themes/CustomTheme85/]]></parameter>

<parameter name="com.ibm.portal.theme.aggregationmodes" type="string"

update="set"><![CDATA[ssa]]></parameter>

<parameter name="resourceaggregation.profile" type="string"

update="set"><![CDATA[profiles/profile_deferred.json]]></parameter>

</theme>

Page 22: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 21

</portal>

</request>

Use Theme Analyzer Portlet and Validation Report In WebSphere Portal 8.5 in the portal administration there is a new portlet that help theme analysis.

In this portlet there are many useful reports and utilities, below the steps to run the theme validation

report:

Page 23: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 22

If you want to add new dynamic content spot in the plugin after the first deploy, to load the new dynamic

content spot you must invalidate the cache via Theme Analizer Portlet, below the steps to do the

invalidation:

Page 24: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 23

Page 25: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 24

After click to the link

Page 26: Custom theme creation websphere portal 8.5

CUSTOM THEME CREATION WEBSPHERE PORTAL 8.5 CF1

Custom Theme Portal 8.5 CF1 Author:Michele Buccarello Page 25

And in the SystemOut.log you should see something like this