Author: andreas
Date: Mon Oct 29 10:45:43 2007
New Revision: 589768
URL: http://svn.apache.org/viewvc?rev=589768&view=rev
Log:
Added method PageEnvelope.getLanguage() and attribute 'language' to page envelope module which falls back to the default language if the document does not exist (useful for 404 pages).
Modified:
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java?rev=589768&r1=589767&r2=589768&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PageEnvelopeModule.java Mon Oct 29 10:45:43 2007
@@ -50,7 +50,7 @@
public class PageEnvelopeModule extends AbstractPageEnvelopeModule {
protected static final String URI_PARAMETER_DOCTYPE = "doctype";
-
+
/**
* @see org.apache.cocoon.components.modules.input.InputModule#getAttribute(java.lang.String,
* org.apache.avalon.framework.configuration.Configuration,
@@ -84,6 +84,8 @@
value = StringUtils.join(envelope.getPublication().getLanguages(), ',');
} else if (name.equals(PageEnvelope.DEFAULT_LANGUAGE)) {
value = envelope.getPublication().getDefaultLanguage();
+ } else if (name.equals(PageEnvelope.LANGUAGE)) {
+ value = envelope.getLanguage();
} else if (name.equals(PageEnvelope.BREADCRUMB_PREFIX)) {
value = envelope.getPublication().getBreadcrumbPrefix();
} else if (name.equals(PageEnvelope.DOCUMENT_PATH)) {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java?rev=589768&r1=589767&r2=589768&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java Mon Oct 29 10:45:43 2007
@@ -44,7 +44,7 @@
PageEnvelope.DOCUMENT_UUID, PageEnvelope.DOCUMENT_TYPE, PageEnvelope.DEFAULT_LANGUAGE,
PageEnvelope.DOCUMENT_LANGUAGE, PageEnvelope.DOCUMENT_LANGUAGES,
PageEnvelope.DOCUMENT_LANGUAGES_CSV, PageEnvelope.DOCUMENT_LASTMODIFIED,
- PageEnvelope.BREADCRUMB_PREFIX, PageEnvelope.SSL_PREFIX };
+ PageEnvelope.BREADCRUMB_PREFIX, PageEnvelope.SSL_PREFIX, PageEnvelope.LANGUAGE };
/**
* <code>PUBLICATION_ID</code> The publication id
*/
@@ -132,6 +132,11 @@
*/
public static final String DOCUMENT_LANGUAGE = "document-language";
/**
+ * This attribute returns the document language if the document exists, or the
+ * default language otherwise. This makes it suitable for 404 pages.
+ */
+ public static final String LANGUAGE = "language";
+ /**
* <code>DOCUMENT_LANGUAGES</code> The languages the current document is available in
*/
public static final String DOCUMENT_LANGUAGES = "document-languages";
@@ -303,6 +308,23 @@
*/
public void setDocument(Document _document) {
this.document = _document;
+ }
+
+ /**
+ * @return The document language or the default language if the document doesn't exist.
+ * @see #LANGUAGE
+ */
+ public String getLanguage() {
+ Document document = getDocument();
+ if (document == null) {
+ Publication pub = getPublication();
+ if (pub == null) {
+ throw new RuntimeException("The language attribute can't be used outside a publication.");
+ }
+ return pub.getDefaultLanguage();
+ } else {
+ return document.getLanguage();
+ }
}
}
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.