PortalToolsCopletManagement

The Coplet-Management-Plugin provides functions to modify the Layout of the portal. One function provided by the plugin is a skin-selector and the other modífies the layout itself. The Tabs, Columns, Rows and Coplets can be moved, created deleted or configured.

Components

XMLProfileGenerator + CreateIndex.xsl

The XMLP'rofileGenerator generates a basic XML-Representation of the portal-layout. The C'reateIndex.xsl stylesheet adds unique id’s to every element. With a layout-stylesheet it is used to display a reduced representaion of the original portal to the user (the portal without content).

Sample

Flow:

function showXml() {
  var toolManager = getPTM();
  var portalObjects = toolManager.getPortalObjects();
  var portalLayout = portalObjects.getPortalLayout();
  cocoon.sendPage("layoutProfile", 
    	           {"layout" : portalLayout });
  toolManager.releasePortalObjects(portalObjects);
  relPTM(toolManager);
}

Sitemap:

<map:match pattern="layoutProfile">
  <map:generate type="xmlprofile"/>
  <map:transform src="styles/createIndex.xsl„/>
  <map:serialize type="xml"/>
</map:match>

Result:

<composite-layout name="tab" id="maintab">
	<named-item id="1.1" name="Main">
	<coplet-layout id="Portal-Demo-1" name="coplet">
<coplet-instance-data id="1.1.1.1">Portal-Demo-1</coplet-instance-data>
</coplet-layout>
</named-item>
	<named-item id="1.2" name="News">
	<composite-layout id="1.2.1" name="column">
<parameter name="border" value="0"/>
<parameter name="border-color" value="#225599"/>
	<item id="1.2.1.1">
<parameter name="width" value="50%"/>
	<composite-layout id="1.2.1.1.1" name="row">
<parameter name="border" value="0"/>
<parameter name="border-color" value="#AACCFF"/>
	<item id="1.2.1.1.1.1">
	<coplet-layout id="Newsweek-1" name="coplet">
<parameter name="border" value="0"/>
<parameter name="border-color" value="#AA0000"/>
<coplet-instance-data id="1.2.1.1.1.1.1.1">Newsweek-1</coplet-instance-data>
</coplet-layout>
</item>
	<item id="1.2.1.1.1.2">
	<coplet-layout id="NYTBusiness-1" name="coplet">
<parameter name="border" value="0"/>

...

LayoutActions

L_'_'ayoutActions is a class which has some basic methods to modify the portal layout. More information is available in the javadoc or in the source itself.

Usage Example

Flow:

function showTab(showId) {
  var toolManager = getPTM();
  // get the other objects
  var layoutActions = new Packages.org.apache.cocoon.portal.tools.copletManagement.LayoutActions(
    portalLayout, 			
    componentManager.getLayoutFactory(),            				   
    componentManager.getCopletFactory(), 
    profileManager);
  var id = cocoon.request.id;
  var action = cocoon.request.action;
  var actionitem = cocoon.request.actionitem;
  if(action == "addCol") {
    layoutActions.add(actionitem, "column");
  }
  cocoon.sendPage("page/showTab/" + id, {"layout" : portalLayout });
  toolManager.releasePortalObjects(portalObjects);
  relPTM(toolManager);
}
  • No labels