You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2007/10/29 18:45:45 UTC

svn commit: r589768 - in /lenya/trunk/src/java/org/apache/lenya/cms: cocoon/components/modules/input/PageEnvelopeModule.java publication/PageEnvelope.java

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();
+        }
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org