SlideShare a Scribd company logo
1 of 10
Download to read offline
WebSphere Portal Theme Menu Framework 
Michele Buccarello 
8/27/2014 
This document describe how to use the menu framework in WebSphere Portal Theme.
WebSphere Portal Theme Menu Framework 
Websphere Portal Menu Framework 
Author:Michele Buccarello Page 1 
Table of Contents 
Abstract ....................................................................................................................................................... 2 
Menu Framework ........................................................................................................................................ 2 
Client Side ................................................................................................................................................ 2 
Server Side ............................................................................................................................................... 3 
Provide the menu via custom module .......................................................................................................... 3 
Configure the module in your Portal Theme................................................................................................. 6 
Test the menu feed ...................................................................................................................................... 8
WebSphere Portal Theme Menu Framework 
Websphere Portal Menu Framework 
Author:Michele Buccarello Page 2 
Abstract 
In WebSphere Portal Theme there is an enterprise way to write extend or overwrite menu like the action menu 
In knowledge center (link below) there is a good description about it 
http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/dev- theme/themeopt_cust_menu.dita?lang=en 
Based on this example 
http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/dev- theme/themeopt_cust_resrcpermiss.dita?lang=en 
we want extend this menu without editing the pageAction.json (like in the IBM example) . 
Menu Framework 
WebSphere Portal Menu Framework is divided in client side and server side: 
- Client Side is used to render the menu in link with standard portal css 
- Serve Side is used to make the json feed in format ?uri=menu:customMenu 
Client Side 
All details about client side framework can be found here: 
http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/dev- theme/themeopt_cust_clientframe.dita
WebSphere Portal Theme Menu Framework 
Websphere Portal Menu Framework 
Author:Michele Buccarello Page 3 
In this article we use the sample rendering way: 
<span role="button" aria-haspopup="true" class="wpthemeMenuFocus" onclick="if (typeof wptheme != 'undefined') wptheme.contextMenu.init({ 'node': this, menuId: 'pageAction', jsonQuery: {'navID':ibmCfg.portalConfig.currentPageOID}, params: {'alignment':'right'}});" 
<span class="wpthemeUnderlineText" id="wpContextMenu">My Menu</span> 
</span> 
Highlighted in yellow you could see the menuid name created with the server side framework. 
Server Side 
All details about client side framework can be found here: 
http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/dev- theme/themeopt_cust_serverframe.dita 
In this article we don’t generate dynamically the feed but we provide JSON file in the format described in the knowledge center link. 
Provide the menu via custom module 
In this step we create an ear with a custom plugin.xml, this plugin describe how the menu is recognized and provided by the Portal Theme.
WebSphere Portal Theme Menu Framework 
Websphere Portal Menu Framework 
Author:Michele Buccarello Page 4 
1) Create a Dynamic Web Project 
2) Create in the webcontent two files: - decorations.xml - plugin.xml 
Inside the plugin.xml put the content below 
<?xml version="1.0" encoding="UTF-8"?> 
<plugin id="staticMenuModule" name="8.5 staticMenuModule" provider-name="IBM" version="1.0.0"> 
<extension point="com.ibm.portal.resourceaggregator.module" id="staticMenuModule" > 
<module id="staticMenuModule"> 
<contribution type="menu"> 
<sub-contribution type="json" ref-id="pageAction"> 
<uri value="res:{war:context- root}/menu/json/menuItem.json" /> 
</sub-contribution> 
</contribution> 
<contribution type="dyn-cs"> 
<sub-contribution type="markup" ref-id="menuActionMarkUp"> 
<uri value="res:{war:context-root}/menu/jsp/menuAction.jsp"/> 
</sub-contribution> 
</contribution> 
</module> 
</extension> 
</plugin>
WebSphere Portal Theme Menu Framework 
Websphere Portal Menu Framework 
Author:Michele Buccarello Page 5 
3) Create the folder menu under the WebContent folder and then create two folders named jsp and json, in the jsp folder create the file menuAction.jsp in the json folder create the file menuItem.json, at this point you should see something like this: 
In the menuItem.json put this content: 
[ 
{ 
"type":"DynamicMenuitem", 
"id":"ibm.portal.operations.assignPagePermissions", 
"titles": [ 
{ 
"value":"Assign Page Permissions Modified", 
"lang":"en" 
} 
] 
} 
] 
In the menuAction.jsp put this content: 
<span role="button" aria-haspopup="true" class="wpthemeMenuFocus" 
onclick="if (typeof wptheme != 'undefined') wptheme.contextMenu.init({ 'node': this, menuId: 'pageAction', jsonQuery: {'navID':ibmCfg.portalConfig.currentPageOID}, params: {'alignment':'right'}});"> 
<span class="wpthemeUnderlineText" id="wpContextMenu"> 
My Menu 
</span> 
</span>
WebSphere Portal Theme Menu Framework 
Websphere Portal Menu Framework 
Author:Michele Buccarello Page 6 
Configure the module in your Portal Theme 
At this point you have been created module named staticMenuModule with two contribution: 
- <sub-contribution type="json" ref-id="pageAction"> this subcotribution is a menu type and have as a reference the pageAction menu feed 
- <sub-contribution type="markup" ref-id="menuActionMarkUp"> this subcontribution is the dynamiccontentspot that contain the client side framework html piece 
To see the module active and functional 
1) Add the module in the current theme profiles, in my case this profile is the profile_deferred.json 
2) Add the dynamiccontentspot in the theme_xx.html, for testing purpose just customize the theme_en.html
WebSphere Portal Theme Menu Framework 
Websphere Portal Menu Framework 
Author:Michele Buccarello Page 7 
3) Invalidate the portal theme cache and check successful loading of the module throw the Theme Analizer Portlet. Click on the link UTILITIES  CONTROL CENTER Click in the link under the sections “Invalidate Cache” 
In the SystemOut.log you should see something like this
WebSphere Portal Theme Menu Framework 
Websphere Portal Menu Framework 
Author:Michele Buccarello Page 8 
4) Check in every portal pages if the dynamic content spot is visibile 
At this point the menu Actions and the custom menu “My Menu” have the same items and are extend with the custom link to the Resource Permission portlet 
Test the menu feed 
To ensure the right menu generation as described in the server side framework link it is important check the feed via the poc uri uri=menu:
WebSphere Portal Theme Menu Framework 
Websphere Portal Menu Framework 
Author:Michele Buccarello Page 9 
In my case I got the page oid and compose this url http://localhost:10039/wps/mycontenthandler?uri=menu:pageAction&navID=Z6_4AD223S0K0VR30ASD3J5LF2005 
In your browser now you are able to see the menuAction json feed with your custom json provided with the custom theme module

More Related Content

What's hot

So you want to build a Facebook app
So you want to build a Facebook appSo you want to build a Facebook app
So you want to build a Facebook appkamal.fariz
 
Unit 2.10 - Frames
Unit 2.10 - FramesUnit 2.10 - Frames
Unit 2.10 - FramesIntan Jameel
 
Ibm tivoli access manager for e business junctions and links redp4621
Ibm tivoli access manager for e business junctions and links redp4621Ibm tivoli access manager for e business junctions and links redp4621
Ibm tivoli access manager for e business junctions and links redp4621Banking at Ho Chi Minh city
 
DotNet Nuke Document To Create Child Portal
DotNet Nuke Document To Create Child PortalDotNet Nuke Document To Create Child Portal
DotNet Nuke Document To Create Child PortalSanjeev Chaudhary
 
APEX navigation concepts
APEX navigation conceptsAPEX navigation concepts
APEX navigation conceptsTobias Arnhold
 
Facebook Open Stream API - Facebook Developer Garage Dhaka
Facebook Open Stream API - Facebook Developer Garage DhakaFacebook Open Stream API - Facebook Developer Garage Dhaka
Facebook Open Stream API - Facebook Developer Garage DhakaMohammad Emran Hasan
 
( 16 ) Office 2007 Create An Extranet Site With Forms Authentication
( 16 ) Office 2007   Create An Extranet Site With Forms Authentication( 16 ) Office 2007   Create An Extranet Site With Forms Authentication
( 16 ) Office 2007 Create An Extranet Site With Forms AuthenticationLiquidHub
 
Firefox extension Development
Firefox extension DevelopmentFirefox extension Development
Firefox extension DevelopmentAbhinav Chittora
 
Open mic ibm connections and ibm verse on premise integration 1
Open mic  ibm connections and ibm verse on premise integration 1Open mic  ibm connections and ibm verse on premise integration 1
Open mic ibm connections and ibm verse on premise integration 1sreeJk
 
How To Write Your First Firefox Extension
How To Write Your First Firefox ExtensionHow To Write Your First Firefox Extension
How To Write Your First Firefox ExtensionRobert Nyman
 
WordPress SugarCRM Customer Portal Pro Plugin
WordPress SugarCRM Customer Portal Pro PluginWordPress SugarCRM Customer Portal Pro Plugin
WordPress SugarCRM Customer Portal Pro PluginBiztech Store
 
Kkl Simplified Dec 22, 08
Kkl Simplified Dec 22, 08Kkl Simplified Dec 22, 08
Kkl Simplified Dec 22, 08guestcec7822
 
Auslug 2011 customising ibm connections
Auslug 2011 customising ibm connectionsAuslug 2011 customising ibm connections
Auslug 2011 customising ibm connectionsAdam Brown
 
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksMagento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksYireo
 
Integrate jQuery PHP MySQL project to JOOMLA web site
Integrate jQuery PHP MySQL project to JOOMLA web siteIntegrate jQuery PHP MySQL project to JOOMLA web site
Integrate jQuery PHP MySQL project to JOOMLA web siteHock Leng PUAH
 
Rapid Development With CakePHP
Rapid Development With CakePHPRapid Development With CakePHP
Rapid Development With CakePHPEdureka!
 
Blog Pro 2.0 User Guide
Blog Pro 2.0 User GuideBlog Pro 2.0 User Guide
Blog Pro 2.0 User GuideIgor Goltsov
 
Whmcs addon module docs
Whmcs addon module docsWhmcs addon module docs
Whmcs addon module docsquyvn
 
Firefox Extension Development
Firefox Extension DevelopmentFirefox Extension Development
Firefox Extension Developmentphamvanvung
 

What's hot (20)

So you want to build a Facebook app
So you want to build a Facebook appSo you want to build a Facebook app
So you want to build a Facebook app
 
Unit 2.10 - Frames
Unit 2.10 - FramesUnit 2.10 - Frames
Unit 2.10 - Frames
 
Ibm tivoli access manager for e business junctions and links redp4621
Ibm tivoli access manager for e business junctions and links redp4621Ibm tivoli access manager for e business junctions and links redp4621
Ibm tivoli access manager for e business junctions and links redp4621
 
DotNet Nuke Document To Create Child Portal
DotNet Nuke Document To Create Child PortalDotNet Nuke Document To Create Child Portal
DotNet Nuke Document To Create Child Portal
 
APEX navigation concepts
APEX navigation conceptsAPEX navigation concepts
APEX navigation concepts
 
Facebook Open Stream API - Facebook Developer Garage Dhaka
Facebook Open Stream API - Facebook Developer Garage DhakaFacebook Open Stream API - Facebook Developer Garage Dhaka
Facebook Open Stream API - Facebook Developer Garage Dhaka
 
( 16 ) Office 2007 Create An Extranet Site With Forms Authentication
( 16 ) Office 2007   Create An Extranet Site With Forms Authentication( 16 ) Office 2007   Create An Extranet Site With Forms Authentication
( 16 ) Office 2007 Create An Extranet Site With Forms Authentication
 
Firefox extension Development
Firefox extension DevelopmentFirefox extension Development
Firefox extension Development
 
Power shell
Power shellPower shell
Power shell
 
Open mic ibm connections and ibm verse on premise integration 1
Open mic  ibm connections and ibm verse on premise integration 1Open mic  ibm connections and ibm verse on premise integration 1
Open mic ibm connections and ibm verse on premise integration 1
 
How To Write Your First Firefox Extension
How To Write Your First Firefox ExtensionHow To Write Your First Firefox Extension
How To Write Your First Firefox Extension
 
WordPress SugarCRM Customer Portal Pro Plugin
WordPress SugarCRM Customer Portal Pro PluginWordPress SugarCRM Customer Portal Pro Plugin
WordPress SugarCRM Customer Portal Pro Plugin
 
Kkl Simplified Dec 22, 08
Kkl Simplified Dec 22, 08Kkl Simplified Dec 22, 08
Kkl Simplified Dec 22, 08
 
Auslug 2011 customising ibm connections
Auslug 2011 customising ibm connectionsAuslug 2011 customising ibm connections
Auslug 2011 customising ibm connections
 
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksMagento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
 
Integrate jQuery PHP MySQL project to JOOMLA web site
Integrate jQuery PHP MySQL project to JOOMLA web siteIntegrate jQuery PHP MySQL project to JOOMLA web site
Integrate jQuery PHP MySQL project to JOOMLA web site
 
Rapid Development With CakePHP
Rapid Development With CakePHPRapid Development With CakePHP
Rapid Development With CakePHP
 
Blog Pro 2.0 User Guide
Blog Pro 2.0 User GuideBlog Pro 2.0 User Guide
Blog Pro 2.0 User Guide
 
Whmcs addon module docs
Whmcs addon module docsWhmcs addon module docs
Whmcs addon module docs
 
Firefox Extension Development
Firefox Extension DevelopmentFirefox Extension Development
Firefox Extension Development
 

Similar to Websphere portal theme menu framework

Lecture 2 Styling and Layout in React Native.pptx
Lecture 2 Styling and Layout in React Native.pptxLecture 2 Styling and Layout in React Native.pptx
Lecture 2 Styling and Layout in React Native.pptxGevitaChinnaiah
 
Controls Use in Windows Presentation Foundation (WPF)
Controls Use in Windows Presentation Foundation (WPF)Controls Use in Windows Presentation Foundation (WPF)
Controls Use in Windows Presentation Foundation (WPF)iFour Technolab Pvt. Ltd.
 
#31.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#31.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#31.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#31.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Why NextCMS: Layout Editor
Why NextCMS: Layout EditorWhy NextCMS: Layout Editor
Why NextCMS: Layout EditorPhuoc Nguyen Huu
 
May the core be with you - JandBeyond 2014
May the core be with you - JandBeyond 2014May the core be with you - JandBeyond 2014
May the core be with you - JandBeyond 2014Chad Windnagle
 
Building Potent WordPress Websites
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress WebsitesKyle Cearley
 
Ionic tabs template explained
Ionic tabs template explainedIonic tabs template explained
Ionic tabs template explainedRamesh BN
 
WordCamp Manchester 2016 - Making WordPress Menus Smarter
WordCamp Manchester 2016 - Making WordPress Menus SmarterWordCamp Manchester 2016 - Making WordPress Menus Smarter
WordCamp Manchester 2016 - Making WordPress Menus SmarterJonny Allbut
 
Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3Park Jonggun
 
Different types of sticker apps
Different types of sticker appsDifferent types of sticker apps
Different types of sticker appsJelena Krmar
 
WebClient Customization.pdf
WebClient Customization.pdfWebClient Customization.pdf
WebClient Customization.pdfsatyasekhar123
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Arun Gupta
 
M2ModuleDevelopmenteBook
M2ModuleDevelopmenteBookM2ModuleDevelopmenteBook
M2ModuleDevelopmenteBookTrọng Huỳnh
 
Trustparency web doc spring 2.5 & hibernate
Trustparency web doc   spring 2.5 & hibernateTrustparency web doc   spring 2.5 & hibernate
Trustparency web doc spring 2.5 & hibernatetrustparency
 
ChocolateChip-UI
ChocolateChip-UIChocolateChip-UI
ChocolateChip-UIGeorgeIshak
 

Similar to Websphere portal theme menu framework (20)

Lecture 2 Styling and Layout in React Native.pptx
Lecture 2 Styling and Layout in React Native.pptxLecture 2 Styling and Layout in React Native.pptx
Lecture 2 Styling and Layout in React Native.pptx
 
Controls Use in Windows Presentation Foundation (WPF)
Controls Use in Windows Presentation Foundation (WPF)Controls Use in Windows Presentation Foundation (WPF)
Controls Use in Windows Presentation Foundation (WPF)
 
#31.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#31.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#31.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#31.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
Jsf
JsfJsf
Jsf
 
Asp PPT (.NET )
Asp PPT (.NET )Asp PPT (.NET )
Asp PPT (.NET )
 
Why NextCMS: Layout Editor
Why NextCMS: Layout EditorWhy NextCMS: Layout Editor
Why NextCMS: Layout Editor
 
May the core be with you - JandBeyond 2014
May the core be with you - JandBeyond 2014May the core be with you - JandBeyond 2014
May the core be with you - JandBeyond 2014
 
Building Potent WordPress Websites
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress Websites
 
Ionic tabs template explained
Ionic tabs template explainedIonic tabs template explained
Ionic tabs template explained
 
WordCamp Manchester 2016 - Making WordPress Menus Smarter
WordCamp Manchester 2016 - Making WordPress Menus SmarterWordCamp Manchester 2016 - Making WordPress Menus Smarter
WordCamp Manchester 2016 - Making WordPress Menus Smarter
 
Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3
 
Different types of sticker apps
Different types of sticker appsDifferent types of sticker apps
Different types of sticker apps
 
WebClient Customization.pdf
WebClient Customization.pdfWebClient Customization.pdf
WebClient Customization.pdf
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
 
M2ModuleDevelopmenteBook
M2ModuleDevelopmenteBookM2ModuleDevelopmenteBook
M2ModuleDevelopmenteBook
 
Trustparency web doc spring 2.5 & hibernate
Trustparency web doc   spring 2.5 & hibernateTrustparency web doc   spring 2.5 & hibernate
Trustparency web doc spring 2.5 & hibernate
 
ChocolateChip-UI
ChocolateChip-UIChocolateChip-UI
ChocolateChip-UI
 
Eclipse Tricks
Eclipse TricksEclipse Tricks
Eclipse Tricks
 
Servlets
ServletsServlets
Servlets
 
Asp.net
Asp.netAsp.net
Asp.net
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

Websphere portal theme menu framework

  • 1. WebSphere Portal Theme Menu Framework Michele Buccarello 8/27/2014 This document describe how to use the menu framework in WebSphere Portal Theme.
  • 2. WebSphere Portal Theme Menu Framework Websphere Portal Menu Framework Author:Michele Buccarello Page 1 Table of Contents Abstract ....................................................................................................................................................... 2 Menu Framework ........................................................................................................................................ 2 Client Side ................................................................................................................................................ 2 Server Side ............................................................................................................................................... 3 Provide the menu via custom module .......................................................................................................... 3 Configure the module in your Portal Theme................................................................................................. 6 Test the menu feed ...................................................................................................................................... 8
  • 3. WebSphere Portal Theme Menu Framework Websphere Portal Menu Framework Author:Michele Buccarello Page 2 Abstract In WebSphere Portal Theme there is an enterprise way to write extend or overwrite menu like the action menu In knowledge center (link below) there is a good description about it http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/dev- theme/themeopt_cust_menu.dita?lang=en Based on this example http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/dev- theme/themeopt_cust_resrcpermiss.dita?lang=en we want extend this menu without editing the pageAction.json (like in the IBM example) . Menu Framework WebSphere Portal Menu Framework is divided in client side and server side: - Client Side is used to render the menu in link with standard portal css - Serve Side is used to make the json feed in format ?uri=menu:customMenu Client Side All details about client side framework can be found here: http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/dev- theme/themeopt_cust_clientframe.dita
  • 4. WebSphere Portal Theme Menu Framework Websphere Portal Menu Framework Author:Michele Buccarello Page 3 In this article we use the sample rendering way: <span role="button" aria-haspopup="true" class="wpthemeMenuFocus" onclick="if (typeof wptheme != 'undefined') wptheme.contextMenu.init({ 'node': this, menuId: 'pageAction', jsonQuery: {'navID':ibmCfg.portalConfig.currentPageOID}, params: {'alignment':'right'}});" <span class="wpthemeUnderlineText" id="wpContextMenu">My Menu</span> </span> Highlighted in yellow you could see the menuid name created with the server side framework. Server Side All details about client side framework can be found here: http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/dev- theme/themeopt_cust_serverframe.dita In this article we don’t generate dynamically the feed but we provide JSON file in the format described in the knowledge center link. Provide the menu via custom module In this step we create an ear with a custom plugin.xml, this plugin describe how the menu is recognized and provided by the Portal Theme.
  • 5. WebSphere Portal Theme Menu Framework Websphere Portal Menu Framework Author:Michele Buccarello Page 4 1) Create a Dynamic Web Project 2) Create in the webcontent two files: - decorations.xml - plugin.xml Inside the plugin.xml put the content below <?xml version="1.0" encoding="UTF-8"?> <plugin id="staticMenuModule" name="8.5 staticMenuModule" provider-name="IBM" version="1.0.0"> <extension point="com.ibm.portal.resourceaggregator.module" id="staticMenuModule" > <module id="staticMenuModule"> <contribution type="menu"> <sub-contribution type="json" ref-id="pageAction"> <uri value="res:{war:context- root}/menu/json/menuItem.json" /> </sub-contribution> </contribution> <contribution type="dyn-cs"> <sub-contribution type="markup" ref-id="menuActionMarkUp"> <uri value="res:{war:context-root}/menu/jsp/menuAction.jsp"/> </sub-contribution> </contribution> </module> </extension> </plugin>
  • 6. WebSphere Portal Theme Menu Framework Websphere Portal Menu Framework Author:Michele Buccarello Page 5 3) Create the folder menu under the WebContent folder and then create two folders named jsp and json, in the jsp folder create the file menuAction.jsp in the json folder create the file menuItem.json, at this point you should see something like this: In the menuItem.json put this content: [ { "type":"DynamicMenuitem", "id":"ibm.portal.operations.assignPagePermissions", "titles": [ { "value":"Assign Page Permissions Modified", "lang":"en" } ] } ] In the menuAction.jsp put this content: <span role="button" aria-haspopup="true" class="wpthemeMenuFocus" onclick="if (typeof wptheme != 'undefined') wptheme.contextMenu.init({ 'node': this, menuId: 'pageAction', jsonQuery: {'navID':ibmCfg.portalConfig.currentPageOID}, params: {'alignment':'right'}});"> <span class="wpthemeUnderlineText" id="wpContextMenu"> My Menu </span> </span>
  • 7. WebSphere Portal Theme Menu Framework Websphere Portal Menu Framework Author:Michele Buccarello Page 6 Configure the module in your Portal Theme At this point you have been created module named staticMenuModule with two contribution: - <sub-contribution type="json" ref-id="pageAction"> this subcotribution is a menu type and have as a reference the pageAction menu feed - <sub-contribution type="markup" ref-id="menuActionMarkUp"> this subcontribution is the dynamiccontentspot that contain the client side framework html piece To see the module active and functional 1) Add the module in the current theme profiles, in my case this profile is the profile_deferred.json 2) Add the dynamiccontentspot in the theme_xx.html, for testing purpose just customize the theme_en.html
  • 8. WebSphere Portal Theme Menu Framework Websphere Portal Menu Framework Author:Michele Buccarello Page 7 3) Invalidate the portal theme cache and check successful loading of the module throw the Theme Analizer Portlet. Click on the link UTILITIES  CONTROL CENTER Click in the link under the sections “Invalidate Cache” In the SystemOut.log you should see something like this
  • 9. WebSphere Portal Theme Menu Framework Websphere Portal Menu Framework Author:Michele Buccarello Page 8 4) Check in every portal pages if the dynamic content spot is visibile At this point the menu Actions and the custom menu “My Menu” have the same items and are extend with the custom link to the Resource Permission portlet Test the menu feed To ensure the right menu generation as described in the server side framework link it is important check the feed via the poc uri uri=menu:
  • 10. WebSphere Portal Theme Menu Framework Websphere Portal Menu Framework Author:Michele Buccarello Page 9 In my case I got the page oid and compose this url http://localhost:10039/wps/mycontenthandler?uri=menu:pageAction&navID=Z6_4AD223S0K0VR30ASD3J5LF2005 In your browser now you are able to see the menuAction json feed with your custom json provided with the custom theme module