Added by Jasha Joachimsthal, last edited by Jasha Joachimsthal on Sep 05, 2008
()
In the business logic:
<!-- in pickers --> <picker id="activePolls" class="GenericPicker"> <arg><![CDATA['/editing/dialogs/listpicker/key-value-pairs?editor=cforms&single-item=true&source=cocoon://extensions/project-specific/activePollsAsNodelist']]></arg> </picker> <!-- in sources --> <source id="allPolls" type="nodetree">cocoon://extensions/project-specific/anyPollsAsNodelist</source> <rule for="/document/poll"> <picker id="activePolls"/> </rule>
In the layout:
<template name="/document/poll"> <listitempreview id="/document/poll" value-type="comma-separated"/> </template>
The extensions/project-specific/sitemap.xmap:
<?xml version="1.0" encoding="UTF-8"?> <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> <map:components> <map:generators default="file"> <map:generator label="polls" logger="sitemap.generator.file" name="polls" pool-grow="4" pool-max="32" pool-min="4" src="nl.hippo.cocoon.generation.poll.PollListGenerator"/> </map:generators> </map:components> <map:pipelines> <map:pipeline type="ecaching"> <map:match pattern="*PollsAsNodelist"> <map:generate type="polls"> <map:parameter name="dateformat" value="dd-MM-yyyy"/> <map:parameter name="expires" value="200"/> <map:parameter name="poll-status" value="{1}"/> <map:parameter name="offset" value="0"/> <map:parameter name="nresults" value="500"/> <map:parameter name="paging" value="true"/> <map:parameter name="crpage" value="1"/> <map:parameter name="pagesize" value="500"/> </map:generate> <map:transform src="transformers/polls2nodes.xsl"/> <map:serialize type="xml"/> </map:match> </map:pipeline> </map:pipelines> </map:sitemap>
extensions/project-specific/transformers/polls2nodes.xsl:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:poll="http://hippo.nl/cocoon/generation/poll" version="1.0"> <xsl:template match="/"> <nodes> <xsl:apply-templates select="poll:polls/poll:poll"/> </nodes> </xsl:template> <xsl:template match="poll:poll"> <node id="{@pollid}" value="{poll:question}"/> </xsl:template> </xsl:stylesheet>