Author: andreas
Date: Thu Dec 20 06:10:44 2007
New Revision: 605935
URL: http://svn.apache.org/viewvc?rev=605935&view=rev
Log:
Added option to show all or only the current language in the news overview.
Modified:
lenya/trunk/src/modules/collection/java/src/org/apache/lenya/modules/collection/CollectionWrapper.java
lenya/trunk/src/modules/collection/sitemap.xmap
lenya/trunk/src/modules/collection/xslt/collection2cinclude.xsl
lenya/trunk/src/modules/collection/xslt/prepareCinclude.xsl
lenya/trunk/src/modules/collection/xslt/sitetree2children.xsl
lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/NewsWrapper.java
lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/usecases/Edit.java
lenya/trunk/src/modules/news/resources/i18n/cmsui.xml
lenya/trunk/src/modules/news/resources/i18n/cmsui_de.xml
lenya/trunk/src/modules/news/usecases/edit.jx
lenya/trunk/src/modules/news/xslt/shared.xsl
Modified: lenya/trunk/src/modules/collection/java/src/org/apache/lenya/modules/collection/CollectionWrapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/collection/java/src/org/apache/lenya/modules/collection/CollectionWrapper.java?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/collection/java/src/org/apache/lenya/modules/collection/CollectionWrapper.java (original)
+++ lenya/trunk/src/modules/collection/java/src/org/apache/lenya/modules/collection/CollectionWrapper.java Thu Dec 20 06:10:44 2007
@@ -48,6 +48,9 @@
private Document delegate;
protected static final String[] TYPES = { TYPE_CHILDREN, TYPE_MANUAL, TYPE_LINK };
+ protected static final String ATTRIBUTE_ALL_LANGUAGES = "allLanguages";
+
+ private boolean allLanguages = false;
/**
* Ctor.
@@ -149,6 +152,11 @@
if (collectionElement.hasAttribute(ATTRIBUTE_HREF)) {
this.href = collectionElement.getAttribute(ATTRIBUTE_HREF);
}
+
+ if (collectionElement.hasAttribute(ATTRIBUTE_ALL_LANGUAGES)) {
+ String value = collectionElement.getAttribute(ATTRIBUTE_ALL_LANGUAGES);
+ this.allLanguages = Boolean.parseBoolean(value);
+ }
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
@@ -200,8 +208,9 @@
}
collectionElement.setAttribute(ATTRIBUTE_TYPE, getType());
-
collectionElement.setAttribute(ATTRIBUTE_HREF, getHref());
+ collectionElement.setAttribute(ATTRIBUTE_ALL_LANGUAGES, Boolean.toString(showAllLanguages()));
+
collectionElement.normalize();
@@ -332,6 +341,24 @@
public void setHref(String href) {
load();
this.href = href;
+ }
+
+ /**
+ * @return If the rendered page should show children in all languages (<code>true</code>) or
+ * only in the currently requested language (<code>false</code>).
+ */
+ public boolean showAllLanguages() {
+ load();
+ return this.allLanguages;
+ }
+
+ /**
+ * @param all If the rendered page should show children in all languages.
+ * @see #includeAllLanguages()
+ */
+ public void setShowAllLanguages(boolean all) {
+ load();
+ this.allLanguages = all;
}
}
Modified: lenya/trunk/src/modules/collection/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/collection/sitemap.xmap?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/collection/sitemap.xmap (original)
+++ lenya/trunk/src/modules/collection/sitemap.xmap Thu Dec 20 06:10:44 2007
@@ -23,18 +23,26 @@
<map:pipelines>
<map:pipeline>
-
- <!-- collectionWithChildren/{uuid}/{language}.xml -->
- <map:match pattern="collectionWithChildren/*/*.xml">
+
+ <map:match pattern="collectionWithChildren/*/*/*.xml">
+ <map:generate src="cocoon:/collectionWithChildren/{1}/{page-envelope:publication-id}/{page-envelope:area}/{2}/{3}.xml"/>
+ <map:serialize type="xml"/>
+ </map:match>
+
+ <!-- collectionWithChildren/{1:allLanguages(true|false)}/{2:pub}/{3:area}/{4:uuid}/{5:language}.xml -->
+ <map:match pattern="collectionWithChildren/*/*/*/*/*.xml">
<map:generate type="sitetree-fragment">
- <map:parameter name="areas" value="{page-envelope:area}"/>
- <map:parameter name="area" value="{page-envelope:area}"/>
- <map:parameter name="path" value="{doc-info:{page-envelope:publication-id}:{page-envelope:area}:{1}:{2}:path}"/>
+ <map:parameter name="pub" value="{2}"/>
+ <map:parameter name="areas" value="{3}"/>
+ <map:parameter name="area" value="{3}"/>
+ <map:parameter name="path" value="{doc-info:{2}:{3}:{4}:{5}:path}"/>
<map:parameter name="initial" value="false"/>
<map:parameter name="mimetype" value=""/>
</map:generate>
<map:transform src="fallback://lenya/modules/collection/xslt/sitetree2children.xsl">
- <map:parameter name="language" value="{2}"/>
+ <map:parameter name="language" value="{5}"/>
+ <map:parameter name="allLanguages" value="{1}"/>
+ <map:parameter name="defaultLanguage" value="en"/>
</map:transform>
<map:serialize type="xml"/>
</map:match>
Modified: lenya/trunk/src/modules/collection/xslt/collection2cinclude.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/collection/xslt/collection2cinclude.xsl?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/collection/xslt/collection2cinclude.xsl (original)
+++ lenya/trunk/src/modules/collection/xslt/collection2cinclude.xsl Thu Dec 20 06:10:44 2007
@@ -21,8 +21,8 @@
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:if test="not(*)">
- <ci:include src="cocoon://modules/collection/metadata/{@uuid}/{$language}.xml"/>
- <ci:include src="lenya-document:{@uuid},lang={$language}?format=xhtml"/>
+ <ci:include src="cocoon://modules/collection/metadata/{@uuid}/{@xml:lang}.xml"/>
+ <ci:include src="lenya-document:{@uuid},lang={@xml:lang}?format=xhtml"/>
</xsl:if>
<xsl:copy-of select="*"/>
</xsl:copy>
Modified: lenya/trunk/src/modules/collection/xslt/prepareCinclude.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/collection/xslt/prepareCinclude.xsl?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/collection/xslt/prepareCinclude.xsl (original)
+++ lenya/trunk/src/modules/collection/xslt/prepareCinclude.xsl Thu Dec 20 06:10:44 2007
@@ -11,8 +11,13 @@
<xsl:copy-of select="@*"/>
<xsl:choose>
<xsl:when test="@type = 'children'">
- <ci:include src="cocoon://modules/collection/collectionWithChildren/{$uuid}/{$language}.xml"
- select="*/*"/>
+ <xsl:variable name="allLanguages">
+ <xsl:choose>
+ <xsl:when test="@allLanguages"><xsl:value-of select="@allLanguages"/></xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <ci:include src="cocoon://modules/collection/collectionWithChildren/{$allLanguages}/{$uuid}/{$language}.xml" select="*/*"/>
</xsl:when>
<xsl:when test="@type = 'link'">
<ci:include src="{@href}" select="*/*"/>
Modified: lenya/trunk/src/modules/collection/xslt/sitetree2children.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/collection/xslt/sitetree2children.xsl?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/collection/xslt/sitetree2children.xsl (original)
+++ lenya/trunk/src/modules/collection/xslt/sitetree2children.xsl Thu Dec 20 06:10:44 2007
@@ -6,6 +6,8 @@
<xsl:param name="language"/>
+ <xsl:param name="allLanguages"/>
+ <xsl:param name="defaultLanguage"/>
<xsl:template match="site:fragment">
@@ -16,12 +18,31 @@
<xsl:template match="site:node">
- <xsl:apply-templates select="site:label[lang($language)]"/>
+ <xsl:choose>
+ <xsl:when test="$allLanguages = 'true'">
+ <xsl:choose>
+ <xsl:when test="site:label[lang($language)]">
+ <xsl:apply-templates select="site:label[lang($language)]"/>
+ </xsl:when>
+ <xsl:when test="site:label[lang($defaultLanguage)]">
+ <xsl:apply-templates select="site:label[lang($defaultLanguage)]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="site:label[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="site:label[lang($language)]"/>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:template>
<xsl:template match="site:label">
- <col:document uuid="{../@uuid}"/>
+ <col:document uuid="{../@uuid}">
+ <xsl:copy-of select="@xml:lang"/>
+ </col:document>
</xsl:template>
</xsl:stylesheet>
Modified: lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/NewsWrapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/NewsWrapper.java?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/NewsWrapper.java (original)
+++ lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/NewsWrapper.java Thu Dec 20 06:10:44 2007
@@ -33,7 +33,7 @@
protected static final int DEFAULT_INCLUDE_ITEMS = 3;
protected static final String ATTRIBUTE_INCLUDE_ITEMS = "includeItems";
-
+
private short includeItemNumber = DEFAULT_INCLUDE_ITEMS;
/**
@@ -60,8 +60,8 @@
}
/**
- * @return The number of items to appear on overviews which are generated
- * using the "include" format.
+ * @return The number of items to appear on overviews which are generated using the "include"
+ * format.
*/
public short getIncludeItemNumber() {
load();
@@ -69,19 +69,12 @@
}
/**
- * @param number The number of items to appear on overviews which are
- * generated using the "include" format.
+ * @param number The number of items to appear on overviews which are generated using the
+ * "include" format.
*/
public void setIncludeItemNumber(short number) {
load();
this.includeItemNumber = number;
}
-
- protected NamespaceHelper initializeNamespaceHelper() {
- NamespaceHelper helper = super.initializeNamespaceHelper();
- Element docElement = helper.getDocument().getDocumentElement();
- docElement.setAttribute(ATTRIBUTE_INCLUDE_ITEMS, Short.toString(getIncludeItemNumber()));
- return helper;
- }
-
+
}
Modified: lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/usecases/Edit.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/usecases/Edit.java?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/usecases/Edit.java (original)
+++ lenya/trunk/src/modules/news/java/src/org/apache/lenya/modules/news/usecases/Edit.java Thu Dec 20 06:10:44 2007
@@ -30,6 +30,7 @@
public class Edit extends InvokeWorkflow {
protected static final String INCLUDE_ITEM_NUMBER = "includeItems";
+ protected static final String SHOW_ALL_LANGUAGES = "showAllLanguages";
protected static final String NEWS_WRAPPER = "newsWrapper";
protected static final String NUMBERS = "numbers";
protected static final String TYPE = "type";
@@ -41,6 +42,7 @@
setParameter(NEWS_WRAPPER, news);
setParameter(INCLUDE_ITEM_NUMBER, new Short(news.getIncludeItemNumber()));
+ setParameter(SHOW_ALL_LANGUAGES, new Boolean(news.showAllLanguages()));
setParameter(TYPE, news.getType());
setParameter(HREF, news.getHref());
@@ -57,9 +59,13 @@
String numberString = getParameterAsString(INCLUDE_ITEM_NUMBER);
short number = Short.parseShort(numberString);
+ String allLanguagesString = getBooleanCheckboxParameter(SHOW_ALL_LANGUAGES);
+ boolean allLanguages = Boolean.parseBoolean(allLanguagesString);
+
// we must create a new wrapper, because a new (modifiable) session is used
NewsWrapper news = new NewsWrapper(getSourceDocument(), getLogger());
news.setIncludeItemNumber(number);
+ news.setShowAllLanguages(allLanguages);
String type = getParameterAsString(TYPE);
news.setType(type);
if (type.equals(CollectionWrapper.TYPE_LINK)) {
Modified: lenya/trunk/src/modules/news/resources/i18n/cmsui.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/news/resources/i18n/cmsui.xml?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/news/resources/i18n/cmsui.xml (original)
+++ lenya/trunk/src/modules/news/resources/i18n/cmsui.xml Thu Dec 20 06:10:44 2007
@@ -31,5 +31,6 @@
Acquiring messages from a link requires the <em>feeds</em> module which
is currently in the sandbox (not stable yet).
</message>
+ <message key="show-all-languages">Show news from all languages</message>
</catalogue>
Modified: lenya/trunk/src/modules/news/resources/i18n/cmsui_de.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/news/resources/i18n/cmsui_de.xml?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/news/resources/i18n/cmsui_de.xml (original)
+++ lenya/trunk/src/modules/news/resources/i18n/cmsui_de.xml Thu Dec 20 06:10:44 2007
@@ -34,5 +34,6 @@
Um Meldungen von einer externen Quelle beziehen zu können, ist das <em>feeds</em>-Modul erforderlich,
das sich derzeit in der Sandbox befindet (noch nicht stabil).
</message>
+ <message key="show-all-languages">News aus allen Sprachen anzeigen</message>
</catalogue>
Modified: lenya/trunk/src/modules/news/usecases/edit.jx
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/news/usecases/edit.jx?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/news/usecases/edit.jx (original)
+++ lenya/trunk/src/modules/news/usecases/edit.jx Thu Dec 20 06:10:44 2007
@@ -66,7 +66,7 @@
<input type="text" name="href" size="50" value="${usecase.getParameter('href')}"/>
</p>
- <p style="margin: 3em 0;">
+ <p style="margin: 2em 0 0 0;">
<label for="includeItems"><i18n:text>include-items</i18n:text>:</label>
<select name="includeItems">
<jx:forEach var="number" items="${usecase.getParameter('numbers')}">
@@ -81,7 +81,18 @@
</jx:forEach>
</select>
</p>
-
+ <p style="margin: 0 0 2em 0;">
+ <label for="showAllLanguages"><i18n:text>show-all-languages</i18n:text>:</label>
+ <jx:choose>
+ <jx:when test="${usecase.getBooleanCheckboxParameter('showAllLanguages').equals('true')}">
+ <input type="checkbox" name="showAllLanguages" checked="checked"/>
+ </jx:when>
+ <jx:otherwise>
+ <input type="checkbox" name="showAllLanguages"/>
+ </jx:otherwise>
+ </jx:choose>
+ </p>
+
<p>
<input type="submit" value="Save" name="submit" i18n:attr="value"/>
<input type="submit" value="Cancel" name="cancel" i18n:attr="value"/>
Modified: lenya/trunk/src/modules/news/xslt/shared.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/news/xslt/shared.xsl?rev=605935&r1=605934&r2=605935&view=diff
==============================================================================
--- lenya/trunk/src/modules/news/xslt/shared.xsl (original)
+++ lenya/trunk/src/modules/news/xslt/shared.xsl Thu Dec 20 06:10:44 2007
@@ -3,7 +3,7 @@
<xsl:template name="getHref">
<xsl:choose>
- <xsl:when test="@uuid">lenya-document:<xsl:value-of select="@uuid"/></xsl:when>
+ <xsl:when test="@uuid">lenya-document:<xsl:value-of select="@uuid"/>,lang=<xsl:value-of select="@xml:lang"/></xsl:when>
<xsl:when test="@href"><xsl:value-of select="@href"/></xsl:when>
</xsl:choose>
</xsl:template>
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.