Several improvments for Foundry:

- Support for PublicPersonalProfile personal publications and projects
    - Flexible output for event date(s)
    - XSL-Template for the HTML5 <time> element now uses a optional parameter datetime for the datetime attribute


git-svn-id: https://svn.libreccm.org/ccm/trunk@3923 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2016-03-16 13:27:11 +00:00
parent 2ee7c9b3f3
commit 9b97696f5a
4 changed files with 884 additions and 19 deletions

View File

@ -67,6 +67,237 @@
</xsl:choose>
</xsl:template>
<xsl:template match="/content-item-layout//start-datetime">
<xsl:param name="contentitem-tree" tunnel="yes"/>
<xsl:choose>
<xsl:when test="$contentitem-tree/startDate">
<xsl:choose>
<xsl:when test="$contentitem-tree/startTime">
<xsl:variable name="year" select="$contentitem-tree/startDate/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/startDate/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/startDate/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/startDate/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/startDate/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/startDate/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/startDate/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="hour">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/startTime/@hour) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/startTime/@hour)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/startTime/@hour"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="minute">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/startTime/@minute) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/startTime/@minute)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/startTime/@minute"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day, 'T', $hour, ':', $minute)"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="year" select="$contentitem-tree/startDate/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/startDate/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/startDate/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/startDate/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/startDate/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/startDate/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/startDate/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day)"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'startDate']">
<xsl:choose>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'startTime']">
<xsl:variable name="year" select="$contentitem-tree/nav:attribute[@name = 'startDate']/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'startDate']/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'startDate']/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'startDate']/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'startDate']/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'startDate']/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'startDate']/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="hour">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'startDate']/@hour) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'startDate']/@hour)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'startDate']/@hour"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="minute">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'startDate']/@minute) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'startDate']/@minute)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'startDate']/@minute"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day, 'T', $hour, ':', $minute)"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="year" select="$contentitem-tree/nav:attribute[@name = 'startDate']/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'startDate']/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'startDate']/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'startDate']/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'startDate']/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'startDate']/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'startDate']/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day)"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="/content-item-layout//if-end-date">
<xsl:param name="contentitem-tree" tunnel="yes"/>
<xsl:variable name="start-date">
<xsl:choose>
<xsl:when test="$contentitem-tree/startDate">
<xsl:value-of select="$contentitem-tree/startDate"/>
</xsl:when>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'startDate']">
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'startDate']"/>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="end-date">
<xsl:choose>
<xsl:when test="$contentitem-tree/endDate">
<xsl:value-of select="$contentitem-tree/endDate"/>
</xsl:when>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'endDate']">
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'endDate']"/>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:if test="($start-date != $end-date)">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<xsl:template match="/content-item-layout//if-no-end-date">
<xsl:param name="contentitem-tree" tunnel="yes"/>
<xsl:variable name="start-date">
<xsl:choose>
<xsl:when test="$contentitem-tree/startDate">
<xsl:value-of select="$contentitem-tree/startDate"/>
</xsl:when>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'startDate']">
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'startDate']"/>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="end-date">
<xsl:choose>
<xsl:when test="$contentitem-tree/endDate">
<xsl:value-of select="$contentitem-tree/endDate"/>
</xsl:when>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'endDate']">
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'endDate']"/>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:if test="($start-date = $end-date)">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<foundry:doc section="user" type="template-tag">
<foundry:doc-desc>
<p>
@ -110,7 +341,7 @@
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'endDate']">
<xsl:call-template name="foundry:format-date">
<xsl:with-param name="date-elem"
select="$contentitem-tree/nav:attribute[@name = 'endDate']"/>
select="$contentitem-tree/nav:attribute[@name = 'endDate']"/>
<xsl:with-param name="date-format" select="./date-format"/>
</xsl:call-template>
</xsl:when>
@ -118,6 +349,178 @@
</xsl:if>
</xsl:template>
<xsl:template match="/content-item-layout//end-datetime">
<xsl:param name="contentitem-tree" tunnel="yes"/>
<xsl:choose>
<xsl:when test="$contentitem-tree/endDate">
<xsl:choose>
<xsl:when test="$contentitem-tree/endTime">
<xsl:variable name="year" select="$contentitem-tree/endDate/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/endDate/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/endDate/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/endDate/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/endDate/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/endDate/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/endDate/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="hour">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/endTime/@hour) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/endTime/@hour)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/endTime/@hour"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="minute">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/endTime/@minute) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/endTime/@minute)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/endTime/@minute"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day, 'T', $hour, ':', $minute)"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="year" select="$contentitem-tree/endDate/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/endDate/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/endDate/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/endDate/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/endDate/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/endDate/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/endDate/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day)"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'endDate']">
<xsl:choose>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'endTime']">
<xsl:variable name="year" select="$contentitem-tree/nav:attribute[@name = 'endDate']/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'endDate']/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'endDate']/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'endDate']/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'endDate']/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'endDate']/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'endDate']/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="hour">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'endDate']/@hour) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'endDate']/@hour)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'endDate']/@hour"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="minute">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'endDate']/@minute) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'endDate']/@minute)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'endDate']/@minute"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day, 'T', $hour, ':', $minute)"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="year" select="$contentitem-tree/nav:attribute[@name = 'endDate']/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'endDate']/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'endDate']/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'endDate']/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'endDate']/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'endDate']/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'endDate']/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day)"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:template>
<foundry:doc section="user" type="template-tag">
<foundry:doc-desc>
<p>
@ -157,12 +560,14 @@
<xsl:choose>
<xsl:when test="$contentitem-tree/endTime">
<xsl:apply-templates/>
<xsl:call-template name="foundry:format-time">
<xsl:with-param name="time-elem" select="$contentitem-tree/endTime"/>
<xsl:with-param name="style-param" select="./style"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'endTime']">
<xsl:apply-templates/>
<xsl:call-template name="foundry:format-time">
<xsl:with-param name="time-elem"
select="$contentitem-tree/nav:attribute[@name = 'endTime']"/>
@ -171,7 +576,7 @@
</xsl:when>
</xsl:choose>
</xsl:template>
<foundry:doc section="user" type="template-tag">
<foundry:doc-desc>
<p>

View File

@ -84,4 +84,71 @@
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="/content-item-layout//news-datetime">
<xsl:param name="contentitem-tree" tunnel="yes"/>
<xsl:choose>
<xsl:when test="$contentitem-tree/newsDate">
<xsl:variable name="year" select="$contentitem-tree/newsDate/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/newsDate/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/newsDate/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/newsDate/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/newsDate/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/newsDate/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/newsDate/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day)"/>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'newsDate']">
<xsl:variable name="year" select="$contentitem-tree/nav:attribute[@name = 'newsDate']/@year"/>
<xsl:variable name="month">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'newsDate']/@month) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'newsDate']/@month)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'newsDate']/@month"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="day">
<xsl:choose>
<xsl:when test="string-length($contentitem-tree/nav:attribute[@name = 'newsDate']/@day) = 1">
<xsl:value-of select="concat('0', $contentitem-tree/nav:attribute[@name = 'newsDate']/@day)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'newsDate']/@day"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates>
<xsl:with-param name="datetime"
tunnel="yes"
select="concat($year, '-', $month, '-', $day)"/>
</xsl:apply-templates>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@ -2639,12 +2639,13 @@
<xsl:template match="time">
<xsl:param name="id" select="''"/>
<xsl:param name="class" select="''"/>
<xsl:param name="datetime" tunnel="yes"/>
<time>
<xsl:attribute name="datetime" select="$datetime"/>
<xsl:call-template name="foundry:process-layouttree-attributes">
<xsl:with-param name="id" select="$id"/>
<xsl:with-param name="class" select="$class"/>
<xsl:with-param name="copy-attributes" select="'datatime'"/>
</xsl:call-template>
<xsl:apply-templates/>
</time>

View File

@ -2,13 +2,13 @@
<!DOCTYPE stylesheet>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:foundry="http://foundry.libreccm.org"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:nav="http://ccm.redhat.com/navigation"
xmlns:ppp="http://www.arsdigita.com/PublicPersonalProfile/1.0"
exclude-result-prefixes="xsl xs bebop foundry nav ppp"
version="2.0">
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:foundry="http://foundry.libreccm.org"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:nav="http://ccm.redhat.com/navigation"
xmlns:ppp="http://www.arsdigita.com/PublicPersonalProfile/1.0"
exclude-result-prefixes="xsl xs bebop foundry nav ppp"
version="2.0">
<xsl:template match="public-personal-profile">
<xsl:if test="$data-tree/ppp:profile">
@ -53,15 +53,15 @@
</xsl:with-param>
<xsl:with-param name="title"
tunnel="yes">
<xsl:choose>
<xsl:when test="string-length($data-tree/ppp:profile/ppp:profileImage/imageAttachments[1]/caption) &gt; 0">
<xsl:value-of select="$data-tree/ppp:profile/ppp:profileImage/imageAttachments[1]/caption"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$data-tree/ppp:profile/ppp:profileImage/imageAttachments[1]/image/displayName"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
<xsl:choose>
<xsl:when test="string-length($data-tree/ppp:profile/ppp:profileImage/imageAttachments[1]/caption) &gt; 0">
<xsl:value-of select="$data-tree/ppp:profile/ppp:profileImage/imageAttachments[1]/caption"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$data-tree/ppp:profile/ppp:profileImage/imageAttachments[1]/image/displayName"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:template>
@ -69,5 +69,397 @@
<xsl:value-of select="$data-tree/ppp:profile/ppp:ownerName"/>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications">
<xsl:if test="$data-tree/ppp:profile/personalPublications">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//available-publication-groups">
<xsl:if test="$data-tree/ppp:profile/personalPublications/availablePublicationGroups">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//available-publication-groups//publication-group">
<xsl:variable name="layout-tree"
select="./*"/>
<xsl:for-each select="$data-tree/ppp:profile/personalPublications/availablePublicationGroups/availablePublicationGroup">
<xsl:apply-templates select="$layout-tree">
<xsl:with-param name="publication-group-id"
tunnel="yes"
select="./@name"/>
<xsl:with-param name="href" tunnel="yes">
<xsl:choose>
<xsl:when test="$data-tree/ppp:profile/personalPublications/publications[@all='all']">
<xsl:value-of select="concat('#', ./@name)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('?group=', ./@name)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//available-publication-groups//publication-group-label
| public-personal-profile//personal-publications//publications//publication-groups//publication-group//publication-group-label">
<xsl:param name="publication-group-id"
tunnel="yes"/>
<xsl:value-of select="foundry:get-static-text('public-personal-profile',
concat('publication-groups/', $publication-group-id))"/>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications">
<xsl:if test="$data-tree/ppp:profile/personalPublications/publications">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups">
<xsl:variable name="layout-tree" select="./*"/>
<xsl:for-each select="$data-tree/ppp:profile/personalPublications/publications/publicationGroup">
<xsl:apply-templates select="$layout-tree">
<xsl:with-param name="publication-group-id"
tunnel="yes"
select="./@name"/>
<xsl:with-param name="publication-group-tree"
tunnel="yes"
select="./*"/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//publication-group-header">
<xsl:param name="publication-group-id"
tunnel="yes"/>
<xsl:apply-templates>
<xsl:with-param name="id"
select="$publication-group-id"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//publication">
<xsl:variable name="layout-tree"
select="./*"/>
<xsl:for-each select="$data-tree/ppp:profile/personalPublications/publications/publicationGroup/publications">
<xsl:apply-templates select="$layout-tree">
<xsl:with-param name="contentitem-tree"
tunnel="yes"
select="current()"/>
<xsl:with-param name="id"
tunnel="yes"
select="concat(./masterVersion/id, '_', ./name)"/>
<xsl:with-param name="href"
tunnel="yes"
select="./masterVersion/@oid"/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator">
<xsl:if test="(number($data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@pageCount) &gt; 1)
or ./@show = 'always'">
<xsl:apply-templates>
<xsl:with-param name="paginator-baseurl"
tunnel="yes">
<xsl:choose>
<xsl:when test="contains($data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@baseUrl, '?')">
<xsl:value-of select="concat($data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@baseUrl, '&amp;')"/>
</xsl:when>
<xsl:when test="not(contains($data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@baseUrl, '?'))">
<xsl:value-of select="concat($data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@baseUrl, '?')"/>
</xsl:when>
</xsl:choose>
</xsl:with-param>
<xsl:with-param name="paginator-object-begin"
tunnel="yes"
select="$data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@objectBegin"/>
<xsl:with-param name="paginator-object-count"
tunnel="yes"
select="$data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@objectCount"/>
<xsl:with-param name="paginator-object-end"
tunnel="yes"
select="$data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@objectEnd"/>
<xsl:with-param name="paginator-page-count"
tunnel="yes"
select="$data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@pageCount"/>
<xsl:with-param name="paginator-page-number"
tunnel="yes"
select="$data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@pageNumber"/>
<xsl:with-param name="paginator-page-param"
tunnel="yes"
select="$data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@pageParam"/>
<xsl:with-param name="paginator-page-size"
tunnel="yes"
select="$data-tree/ppp:profile/personalPublications/publications/publicationGroup/nav:paginator/@pageSize"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-projects//projects//project-groups//project-group//paginator">
<xsl:if test="(number($data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@pageCount) &gt; 1)
or ./@show = 'always'">
<xsl:apply-templates>
<xsl:with-param name="paginator-baseurl"
tunnel="yes">
<xsl:choose>
<xsl:when test="contains($data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@baseUrl, '?')">
<xsl:value-of select="concat($data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@baseUrl, '&amp;')"/>
</xsl:when>
<xsl:when test="not(contains($data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@baseUrl, '?'))">
<xsl:value-of select="concat($data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@baseUrl, '?')"/>
</xsl:when>
</xsl:choose>
</xsl:with-param>
<xsl:with-param name="paginator-object-begin"
tunnel="yes"
select="$data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@objectBegin"/>
<xsl:with-param name="paginator-object-count"
tunnel="yes"
select="$data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@objectCount"/>
<xsl:with-param name="paginator-object-end"
tunnel="yes"
select="$data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@objectEnd"/>
<xsl:with-param name="paginator-page-count"
tunnel="yes"
select="$data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@pageCount"/>
<xsl:with-param name="paginator-page-number"
tunnel="yes"
select="$data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@pageNumber"/>
<xsl:with-param name="paginator-page-param"
tunnel="yes"
select="$data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@pageParam"/>
<xsl:with-param name="paginator-page-size"
tunnel="yes"
select="$data-tree/ppp:profile/personalProjects/projects/projectGroup/nav:paginator/@pageSize"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//object-begin
| public-personal-profile//personal-projects//projects//project-groups//project-group//paginator//object-begin">
<xsl:param name="paginator-object-begin" tunnel="yes" select="''"/>
<xsl:if test="$paginator-object-begin != ''">
<xsl:value-of select="$paginator-object-begin"/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//object-end
| public-personal-profile//personal-projects//projects//project-groups//project-group//paginator//object-end">
<xsl:param name="paginator-object-end" tunnel="yes" select="''"/>
<xsl:if test="$paginator-object-end != ''">
<xsl:value-of select="$paginator-object-end"/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//object-count
| public-personal-profile//personal-project//projects//project-groups//project-group//paginator//object-count">
<xsl:param name="paginator-object-count" tunnel="yes" select="''"/>
<xsl:if test="$paginator-object-count != ''">
<xsl:value-of select="$paginator-object-count"/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//page-count
| public-personal-profile//personal-projects//projects//project-groups//project-group//paginator//page-count">
<xsl:param name="paginator-page-count" tunnel="yes" select="''"/>
<xsl:if test="$paginator-page-count != ''">
<xsl:value-of select="$paginator-page-count"/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//current-page
| public-personal-profile//personal-projects//projects//project-groups//project-group//paginator//current-page">
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
<xsl:if test="$paginator-page-number != ''">
<xsl:value-of select="$paginator-page-number"/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//page-size
| public-personal-profile//personal-projects//projects//project-groups//project-group//paginator//page-size">
<xsl:param name="paginator-page-size" tunnel="yes" select="''"/>
<xsl:if test="$paginator-page-size != ''">
<xsl:value-of select="$paginator-page-size"/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//prev-page-link
| public-personal-profile//personal-projects//projects//project-groups//project-group//paginator//prev-page-link">
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
<xsl:param name="paginator-baseurl" tunnel="yes" select="''"/>
<xsl:param name="paginator-page-param" tunnel="yes" select="''"/>
<xsl:if test="($paginator-page-number != '') and (number($paginator-page-number) &gt; 1)">
<xsl:apply-templates>
<xsl:with-param name="href"
tunnel="yes"
select="concat($paginator-baseurl,
$paginator-page-param,
'=',
$paginator-page-number -1)"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//next-page-link
| public-personal-profile//project-publications//projects//project-groups//project-group//paginator//next-page-link">
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
<xsl:param name="paginator-page-count" tunnel="yes" select="''"/>
<xsl:param name="paginator-baseurl" tunnel="yes" select="''"/>
<xsl:param name="paginator-page-param" tunnel="yes" select="''"/>
<xsl:if test="($paginator-page-number != '')
and (number($paginator-page-number) &lt; number($paginator-page-count))">
<xsl:apply-templates>
<xsl:with-param name="href"
tunnel="yes"
select="concat($paginator-baseurl,
$paginator-page-param,
'=',
$paginator-page-number + 1)"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//first-page-link
| public-personal-profile//personal-projects//projects//project-groups//project-group//paginator//first-page-link">
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
<xsl:param name="paginator-baseurl" tunnel="yes" select="''"/>
<xsl:param name="paginator-page-param" tunnel="yes" select="''"/>
<xsl:if test="($paginator-page-number != '')
and (number($paginator-page-number) &gt; 1)">
<xsl:apply-templates>
<xsl:with-param name="href"
tunnel="yes"
select="concat($paginator-baseurl,
$paginator-page-param, '=1')"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-publications//publications//publication-groups//publication-group//paginator//last-page-link
| public-personal-profile//personal-projects//projects//project-groups//project-group//paginator//last-page-link">
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
<xsl:param name="paginator-page-count" tunnel="yes" select="''"/>
<xsl:param name="paginator-baseurl" tunnel="yes" select="''"/>
<xsl:param name="paginator-page-param" tunnel="yes" select="''"/>
<xsl:if test="($paginator-page-number != '')
and (number($paginator-page-number) &lt; number($paginator-page-count))">
<xsl:apply-templates>
<xsl:with-param name="href"
tunnel="yes"
select="concat($paginator-baseurl,
$paginator-page-param,
'=',
$paginator-page-count)"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-projects//available-project-groups">
<xsl:if test="$data-tree/ppp:profile/personalProjects/availableProjectGroups">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-projects//available-project-groups//project-group">
<xsl:variable name="layout-tree"
select="./*"/>
<xsl:for-each select="$data-tree/ppp:profile/personalProjects/availableProjectGroups/availableProjectGroup">
<xsl:apply-templates select="$layout-tree">
<xsl:with-param name="project-group-id"
tunnel="yes"
select="./@name"/>
<xsl:with-param name="href" tunnel="yes">
<xsl:choose>
<xsl:when test="$data-tree/ppp:profile/personalProjects/projects[@all='all']">
<xsl:value-of select="concat('#', ./@name)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('?group=', ./@name)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
<xsl:template match="public-personal-profile//personal-projects//available-project-groups//project-group-label
| public-personal-profile//personal-projects//projects//project-groups//project-group//project-group-label">
<xsl:param name="project-group-id"
tunnel="yes"/>
<xsl:value-of select="foundry:get-static-text('public-personal-profile',
concat('project-groups/', $project-group-id))"/>
</xsl:template>
<xsl:template match="public-personal-profile//personal-projects//projects">
<xsl:if test="$data-tree/ppp:profile/personalProjects/projects">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<xsl:template match="public-personal-profile//personal-projects//projects//project-groups">
<xsl:variable name="layout-tree" select="./*"/>
<xsl:for-each select="$data-tree/ppp:profile/personalProjects/projects/projectGroup">
<xsl:apply-templates select="$layout-tree">
<xsl:with-param name="project-group-id"
tunnel="yes"
select="./@name"/>
<xsl:with-param name="project-group-tree"
tunnel="yes"
select="./*"/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
<xsl:template match="public-personal-profile//personal-projects//projects//project-groups//project-group//project-group-header">
<xsl:param name="project-group-id"
tunnel="yes"/>
<xsl:apply-templates>
<xsl:with-param name="id"
select="$project-group-id"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="public-personal-profile//personal-projects//projects//project-groups//project-group//project">
<xsl:variable name="layout-tree"
select="./*"/>
<xsl:for-each select="$data-tree/ppp:profile/personalProjects/projects/projectGroup/project">
<xsl:apply-templates select="$layout-tree">
<xsl:with-param name="contentitem-tree"
tunnel="yes"
select="current()"/>
<xsl:with-param name="id"
tunnel="yes"
select="concat(./masterVersion/id, '_', ./name)"/>
<xsl:with-param name="href"
tunnel="yes"
select="./masterVersion/@oid"/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>