Foundry support for ObjectLists. Paginator and filters are not yet supported, will be added in the next commit.
git-svn-id: https://svn.libreccm.org/ccm/trunk@2954 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
bd8d621d28
commit
c4e40a3a5c
|
|
@ -23,6 +23,9 @@
|
|||
<default>content-items/link-default.xml</default>
|
||||
</link>
|
||||
<list>
|
||||
<content-item content-type="com.arsdigita.cms.contenttypes.Article">
|
||||
content-items/article-list.xml
|
||||
</content-item>
|
||||
<default>content-items/list-default.xml</default>
|
||||
</list>
|
||||
</content-items>
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
<xsl:import href="template-tags/html-tags.xsl"/>
|
||||
<xsl:import href="template-tags/loaders.xsl"/>
|
||||
<xsl:import href="template-tags/navigation.xsl"/>
|
||||
<xsl:import href="template-tags/object-list.xsl"/>
|
||||
<xsl:import href="template-tags/portal-workspace.xsl"/>
|
||||
<xsl:import href="template-tags/portal-workspace-grid.xsl"/>
|
||||
<xsl:import href="template-tags/subsite.xsl"/>
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
The <code>content-item</code> tag with the attribute <code>mode</code> set the
|
||||
The <code>content-item</code> element with the attribute <code>mode</code> set to
|
||||
<code>detail</code> or without the attribute inserts the HTML representation of the
|
||||
detail view of the current content item. The content item can either be the greeting
|
||||
item or normal item.
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
with the <code>contentitem-layout</code> element as root. Usually these templates
|
||||
are located in the <code>templates/content-items</code> folder. Which template is
|
||||
used for a particular content item is defined by the <code>conf/templates.xml</code>
|
||||
file. In this file there is a <code>content-items</code> below the
|
||||
file. In this file there is a <code>content-items</code> element below the
|
||||
<code>templates</code> element. The association between templates and
|
||||
content items is described by the <code>content-item</code> elements in the
|
||||
<code>content-items</code> element. The <code>content-item</code> has four
|
||||
|
|
@ -263,7 +263,8 @@
|
|||
select="'contentitem-default-detail.xml'"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
<xsl:with-param name="internal" select="true()"/>
|
||||
<xsl:with-param name="internal"
|
||||
select="true()"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
|
@ -325,8 +326,172 @@
|
|||
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
The <code>content-item</code> element with the <code>mode</code> attribute set to
|
||||
<code>list</code> inserts the HTML representation of the the list view of a content
|
||||
item. The list view is primarily used in object lists.
|
||||
</p>
|
||||
<p>
|
||||
As for the detail view, the HTML representation of the list view of a conten item is
|
||||
defined using special templates with the <code>contentitem-layout</code> element as
|
||||
root. Usually these templates are located in the
|
||||
<code>templates/content-items</code> folder. Which is used for a particular content
|
||||
item is defined in the <code>conf/templates.xml</code> file. In this file there is
|
||||
a <code>content-items</code> element below the <code>templates</code> element.
|
||||
</p>
|
||||
<p>
|
||||
There three attributes which can be used to define in which cases a specific
|
||||
template is used:
|
||||
</p>
|
||||
<dl>
|
||||
<dt>style</dt>
|
||||
<dd>
|
||||
Used to select a specific style for the list view of the item. To select a style
|
||||
add a <code>style</code> attribute to the <code>content-item</code> attribute
|
||||
in the application layout file.
|
||||
</dd>
|
||||
<dt>content-type</dt>
|
||||
<dd>The content-type of the item.</dd>
|
||||
<dt>
|
||||
<code>category</code>
|
||||
</dt>
|
||||
<dd>
|
||||
The template is only used for the content item if the item is viewed as item of
|
||||
the category. The category is set as a path contains the names the categories.
|
||||
</dd>
|
||||
</dl>
|
||||
</foundry:doc-desc>
|
||||
<foundry:doc-see-also>
|
||||
<foundry:doc-link href="#layout-templates">The template system</foundry:doc-link>
|
||||
</foundry:doc-see-also>
|
||||
</foundry:doc>
|
||||
<xsl:template match="content-item[@mode = 'list']">
|
||||
<xsl:param name="contentitem-tree" tunnel="yes"/>
|
||||
|
||||
<xsl:variable name="category" select="foundry:read-current-category()"/>
|
||||
|
||||
<xsl:variable name="content-type"
|
||||
select="$contentitem-tree/nav:attribute[@name = 'objectType']"/>
|
||||
|
||||
<xsl:variable name="style">
|
||||
<xsl:choose>
|
||||
<xsl:when test="./@style">
|
||||
<xsl:value-of select="./@style"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="''"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="template-map">
|
||||
<xsl:copy-of select="document(foundry:gen-path('conf/templates.xml'))/templates/content-items/list/*"/>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when test="$style != ''">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$template-map/content-item[@style = $style
|
||||
and @content-type = $content-type
|
||||
and @category = $category]">
|
||||
<xsl:call-template name="foundry:process-contentitem-template">
|
||||
<xsl:with-param name="template-file"
|
||||
select="$template-map/content-item[@style = $style
|
||||
and @content-type = $content-type
|
||||
and @category = $category]"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$template-map/content-item[@style = $style
|
||||
and @content-type = $content-type
|
||||
and not(@category)]">
|
||||
<xsl:call-template name="foundry:process-contentitem-template">
|
||||
<xsl:with-param name="template-file"
|
||||
select="$template-map/content-item[@style = $style
|
||||
and @content-type = $content-type
|
||||
and not(@category)]"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$template-map/content-item[@style = $style
|
||||
and not(@content-type)
|
||||
and not(@category)]">
|
||||
<xsl:call-template name="foundry:process-contentitem-template">
|
||||
<xsl:with-param name="template-file"
|
||||
select="$template-map/content-item[@style = $style
|
||||
and not(@content-type)
|
||||
and not(@category)]"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$template-map/default">
|
||||
<xsl:call-template name="foundry:process-contentitem-template">
|
||||
<xsl:with-param name="template-file"
|
||||
select="$template-map/default"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="foundry:process-contentitem-template">
|
||||
<xsl:with-param name="template-file"
|
||||
select="'contentitem-default-list.xml'"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
<xsl:with-param name="internal"
|
||||
select="true()"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$template-map/content-item[@content-type = $content-type
|
||||
and @category = $category]">
|
||||
<xsl:call-template name="foundry:process-contentitem-template">
|
||||
<xsl:with-param name="template-file"
|
||||
select="$template-map/content-item[@content-type = $content-type
|
||||
and @category = $category]"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$template-map/content-item[@content-type = $content-type
|
||||
and not(@category)]">
|
||||
<xsl:call-template name="foundry:process-contentitem-template">
|
||||
<xsl:with-param name="template-file"
|
||||
select="$template-map/content-item[@content-type = $content-type
|
||||
and not(@category)]"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$template-map/default">
|
||||
<xsl:call-template name="foundry:process-contentitem-template">
|
||||
<xsl:with-param name="template-file"
|
||||
select="$template-map/default"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="foundry:process-contentitem-template">
|
||||
<xsl:with-param name="template-file"
|
||||
select="'contentitemitem-default-list'"/>
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
select="$contentitem-tree"/>
|
||||
<xsl:with-param name="internal"
|
||||
select="true()"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="foundry:process-contentitem-template">
|
||||
|
|
@ -363,7 +528,14 @@
|
|||
<xsl:template match="content-item-layout//content-item-title">
|
||||
<xsl:param name="contentitem-tree" tunnel="yes"/>
|
||||
|
||||
<xsl:value-of select="$contentitem-tree/title"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$contentitem-tree/title">
|
||||
<xsl:value-of select="$contentitem-tree/title"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'title']">
|
||||
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'title']"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
|
@ -31,7 +31,14 @@
|
|||
<xsl:template match="/content-item-layout//lead-text">
|
||||
<xsl:param name="contentitem-tree" tunnel="yes"/>
|
||||
|
||||
<xsl:value-of select="$contentitem-tree/lead"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$contentitem-tree/lead">
|
||||
<xsl:value-of select="$contentitem-tree/lead"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$contentitem-tree/nav:attribute[@name = 'lead']">
|
||||
<xsl:value-of select="$contentitem-tree/nav:attribute[@name = 'lead']"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="/content-item-layout//main-text">
|
||||
|
|
|
|||
|
|
@ -81,10 +81,10 @@
|
|||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
|
||||
<pre>
|
||||
<!---<pre>
|
||||
<xsl:value-of select="concat('from = ', $from)"/>
|
||||
<xsl:value-of select="concat('; to = ', $to)"/>
|
||||
</pre>
|
||||
</pre>-->
|
||||
|
||||
|
||||
<xsl:for-each select="$contentitem-tree/imageAttachments[sortKey >= $from and sortKey <= $to]">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,96 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE stylesheet [<!ENTITY nbsp ' '>
|
||||
<!ENTITY shy '­'>]>
|
||||
<!--
|
||||
Copyright 2014 Jens Pelzetter for the LibreCCM Foundation
|
||||
|
||||
This file is part of the Foundry Theme Engine for LibreCCM
|
||||
|
||||
Foundry is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Foundry is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Foundry If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
|
||||
xmlns:foundry="http://foundry.libreccm.org"
|
||||
xmlns:nav="http://ccm.redhat.com/navigation"
|
||||
xmlns:ui="http://www.arsdigita.com/ui/1.0"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
exclude-result-prefixes="xsl xs bebop foundry ui"
|
||||
version="2.0">
|
||||
|
||||
<xsl:template match="object-list">
|
||||
|
||||
<xsl:variable name="object-list-id" select="./@id"/>
|
||||
|
||||
<xsl:if test="$data-tree//nav:simpleObjectList[@id = $object-list-id]
|
||||
| $data-tree//nav:complexObjectList[@id = $object-list-id]
|
||||
| $data-tree//nav:customizableObjectList[@id = $object-list-id]
|
||||
| $data-tree//nav:atozObjectList[@id = $object-list-id]
|
||||
| $data-tree//nav:filterObjectList[@id = $object-list-id]">
|
||||
|
||||
<xsl:variable name="object-list-datatree">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$data-tree//nav:simpleObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:simpleObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$data-tree//nav:complexObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:complexObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$data-tree//nav:customizableObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:customizableObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$data-tree//nav:atozObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:atozObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$data-tree//nav:filterObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:filterObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:apply-templates>
|
||||
<xsl:with-param name="object-list-datatree"
|
||||
tunnel="yes"
|
||||
select="$object-list-datatree"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="object-list//object-list-item">
|
||||
<xsl:param name="object-list-datatree" tunnel="yes"/>
|
||||
|
||||
<!--<pre>Object-list-item</pre>
|
||||
<pre>
|
||||
<xsl:value-of select="concat('count(object-list-datatree) = ', count($object-list-datatree))"/>
|
||||
</pre>
|
||||
<pre>
|
||||
<xsl:value-of select="concat('count(object-list-datatree/*) = ', count($object-list-datatree/*))"/>
|
||||
</pre>
|
||||
<pre>
|
||||
<xsl:value-of select="concat('name(object-list-datatree/*[1]) = ', name($object-list-datatree/*[1]))"/>
|
||||
</pre>
|
||||
</xsl:template>-->
|
||||
|
||||
<xsl:variable name="object-list-item-layouttree" select="current()"/>
|
||||
|
||||
<xsl:for-each select="$object-list-datatree/nav:objectList/nav:item">
|
||||
<xsl:apply-templates select="$object-list-item-layouttree/*">
|
||||
<xsl:with-param name="contentitem-tree" tunnel="yes" select="current()"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<content-item-layout>
|
||||
<h2>
|
||||
<content-item-title/>
|
||||
</h2>
|
||||
</content-item-layout>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<content-item-layout>
|
||||
<div>
|
||||
<show-property name="pageDescription"/>
|
||||
</div>
|
||||
</content-item-layout>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<content-item-layout>
|
||||
<a>
|
||||
<content-item-title/>
|
||||
</a>
|
||||
</content-item-layout>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<content-item-layout>
|
||||
<h2>
|
||||
<content-item-title/>
|
||||
</h2>
|
||||
<div class="lead">
|
||||
<lead-text/>
|
||||
</div>
|
||||
</content-item-layout>
|
||||
|
|
@ -2,6 +2,5 @@
|
|||
<content-item-layout>
|
||||
<div>
|
||||
<show-property name="pageDescription"/>
|
||||
|
||||
</div>
|
||||
</content-item-layout>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<content-item-layout>
|
||||
<h2>
|
||||
<content-item-title/>
|
||||
</h2>
|
||||
</content-item-layout>
|
||||
|
|
@ -58,6 +58,28 @@
|
|||
</image-attachment>
|
||||
</image-attachments>
|
||||
</div>
|
||||
<div id="item-list-wrapper">
|
||||
<object-list id="itemList">
|
||||
<ul>
|
||||
<object-list-item>
|
||||
<li>
|
||||
<content-item mode="list"/>
|
||||
</li>
|
||||
</object-list-item>
|
||||
</ul>
|
||||
</object-list>
|
||||
</div>
|
||||
<div id="news-list-wrapper">
|
||||
<object-list id="newsList">
|
||||
<ul>
|
||||
<object-list-item>
|
||||
<li>
|
||||
<pre>news-item</pre>
|
||||
</li>
|
||||
</object-list-item>
|
||||
</ul>
|
||||
</object-list>
|
||||
</div>
|
||||
</main>
|
||||
<aside>
|
||||
<related-links>
|
||||
|
|
|
|||
Loading…
Reference in New Issue