Monday 12 December 2011

Creation of pages using XMLAccess


We can create the pages by two ways.
à Using admin and create the new page.
à Using the XMLaccess page.

By using the XMLAccess page we can create the very easily.
We can create and deploy the n-number of pages at once.
By this we can save the effort and time.

Below is the XMLAccess script to create the page.

<?xml version="1.0" encoding="UTF-8"?>
<request    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="PortalConfig_1.4.xsd"
    type="update"
    create-oids="true">

    <!-- Sample for creating a page that contains an existing portlet.
         This sample is very similar to DeployPortlet; the difference is that the portlet is not deployed (update actions) but only found (locate action).
         This sample also demonstrates how to set the skin for the new portlet and how NLS settings (page title and description) can be read from properties files. -->
    <portal action="locate">

        <!-- skin for the portlet -->
        <skin action="locate" objectid="Shadow" uniquename="ibm.portal.skin.IBM"/>
       
<!-- uid must match uid attribute of portlet-app in portlet.xml -->
<web-app action="locate" uid="com.ibm.wps.portlets.welcome">

<!-- uid must match uid attribute of concrete-portlet-app in portlet.xml -->
<portlet-app action="locate" uid="com.ibm.wps.portlets.welcome.1">

<!-- name must match content of portlet-name subtag  of concrete-portlet in portlet.xml -->
<portlet action="locate" objectid="thePortlet" name="Welcome Portlet">
                </portlet>
            </portlet-app>
        </web-app>

<!-- Parent element under which the new page is inserted -->
<content-node action="locate" objectid="parentPage" uniquename="ibm.portal.Home"/>

        <!-- Note that the preceding elements are needed because the XML request uses ID generating mode and the new page must refer to the portlet and the parent place, so the object IDs thePortlet and wps.content.root.My_Portal must be defined.
             If you use ID preserving mode and have the correct objectid values for these two resources,
             you do not need to locate them. -->
       
        <!-- The new page. contentparentref attribute must match the objectid of the parent.
             Change the uniquename attribute to create another page. -->
<content-node action="update" uniquename="ibm.portal.SamplePage.2"  ordinal="last" content-parentref="parentPage" active="true" allportletsallowed="false"
create-type="explicit" type="page">
            <supported-markup markup="html" update="set"/>
            <!-- The title and description for the page are read from properties files.
                 The property keys must end with the strings title, description, and keywords.
                 (Pages do not support keywords.)
                 The prefix attribute specifies a string that is prefixed to the property key
                 so that you can keep titles for different resources in the same properties file. -->
            <localedata locale="en" prefix="page.sample">
                <url>file:///$server_root$/doc/xml-samples/pagetitles_en.properties</url>
            </localedata>
            <localedata locale="de" prefix="page.sample">
                <url>file:///$server_root$/doc/xml-samples/pagetitles_de.properties</url>
            </localedata>

<component action="create" ordinal="100" type="container" orientation="H">
<component action="create" ordinal="100" type="control" skinref="Shadow">
<!-- portletref must match the objectid attribute of portlet -->
<portletinstance action="update" portletref="thePortlet"/>
                </component>
            </component>
        </content-node>

    </portal>
</request>

enjoy:)

No comments:

Post a Comment