You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by jo...@apache.org on 2006/04/11 14:55:59 UTC

svn commit: r393208 - in /lenya/branches/BRANCH_1_2_X/src: java/org/apache/lenya/cms/cocoon/generation/ java/org/apache/lenya/cms/publication/ webapp/lenya/content/info/ webapp/lenya/xslt/info/ webapp/lenya/xslt/navigation/

Author: josias
Date: Tue Apr 11 05:55:57 2006
New Revision: 393208

URL: http://svn.apache.org/viewcvs?rev=393208&view=rev
Log:
allow a href attribute in the sitetree for each language version of a document. the attribute is used to create the link in the menu and the tabs. its value is displayed in the overview tab of the site area. fixes bug #39165

Modified:
    lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java
    lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java
    lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/Label.java
    lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNode.java
    lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNodeImpl.java
    lenya/branches/BRANCH_1_2_X/src/webapp/lenya/content/info/overview.xsp
    lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/info/info.xsl
    lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/menu.xsl
    lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/tabs.xsl

Modified: lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java?rev=393208&r1=393207&r2=393208&view=diff
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java (original)
+++ lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java Tue Apr 11 05:55:57 2006
@@ -174,6 +174,9 @@
         atts.clear();
         atts.addAttribute(NamespaceSupport.XMLNS, LANG_ATTRIBUTE, Q_LANG_ATTRIBUTE, CDATA, label
                 .getLanguage());
+        if (label.getHref() != null) {
+            atts.addAttribute("", HREF_ATTRIBUTE, HREF_ATTRIBUTE, CDATA, label.getHref());
+        }
 
         this.contentHandler
                 .startElement(SiteTree.NAMESPACE_URI, LABEL_ELEMENT, LABEL_ELEMENT, atts);

Modified: lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java?rev=393208&r1=393207&r2=393208&view=diff
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java (original)
+++ lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java Tue Apr 11 05:55:57 2006
@@ -343,18 +343,6 @@
             child.setAttribute(SiteTreeNodeImpl.LINK_ATTRIBUTE_NAME, "true");
         }
 
-        for (int i = 0; i < labels.length; i++) {
-            String labelName = labels[i].getLabel();
-            Element label = helper.createElement(SiteTreeNodeImpl.LABEL_NAME, labelName);
-            String labelLanguage = labels[i].getLanguage();
-
-            if ((labelLanguage != null) && (labelLanguage.length() > 0)) {
-                label.setAttribute(SiteTreeNodeImpl.LANGUAGE_ATTRIBUTE_NAME, labelLanguage);
-            }
-
-            child.appendChild(label);
-        }
-
         // Add Node 
         if (refDocumentId != null && !refDocumentId.equals("")) {
             Node nextSibling = getNodeInternal(refDocumentId);
@@ -366,6 +354,13 @@
         } else {
             parentNode.appendChild(child);
         }
+
+        // Add labels to the node
+        SiteTreeNode siteTreeNode = new SiteTreeNodeImpl(child, this);
+        for (int i = 0; i < labels.length; i++) {
+            siteTreeNode.addLabel(labels[i]);
+        }
+        
         log.debug("Tree has been modified: " + document.getDocumentElement());
     }
     /**

Modified: lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/Label.java
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/Label.java?rev=393208&r1=393207&r2=393208&view=diff
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/Label.java (original)
+++ lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/Label.java Tue Apr 11 05:55:57 2006
@@ -25,6 +25,7 @@
 public class Label {
     private String label = null;
     private String language = null;
+    private String href = null;
 
     /**
      * Creates a new Label object without language.
@@ -72,6 +73,22 @@
 
     public String getLanguage() {
         return language;
+    }
+    
+    /**
+     * Get the href of this label.
+     * 
+     * @return the href.
+     */
+    public String getHref() {
+        return this.href;
+    }
+    
+    /**
+     * Set the href of this label.
+     */
+    public void setHref(String href) {
+       this.href = href; 
     }
     
     /** (non-Javadoc)

Modified: lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNode.java
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNode.java?rev=393208&r1=393207&r2=393208&view=diff
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNode.java (original)
+++ lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNode.java Tue Apr 11 05:55:57 2006
@@ -113,6 +113,7 @@
      * Get the href of this node.
      * 
      * @return the href.
+     * @deprecated use the href attribute of the label instead
      */
     String getHref();
 

Modified: lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNodeImpl.java
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNodeImpl.java?rev=393208&r1=393207&r2=393208&view=diff
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNodeImpl.java (original)
+++ lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/SiteTreeNodeImpl.java Tue Apr 11 05:55:57 2006
@@ -167,7 +167,15 @@
                         labelLanguage = languageAttribute.getNodeValue();
                     }
     
-                    labels.add(new Label(labelName, labelLanguage));
+                    Label label = new Label(labelName, labelLanguage);
+                    
+                    Node hrefAttribute =
+                        child.getAttributes().getNamedItem(HREF_ATTRIBUTE_NAME);
+    
+                    if (hrefAttribute != null) {
+                        label.setHref(hrefAttribute.getNodeValue());
+                    }
+                    labels.add(label);
                 }
             }
         }
@@ -210,6 +218,9 @@
             Element labelElem = helper.createElement(SiteTreeNodeImpl.LABEL_NAME, label.getLabel());
 
             labelElem.setAttribute(SiteTreeNodeImpl.LANGUAGE_ATTRIBUTE_NAME, label.getLanguage());
+            if (label.getHref() != null) {
+                labelElem.setAttribute(SiteTreeNodeImpl.HREF_ATTRIBUTE_NAME, label.getHref());
+            }
             synchronized (sitetree) {
                 node.insertBefore(labelElem, node.getFirstChild());
             }

Modified: lenya/branches/BRANCH_1_2_X/src/webapp/lenya/content/info/overview.xsp
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/webapp/lenya/content/info/overview.xsp?rev=393208&r1=393207&r2=393208&view=diff
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/webapp/lenya/content/info/overview.xsp (original)
+++ lenya/branches/BRANCH_1_2_X/src/webapp/lenya/content/info/overview.xsp Tue Apr 11 05:55:57 2006
@@ -48,10 +48,13 @@
       String identifier = null; 
       final Document doc = (Document)<input:get-attribute module="page-envelope" as="object" name="document"/>;
       String visibility = "visible";
+      String href = "";
       
       try {
           SiteTreeNode node = doc.getPublication().getTree(doc.getArea()).getNode(doc.getId());
           if (!node.visibleInNav()) visibility = "hidden";
+          href = node.getLabel(doc.getLanguage()).getHref();
+          if (href == null) href = "";
       } catch(SiteTreeException e) {
           throw new ProcessingException(e);
       }
@@ -111,6 +114,7 @@
 						<lenya-info:workflow-state><input:get-attribute module="workflow" as="string" name="state"/></lenya-info:workflow-state>
 						<lenya-info:is-live><input:get-attribute module="workflow" as="string" name="variable.is_live"/></lenya-info:is-live>
             <lenya-info:visibleinnav><xsp:expr>visibility</xsp:expr></lenya-info:visibleinnav>
+            <lenya-info:href><xsp:expr>href</xsp:expr></lenya-info:href>
             <lenya-info:identifier><xsp:expr>identifier</xsp:expr></lenya-info:identifier>
       }
       

Modified: lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/info/info.xsl
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/info/info.xsl?rev=393208&r1=393207&r2=393208&view=diff
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/info/info.xsl (original)
+++ lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/info/info.xsl Tue Apr 11 05:55:57 2006
@@ -113,6 +113,9 @@
    <tr><td class="lenya-entry-caption"><i18n:text>Document ID</i18n:text>:</td><td><xsl:value-of select="lenya-info:documentid"/></td></tr>
    <tr><td class="lenya-entry-caption"><i18n:text>Resource Type</i18n:text>:</td><td><xsl:value-of select="lenya-info:resource-type"/></td></tr>
    <tr><td class="lenya-entry-caption"><i18n:text>Visibility in navigation</i18n:text>:</td><td><i18n:text><xsl:value-of select="lenya-info:visibleinnav"/></i18n:text></td></tr>
+   <xsl:if test="lenya-info:href != ''"> 
+     <tr><td class="lenya-entry-caption"><i18n:text>Navigation Link</i18n:text>:</td><td><i18n:text><xsl:value-of select="lenya-info:href"/></i18n:text></td></tr>
+   </xsl:if>
 
    <xsl:if test="$area='trash'">
      <tr><td class="lenya-entry-caption"><i18n:text>Original Path</i18n:text>:</td><td><xsl:value-of select="lenya-info:identifier"/></td></tr>

Modified: lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/menu.xsl
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/menu.xsl?rev=393208&r1=393207&r2=393208&view=diff
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/menu.xsl (original)
+++ lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/menu.xsl Tue Apr 11 05:55:57 2006
@@ -65,7 +65,14 @@
 
 <xsl:template name="item-default">
   <div class="menuitem-{count(ancestor-or-self::nav:node)}">
-    <a href="{@href}"><xsl:apply-templates select="nav:label"/></a>
+    <xsl:choose>
+      <xsl:when test="nav:label/@href">
+        <a href="{nav:label/@href}"><xsl:apply-templates select="nav:label"/></a>
+      </xsl:when>
+      <xsl:otherwise>
+        <a href="{@href}"><xsl:apply-templates select="nav:label"/></a>
+      </xsl:otherwise>
+    </xsl:choose>
   </div>
 </xsl:template>
     

Modified: lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/tabs.xsl
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/tabs.xsl?rev=393208&r1=393207&r2=393208&view=diff
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/tabs.xsl (original)
+++ lenya/branches/BRANCH_1_2_X/src/webapp/lenya/xslt/navigation/tabs.xsl Tue Apr 11 05:55:57 2006
@@ -64,6 +64,9 @@
 <xsl:template name="label">
    <xsl:choose>
     <xsl:when test="@current='true'"><xsl:apply-templates select="nav:label"/></xsl:when>
+    <xsl:when test="nav:label/@href">
+      <a href="{nav:label/@href}"><xsl:apply-templates select="nav:label"/></a>
+    </xsl:when>
     <xsl:otherwise><a href="{@href}"><xsl:apply-templates select="nav:label"/></a></xsl:otherwise>
   </xsl:choose>	  
 </xsl:template>



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