Search This Blog

Thursday, November 17, 2016

How share arrtribute between processAction and render methods ?

1- Add following to portlet.xml

<container-runtime-option>
<name>javax.portlet.actionScopedRequestAttributes</name>
<value>true</value>
<value>numberOfCachedScopes</value>
<value>10</value>
</container-runtime-option>

2-  set the request object attributes on processAction

request.setAttribute("attr1", request.getParameter("attr1"));

3- read attribute value in render

request.getAttribute("attr1")

Monday, October 17, 2016

How to set a profile override on a page in IBM Portal 8/8.5 ?


 1] Page Properties portlet

  1. Open the Actions menu.
  2. Select Page Properties.
  3. Expand the Advanced Options section.
  4. Select the option I want to set parameters.
  5. Create parameter with the name resourceaggregation.profile and value that points to the profile override on the page.
  6. For Example: profiles/profile_full.json.
  7. Add the new parameter.
  8. Select OK to exit the parameters screen.
  9. Select OK to save the Page Properties.

2] WebDAV

  1. Connect to WebDAV for the page where you want to set the profile override.
  2. Download the metadata.properties file that displays for the page to your local system.
  3. Open the metadata.properties file on your local system.
  4. Set a parameter with the name resourceaggregation.profile and a value pointing to the location of the profile.
  5. For Example:

    resourceaggregation.profile=profiles/profile_lightweight.json
  6. Save the file.
  7. Upload the file back to WebDAV.

3] XMLAccess

  1. Export the page you want to set the profile override on, you can use the command line or the Manage Pages portlet.
  2. Open the XML export of the page and find the definition for the page.
  3. For Example:

    <content-node action="update" active="true" allportletsallowed="true" content-parentref=" Z6_M0000000000000000000000001" create-type="explicit" domain="rel" objectid=" Z6_M0000000000000000000000002" ordinal="700" themeref="ZJ_MLSU3F5400G000IPJM60CT3GN6" type="staticpage">
  4. Set a metadata parameter on the page with the name resourceaggregation.profile and a value pointing to the profile.
  5. For Example:

    <content-node action="update" active="true" allportletsallowed="true" content-parentref=" Z6_M0000000000000000000000001" create-type="explicit" domain="rel" objectid=" Z6_M0000000000000000000000002" ordinal="700" themeref="ZJ_MLSU3F5400G000IPJM60CT3GN6" type="staticpage">
       <parameter name="resourceaggregation.profile" type="string" update="set">profiles/profile_full.json</parameter>
    </content-node>
  6. Import the XML file using the command line or use the XML Import portlet.

Sunday, October 16, 2016

What are IBM Lotus WCM 8.5 workflows?




Workflows can control the access to, the verification and the eventual approval of:
         a. Content (enabled by default)
         b. Design items
 IBM Web Content Manager allows the building of any serial workflow with an unlimited set of stages.
Each content or design item:
        a. Can have its own workflow.
        b. Has its own access control, which the workflow partly manages.
        c.  Becomes available on your website when it is approved at all stages.

What is IBM WebSphere Server Cell ?



• A cell is a logical grouping of WebSphere Application Server
instances into a single management entity.

- A cell consists of the following items:
1– Deployment manager
• A WebSphere Application Server instance is responsible for the
administrative functions of the cell.
• Only one deployment manager is in a cell.
2– Node
• A WebSphere Application Server is responsible for synchronizing server
configurations with the deployment manager.
3– Application server
• The application server performs the actual work that is associated with
the business purposes of the cell.

Wednesday, September 21, 2016

What is WebSeal, and Why we use it ?



WebSEAL is a resource manager that protects web-based information and resources. It can provide single sign-on solutions and incorporate back-end web application server resources into its security policy.

WebSEAL acts as a reverse web proxy by receiving HTTP/HTTPS requests from a web browser and delivering content from its own web server or from junctioned back-end web application servers. 
WebSEAL appears as a web server to clients and appears as a web browser to the junctioned back-end servers it is protecting.

Requests passing through WebSEAL are evaluated by the Security Access Manager authorization service to determine whether the user is authorized to access the requested resource.

WebSEAL provides the following features:

  • Supports multiple authentication methods.
  • Integrates with Security Access Manager authorization service.
  • Accepts HTTP and HTTPS requests.
  • Integrates and protects back-end server resources through WebSEAL junction technology.
  • Performs as a reverse web proxy.
  • Provides single sign-on capabilities.


Example : 
When click on following link 'https://www.rta.ae/wpsv5/wps/portalit will redirect to this link 'https://www.rta.ae/wps/portal/rta/ae/home'

Tuesday, September 20, 2016

How synchronize Portal Page with current page layout in IBM WebSphere Portal 8/8.5 ?




1- Go to Manage Pages page in Portal Admin.
2- Click on second button 'Synchronize layout model with latest layout template'

Monday, September 19, 2016

How to enable / disable edit mode for portal pages in WebSphere Portal 8/8.5?




1- Go to page properties .
2- if you did not find following parameter 'theme.disable.edit.mode', add it to page properties.
3- Set with false if you want to enable Edit mode.

Thursday, September 1, 2016

The meaning of the css classes provided by IBM to create custom layout in IBM Portal Theme ?



The meaning of the elements is as follows:
class="component-container"
The static page parser recognizes the microformat to define containers in the page layout model that can contain components. Components can be portlets or widgets.
name="ibmMainContainer"
The name attribute on a component container identifies that container uniquely to the page. The static page parser uses the name to correlate containers when it updates the page definition. Using consistent names across layout templates preserves your container contents when you switch between layouts on pages. There must always be a container that is named ibmMainContainer for the main content of the page.
name="ibmHiddenWidgets"
When you create your own layouts, there must always be the one container at the beginning of the page named ibmHiddenWidgets.
name="headline"
If there are containers other than ibmHiddenWidgets or ibmMainContainer, use headline for a header or banner across the page for smooth switching between your layouts and the default layouts.
name="secondary"
Use secondary for content that is secondary to the main content, such as a sidebar.
name="tertiary"
Use tertiary for content that supports the secondary content.
name="additional"
Use additional for content that supports the tertiary content.
name="footer"
Use footer for an item at the end of the page.
class="ibmDndColumn"
class="ibmDndRow"
This class is required for client-side drag-and-drop support. Mark your component container with one of these classes.
class="wpthemeCol"
class="wpthemeRow"
This class provides CSS positioning information. Mark your component container with one of these classes.
class="wpthemeHeadlineContainer"
class="wpthemePrimaryContainer"
class="wpthemeSecondaryContainer"
class="wpthemeTertiaryContainer"
These classes provide CSS sizing information. Mark your component container with one of these classes. These classes are optional. You can use one of your own classes if your container sizing requirements vary from what these provide.
class="wpthemeLeft"
This class provides CSS positioning information. Mark your component container with this class if it is one of multiple containers on the same vertical level and floats to stay on the same level.



https://www.ibm.com/support/knowledgecenter/SSFTN5_8.0.1/com.ibm.wbpm.admin.doc/customizing/cadm_bsp_custompagelayout.html

Tuesday, August 9, 2016

What are IBM WebSphere cells ? 

A- A WebSphere cell defines an administrative domain.
B- Available in WebSphere Application Server Network Deployment.
C- A deployment manager provides centralized administration for entire cell.
D- A cell is created as a profile.
E-  Nodes run application components in application servers.


How to Import a single IBM WCM library:
1- ConfigEngine.bat import-wcm-data -DWasPassword=wpsadmin -DPortalAdminPwd=wpsadmin -Dimport.libraryname=MyLib -Dimport.directory=/tmp/wcm/MyLib
2. Import a single library in a Virtual Portal:
ConfigEngine.bat import-wcm-data -DWasPassword=wpsadmin -DPortalAdminPwd=wpsadmin -DVirtualPortalContext=myvp -Dimport.libraryname=MyLib -Dimport.directory=/tmp/wcm/MyLib
3. Import all libraries:
ConfigEngine.bat import-wcm-data -DWasPassword=wpsadmin -DPortalAdminPwd=wpsadmin -Dimport.directory=/tmp/wcm
4. Import all libraries in a Virtual Portal:
ConfigEngine.bat import-wcm-data -DWasPassword=wpsadmin -DPortalAdminPwd=wpsadmin -DVirtualPortalContext=myvp -Dimport.directory=/tmp/wcm
What is conditioning in IBM Lotus WCM 8.5?

We can create if-else statement in WCM.
When you add element using 'Insert Tag':
  •   Select Plugin.
  •   Select Plugin: ifNotEmpty.
            Example:
   [Plugin:ifNotEmpty value="[Element context='autofill' type='content'   key='video_path']"]  
  <iframe width="280" height="315"  
       src="[Element context="autofill" type="content" key="video_path"]">  
           </iframe>  
 [/Plugin:ifNotEmpty] 


How to define new IBM WCM 8.5 Library ? 

Step 1

Step 2

Step 3

What are IBM Syndicators?



1- What is Syndication ?

Syndication is the method used by IBM® Web Content Manager to replicate data from a web content library on one server to a web content library on another server.



2- How to enable Syndication ?

        A)The syndicator defines a connection to the subscriber and indicates which libraries are to be             replicated to the subscriber.

       B)The subscriber defines a connection to the syndicator and receives the data replicated from                the libraries specified by the syndicator.


3- What are Syndication methods ? 

A) Live items:

Live item syndication is mostly used when syndicating to a staging or delivery server. The following items are syndicated:
  • Published
  • Expired
Draft items, projects and items in a project are not syndicated.


B) Live and projects:

The advantage of using "Live and projects" syndication is to gradually syndicate projects to a staging or delivery server rather that waiting to syndicate all the items in a project after they all achieve a published state. The following items are syndicated:
  • Published
  • Expired
  • Projects
  • Draft items in a project
Draft items outside of projects are not syndicated.


C) All items:

All item syndication is mostly used when syndicating between servers within an authoring environment. The following items are syndicated:
  • Published
  • Expired
  • Projects
  • Draft items in a project
  • Other draft items
  • Versions
  • Deleted items

Monday, July 11, 2016

What is DMGR ?



Manages the node agents.
Holds the configuration repository for the entire management domain, called a cell.
The deployment manager is defined within a profile.
Administrative service runs inside the dmgr.

Monday, May 23, 2016

How to create IBM Portal 8.5 Bread-Crumb?
  1. Create JSP pages to generate Portal Pages Bread-Crumb.
  2.  This JSP will iterate over all portal pages.
  3.  Bread-Crumb.jsp : 
 <%@ page session="false" buffer="none" %>   
 <%@ page trimDirectiveWhitespaces="true" %>  
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
 <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>  
 <%@ include file="../includePortalTaglibs.jspf" %>  
 <c:if test="${fn:length(wp.selectionModel.selectionPath) > (param.startLevel+1)}">  
 <div class="${param.rootClass} wpthemeLeft">  
  <c:forEach var="node" items="${wp.selectionModel.selectionPath}" varStatus="status" begin="${param.startLevel}" step="1">  
  <c:set var="nodeID" value="${wp.identification[node]}"/>  
  <c:set var="separator" value="&gt;" />  
  <c:if test="${!node.metadata['com.ibm.portal.Hidden']}">  
   <c:if test="${status.count > 1}">  
   <span class="wpthemeCrumbTrailSeparator">${separator}</span>  
   </c:if>  
   <c:choose>  
   <c:when test="${wp.identification[wp.selectionModel.selected] == nodeID}">  
    <strong><span class="wpthemeSelected" lang="${node.title.xmlLocale}" dir="${node.title.direction}"><c:out value="${node.title}"/></span></strong>  
   </c:when>  
   <c:when test="${node.contentNode.contentNodeType == 'LABEL'}">  
    <span lang="${node.title.xmlLocale}" dir="${node.title.direction}"><c:out value="${node.title}"/></span>  
   </c:when>  
   <c:otherwise>  
    <a href="?uri=nm:oid:${nodeID}"><span lang="${node.title.xmlLocale}" dir="${node.title.direction}"><c:out value="${node.title}"/></span></a>  
   </c:otherwise>  
   </c:choose>  
  </c:if>  
  </c:forEach>  
 </div>  
 </c:if>  


Monday, May 9, 2016

How we send parameters using Menu components in IBM Lotus WCM 8.5?

We can set different parameters in for all selected and included categories
Example: if we have to show content according to two categories and show only that content which contains both the categories. We have to tick 3 
checkboxes from top "Result must match all categories"
http://hostname/wps/wcm/connect/Library/SiteArea?srv=cmpnt&source=library&cmpntname=Library/MenuComponentName&categoryValue=saransh,saransh1
It will fetch the content which have both categories saransh and saransh1 under SiteArea inside library.
If a category is under different library than WCM URL will be:-
http://hostname/wps/wcm/connect/Library/SiteArea?srv=cmpnt&source=library&cmpntname=Library/MenuComponentName&categoryValue=/Library1/Taxonomy/saransh,/Library1/Taxonomy/saransh1

Monday, April 4, 2016

How to Integrate between IBM Lotus WCM 8.5 and IBM Portal 8.5?

1- Create Portal Page.
2- Add Web Content Viewer portlet.
3- Go to portal page.
4- Enable edit mode.
5- Click on Edit Shared Setting.
6- Configure portlet.

Tuesday, March 22, 2016

What is CSA?
  • Client-side aggregation (CSA) is a new method of rendering a WebSphere Portal page that moves the rendering workload from the server to the client. It is made possible with the Representational State Transfer (REST) services introduced in WebSphere Portal 6.1. 
  • In the traditional server-side aggregation (SSA) rendering, the page and each of the portlets   is completely rendered on the server, using JSPs, and returned to the client in one big response. 
  • In contrast, in the CSA, we request only the pieces of information from the server that are required to update the page as a result of the user’s interactions with the page
  •  For example, if a page contains four portlets and the user clicks a link in one of the portlets, only that portlet is updated. This means the server must render only one portlet, instead of four portlets plus the theme for an interaction with a single portlet. 
  • The REST services also take greater advantage of caching. Since each individual artifact can be independently cache-able, the client ends up retrieving a greater number of responses directly out of cache, further reducing the server workload. 

Tuesday, March 8, 2016

What are IBM Lotus WCM 8.5 main elements?



A- Presentation Template.                                                
B- Authoring Template.
C- Components.
D- Workflow.
E- Categories.
F- Content. 

Sunday, January 17, 2016

What is Theme Manger in IBM Portal 8.5.


Use the Theme Manager portlet to create new themes from templates, edit existing themes, and copy, export, or delete themes with one click. You can find the Theme Manager by clicking Applications menu > Theme Development in your portal. From Theme Development, you can access two tools: Theme Manager and Theme Analyzer.

Sunday, January 10, 2016

What are the core objects of the JSR 286 API in IBM WebSphere Portal 8.5?
  1. PortletConfig class: The PortletConfig class functions similarly to ServletConfig in that it uses the following common methods to provide access to the portlet’s configuration:
    • getInitParameter(): Gets initialization parameters.
    • getPortletName(): Gets the portlet’s name
    • getResourceBundle(): Gets the resource bundle for this portlet
    • getSupportedLocales(): Gets the list of supported locales
    • ResourceBundle portletBundle = null;  
      portletBundle = getPortletConfig().getResourceBundle(request.getLocale());

       2. PortletContext class : The PortletContext class functions similarly to ServletContext in that it                      provides access to information about the portlet container.

          The following methods store and retrieve objects that are common to all users of the portlet:
    • setAttribute().
    • getAttribute().
         The getRequestDispatcher() method gets a dispatcher to call other portlet resources. 

         Example :

        
 PortletRequestDispatcher rd =getPortletContext().getRequestDispatcher("/jsps/DisplayCompany.jsp");   
 rd.include(request, response);   


        The PortletContext object defines a portlet view of the portlet container. 
        The PortletContext  also makes resources available to the portlet. 
        By using the context, a portlet can access the portlet log and obtain URL references             to resources. 
        One context is available for each portlet application per Java virtual machine (JVM).
        (A portlet application is a collection of portlets and servlets installed by way of a web             archive   file.)
        As a web application, a portlet application also has a servlet context.        The portlet context uses most of its functionality from the servlet context of the  portlet
       application.
       Attributes stored in the context are global for all users and all components in the portlet 
       application

      3.The PortletRequest class: uses the following sub-interfaces:
  • ActionRequestPassed into the processAction() method.
  • RenderRequestPassed into the doView(), doEdit() methods.
  • EventRequestPassed into the processEvent() method (for portlets subscribing to events).
  • ResourceRequest.
  • Passed into the serveResource() method (for resource serving portlets).
       4.PortletResponse class:Each portlet life-cycle phase has an implementation of the 
        PortletResponse Class:    
  • ActionResponse.
  • RenderResponse.
  • EventResponse.
  • ResourceResponse.
        5.PortletSession class:The PortletSession provides short-term access to objects on 
         behalf of the user. PortletSession has the following characteristics:

           Session data is specific to individual users. Objects that are placed in the session are available 
           for the life of the session either for a specific user-and-portlet combination or to a user across
           all portlets within a portlet application.
          Objects are stored in the session when the object must be available to a subsequent request or
          when the object is shared across multiple portlets in the same application. 
          Objects are removed when the object is no longer required.
          Sessions are invalidated when all objects in the session are no longer required.
          The PortletSession provides a way to identify a user across more than one request and to store
          transient information about that user. It is created per user client per portlet application.
         A portlet can bind an object attribute into a PortletSession by name. The PortletSession 
         interface defines two scopes for storing objects:
  • APPLICATION_SCOPE 
               All objects stored in the session by using the APPLICATION_SCOPE must be available to 
               all the portlets, servlets, and JSP that belong to the same portlet application and that handles 
               a request identified as being a part of the same session.
  •   PORTLET_SCOPE
                 Objects stored in the session using the PORTLET_SCOPE must be available to the 
                 portlet during requests for the same portlet window from which the objects where stored. 

What are famous IBM Portal Theme dynamic spots?

1)
Name: CustomTheme8Dynamic_footer 
Value: res:/CustomTheme8Dynamic/themes/html/dynamicSpots/footer.jsp

2)
Name: CustomTheme8Dynamic_crumbTrail 
Value: res:/CustomTheme8Dynamic/themes/html/dynamicSpots/crumbTrail.jsp?rootClass=wpthemeCrumbTrail&startLevel=2 

3)
Name: CustomTheme8Dynamic_topNav 
Value: res:/CustomTheme8Dynamic/themes/html/dynamicSpots/navigation.jsp?rootClass=wpthemeHeaderNav&startLevel=0&primeRoot=true 

4)
Name: CustomTheme8Dynamic_primaryNav 
Value: res:/CustomTheme8Dynamic/themes/html/dynamicSpots/navigation.jsp?rootClass=wpthemePrimaryNav%20wpthemeLeft&startLevel=1 

5)
Name: CustomTheme8Dynamic_secondaryNav 
Value: res:/CustomTheme8Dynamic/themes/html/dynamicSpots/navigation.jsp?rootClass=wpthemeSecondaryNav&startLevel=2&levelsDisplayed=2 

6)
Name: CustomTheme8Dynamic_commonActions 
Value: res:/CustomTheme8Dynamic/themes/html/dynamicSpots/commonActions.jsp

7) Name: HukoomiTheme80_pageModeToggle 
Value: res:/CustomTheme8Dynamic/themes/html/dynamicSpots/pageModeToggle.jsp,wp_toolbar 

8)
Name: HukoomiTheme80_head 
Value: res:/CustomTheme8Dynamic/themes/html/dynamicSpots/head.jsp 

9)
Name: Custom80theme_status 

Value: res:/CustomTheme8Dynamic/themes/html/dynamicSpots/status.jsp, wp_status_bar

Friday, January 8, 2016

How migrate IBM Portal Page 6.1 to IBM Portal 8.x ? 


Firstly you need to download migration tool 'ppm.jar' from greenhouse then do following :
  1. Run java -jar ppm.jar -setup
  2. Export page trees from your Portal Server and copy them to a folder where the tool is located.
  3. Run java -jar ppm.jar -analyze <input path>
  4. Develop your v8 or v85 Theme and Layouts. Use the analysis from the PPM tool to determine which layouts need to be created and prioritize them.
  5. Deploy your custom theme to your server.
  6. Update the PPM Tool Configuration to match your custom them and layouts.
  7. Run java -jar ppm.jar -migrate <input path>
  8. Delete the original pages on the Portal Server.  Remember the exported original pages should be saved and can be re-imported if necessary.
  9. Import the migrated pages into the Portal Server.