svn commit: r595679 - in /lenya/sandbox/modules: docustyle/resources/css/ externallinks/config/sitemap/ externallinks/java/src/org/apache/lenya/modules/externallinks/ forrest/ forrest/config/ forrest/java/src/org/apache/lenya/modules/forrest/ forrest/j...

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Fri Nov 16 06:41:42 2007
New Revision: 595679

URL: http://svn.apache.org/viewvc?rev=595679&view=rev
Log:
Adding more functionality to externallinks and propertiesdocument modules

Added:
    lenya/sandbox/modules/propertiesdocument/config/menu.xsp
    lenya/sandbox/modules/propertiesdocument/menus.xmap
    lenya/sandbox/modules/propertiesdocument/resources/i18n/
    lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui.xml
    lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui_de.xml
    lenya/sandbox/modules/propertiesdocument/sitemap.xmap
    lenya/sandbox/modules/propertiesdocument/xslt/
    lenya/sandbox/modules/propertiesdocument/xslt/properties2xhtml.xsl
Modified:
    lenya/sandbox/modules/docustyle/resources/css/page.css
    lenya/sandbox/modules/externallinks/config/sitemap/transformers.xmap
    lenya/sandbox/modules/externallinks/java/src/org/apache/lenya/modules/externallinks/ExternalLinks.java
    lenya/sandbox/modules/forrest/config/module.xml
    lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java
    lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java
    lenya/sandbox/modules/forrest/sitemap.xmap
    lenya/sandbox/modules/propertiesdocument/java/src/org/apache/lenya/modules/propertiesdocument/PropertiesDocument.java

Modified: lenya/sandbox/modules/docustyle/resources/css/page.css
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/docustyle/resources/css/page.css?rev=595679&r1=595678&r2=595679&view=diff
==============================================================================
--- lenya/sandbox/modules/docustyle/resources/css/page.css (original)
+++ lenya/sandbox/modules/docustyle/resources/css/page.css Fri Nov 16 06:41:42 2007
@@ -17,8 +17,6 @@
 
 /* page */
 
-@import url("news.css");
-
 #page {
   padding: 0px;
   margin: 0px;
@@ -87,8 +85,15 @@
   background: url('/modules/docustyle/images/corner-dddddd.png') right top no-repeat;
 }
   
-.tab a:hover span, .tab-selected a span {
+.tab a:hover span {
+  background-color: #C0C0D0;
+}
+
+.tab-selected a span {
   background-color: #AAAABB;
+  /*
+  background-color: #FFFFFF;
+  */
   color: #333344;
 }
 
@@ -493,4 +498,26 @@
 
 #apacheBreadcrumb a {
   text-decoration: none;
+}
+
+table.properties {
+  border-collapse: collapse;
+}
+
+table.properties th, table.properties td {
+  text-align: left;
+  padding: .2em 2em .2em .5em;
+  border: none;
+}
+
+table.properties th {
+  background-color: #DDDDDD;
+}
+
+table.properties tr.row1 {
+  background-color: #EEEEEE;
+}
+
+table.properties tr.row2 {
+  background-color: #FFFFFF;
 }

Modified: lenya/sandbox/modules/externallinks/config/sitemap/transformers.xmap
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/externallinks/config/sitemap/transformers.xmap?rev=595679&r1=595678&r2=595679&view=diff
==============================================================================
--- lenya/sandbox/modules/externallinks/config/sitemap/transformers.xmap (original)
+++ lenya/sandbox/modules/externallinks/config/sitemap/transformers.xmap Fri Nov 16 06:41:42 2007
@@ -17,7 +17,7 @@
 -->
 
 <xmap xpath="/sitemap/components/transformers" 
-  unless="/sitemap/components/transformers/transformer[@name = 'uuid2url']"
+  unless="/sitemap/components/transformers/transformer[@name = 'externallinks-xhtml']"
   xmlns:map="http://apache.org/cocoon/sitemap/1.0">
   
   <map:transformer name="externallinks-xhtml" logger="lenya.sitemap.transformer.externallinks-xhtml"

Modified: lenya/sandbox/modules/externallinks/java/src/org/apache/lenya/modules/externallinks/ExternalLinks.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/externallinks/java/src/org/apache/lenya/modules/externallinks/ExternalLinks.java?rev=595679&r1=595678&r2=595679&view=diff
==============================================================================
--- lenya/sandbox/modules/externallinks/java/src/org/apache/lenya/modules/externallinks/ExternalLinks.java (original)
+++ lenya/sandbox/modules/externallinks/java/src/org/apache/lenya/modules/externallinks/ExternalLinks.java Fri Nov 16 06:41:42 2007
@@ -56,5 +56,9 @@
     public String getUri(String name) {
         return this.properties.get(name);
     }
+    
+    public void clear() {
+        this.properties.clear();
+    }
 
 }

Modified: lenya/sandbox/modules/forrest/config/module.xml
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/forrest/config/module.xml?rev=595679&r1=595678&r2=595679&view=diff
==============================================================================
--- lenya/sandbox/modules/forrest/config/module.xml (original)
+++ lenya/sandbox/modules/forrest/config/module.xml Fri Nov 16 06:41:42 2007
@@ -20,6 +20,7 @@
 
 <module xmlns="http://apache.org/lenya/module/1.0">
   <id>org.apache.lenya.modules.forrest</id>
+  <depends module="org.apache.lenya.modules.externallinks"/>
   <package>org.apache.lenya.modules</package>
   <version>0.1-dev</version>
   <name>Forrest</name>

Modified: lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java?rev=595679&r1=595678&r2=595679&view=diff
==============================================================================
--- lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java (original)
+++ lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java Fri Nov 16 06:41:42 2007
@@ -31,6 +31,9 @@
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.ServiceSelector;
+import org.apache.commons.io.IOUtils;
+import org.apache.excalibur.source.Source;
+import org.apache.excalibur.source.SourceResolver;
 import org.apache.lenya.cms.cocoon.source.SourceUtil;
 import org.apache.lenya.cms.linking.Link;
 import org.apache.lenya.cms.publication.Area;
@@ -38,7 +41,11 @@
 import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.ResourceType;
+import org.apache.lenya.cms.site.SiteException;
 import org.apache.lenya.cms.site.SiteNode;
+import org.apache.lenya.cms.site.SiteStructure;
+import org.apache.lenya.modules.externallinks.ExternalLinks;
+import org.apache.lenya.modules.externallinks.ExternalLinksRewriter;
 import org.apache.lenya.xml.DocumentHelper;
 import org.apache.lenya.xml.NamespaceHelper;
 import org.apache.xpath.XPathAPI;
@@ -103,12 +110,17 @@
             info.helper = helper;
             info.docMgr = docMgr;
             info.links = links;
+            
+            info.externalLinks = new ExternalLinks(this.manager, area, getLogger());
+            info.externalLinksRewriter = new ExternalLinksRewriter(this.manager, area, getLogger());
 
             NodeList nodes = XPathAPI.selectNodeList(siteXml.getDocumentElement(), "//*");
             info.number = nodes.getLength();
             info.start();
 
+            createExternalLinks(info);
             importChildren(info, siteXml.getDocumentElement(), baseUri, "");
+
             convertLinks(info);
         } finally {
             if (docMgr != null) {
@@ -158,6 +170,13 @@
              * String path = concatPath(basePath, nodeName); SiteNode node =
              * info.area.getSite().add(path); node.setHref(href);
              */
+        }
+        else if (info.externalLinksRewriter.matches(href)) {
+            SiteNode node = getSiteNode(info, basePath, nodeName);
+            String externalUri = info.externalLinksRewriter.rewrite(href);
+            
+            // FIXME: not supported yet
+            // node.setHref(externalUri);
         } else if (sourceUri.endsWith(".png") || sourceUri.endsWith(".gif")) {
             createDocument(info, info.mediaResourceType, sourceUri, basePath, nodeName, linkName,
                     title);
@@ -172,10 +191,7 @@
             }
 
             if (xml == null) {
-                // create container site node
-                String path = concatPath(basePath, nodeName);
-                SiteNode node = info.area.getSite().add(path);
-                // TODO: add link (not supported by API yet)
+                SiteNode node = getSiteNode(info, basePath, nodeName);
             } else {
                 String localName = xml.getDocumentElement().getLocalName();
                 ResourceType type = null;
@@ -194,6 +210,20 @@
 
     }
 
+    protected SiteNode getSiteNode(ImportInfo info, String basePath, String nodeName)
+            throws SiteException {
+        SiteNode node;
+        String path = concatPath(basePath, nodeName);
+        SiteStructure site = info.area.getSite();
+        if (site.contains(path)) {
+            node = site.getNode(path);
+        } else {
+            node = site.add(path);
+            // TODO: add link (not supported by API yet)
+        }
+        return node;
+    }
+
     protected String concatPath(String path1, String path2) {
         StringBuffer path = new StringBuffer();
         path.append(path1);
@@ -211,8 +241,7 @@
 
     protected String getSampleUri(ResourceType type) {
         ResourceType.Sample sample = type.getSample(type.getSampleNames()[0]);
-        String sourceUri = sample.getUri();
-        return sourceUri;
+        return sample.getUri();
     }
 
     protected void createDocument(ImportInfo info, ResourceType type, String sourceUri,
@@ -220,15 +249,50 @@
         String path = concatPath(basePath, nodeName);
         DocumentFactory factory = info.area.getPublication().getFactory();
         try {
-            int lastDotIndex = sourceUri.lastIndexOf(".");
-            String extension = sourceUri.substring(lastDotIndex + 1);
-            Document doc = info.docMgr.add(factory, type, sourceUri, info.area.getPublication(),
-                    info.area.getName(), path, LANGUAGE, extension, title, true);
-            Link link = new Link();
-            link.setUuid(doc.getUUID());
-            info.links.put(linkName, link.getUri());
-            log("Created " + extension.toUpperCase() + " document (" + info.counterToString()
-                    + ") [" + path + "]");
+
+            Document doc = null;
+            SiteStructure site = info.area.getSite();
+            if (site.contains(path)) {
+                SiteNode node = site.getNode(path);
+                org.apache.lenya.cms.site.Link link = node.getLink(info.area.getPublication()
+                        .getDefaultLanguage());
+                if (!link.getLabel().equals(title)) {
+                    link.setLabel(title);
+                }
+                if (node.getUuid() != null) {
+                    doc = link.getDocument();
+                    Source source = null;
+                    SourceResolver resolver = null;
+                    try {
+                        resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
+                        source = resolver.resolveURI(sourceUri);
+                        String sourceString = IOUtils.toString(source.getInputStream());
+                        String docString = IOUtils.toString(doc.getInputStream());
+                        if (sourceString.equals(docString)) {
+                            log(path + " is up to date (" + info.counterToString() + ")");
+                        } else {
+                            log("Updating " + path + " (" + info.counterToString() + ")");
+                            IOUtils.write(sourceString, doc.getOutputStream());
+                        }
+                    } finally {
+                        if (resolver != null) {
+                            this.manager.release(resolver);
+                        }
+                    }
+                }
+            }
+            if (doc == null) {
+                int lastDotIndex = sourceUri.lastIndexOf(".");
+                String extension = sourceUri.substring(lastDotIndex + 1);
+                doc = info.docMgr.add(factory, type, sourceUri, info.area.getPublication(),
+                        info.area.getName(), path, LANGUAGE, extension, title, true);
+                Link link = new Link();
+                link.setUuid(doc.getUUID());
+                info.links.put(linkName, link.getUri());
+                log("Created " + extension.toUpperCase() + " document (" + info.counterToString()
+                        + ") [" + path + "]");
+            }
+
         } catch (Exception e) {
             log("A problem occured:");
             log("Path: '" + path + "'");
@@ -258,6 +322,8 @@
         protected Map links;
         protected long startTime;
         protected Calendar startCal;
+        protected ExternalLinks externalLinks;
+        protected ExternalLinksRewriter externalLinksRewriter;
 
         protected static final String dateFormat = "HH:mm:ss";
 
@@ -332,6 +398,23 @@
         Element[] children = DocumentHelper.getChildren(element);
         for (int i = 0; i < children.length; i++) {
             convertLinks(info, children[i]);
+        }
+    }
+
+    protected void createExternalLinks(ImportInfo info) {
+        Element docElement = info.helper.getDocument().getDocumentElement();
+        Element baseElement = info.helper.getFirstChild(docElement, "external-refs");
+        createExternalLinks(info, baseElement, "");
+    }
+
+    protected void createExternalLinks(ImportInfo info, Element element, String baseUri) {
+        Element[] children = info.helper.getChildren(element);
+        for (int i = 0; i < children.length; i++) {
+            String name = children[i].getLocalName();
+            String uri = baseUri + children[i].getAttribute("href");
+            log("Adding external link: " + name + " -> " + uri);
+            info.externalLinks.setUri(name, uri);
+            createExternalLinks(info, children[i], uri);
         }
     }
 

Modified: lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java?rev=595679&r1=595678&r2=595679&view=diff
==============================================================================
--- lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java (original)
+++ lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java Fri Nov 16 06:41:42 2007
@@ -52,11 +52,9 @@
         Publication pub = getPublication(session, PUB_ID);
         Area area = pub.getArea("authoring");
         
-        if (area.getDocuments().length == 0) {
-            Importer importer = new Importer(getManager(), getLogger());
-            importer.importSite(area);
-            session.commit();
-        }
+        Importer importer = new Importer(getManager(), getLogger());
+        importer.importSite(area);
+        session.commit();
         
         assertTrue(area.getSite().contains("/project-information"));
     }

Modified: lenya/sandbox/modules/forrest/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/forrest/sitemap.xmap?rev=595679&r1=595678&r2=595679&view=diff
==============================================================================
--- lenya/sandbox/modules/forrest/sitemap.xmap (original)
+++ lenya/sandbox/modules/forrest/sitemap.xmap Fri Nov 16 06:41:42 2007
@@ -96,6 +96,7 @@
           <map:parameter name="language" value="{4}"/>
         </map:transform>
         <map:transform type="cinclude"/>
+        <map:transform type="externallinks-xhtml"/>
         <map:serialize type="xml"/>
       </map:match>
 

Added: lenya/sandbox/modules/propertiesdocument/config/menu.xsp
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/propertiesdocument/config/menu.xsp?rev=595679&view=auto
==============================================================================
--- lenya/sandbox/modules/propertiesdocument/config/menu.xsp (added)
+++ lenya/sandbox/modules/propertiesdocument/config/menu.xsp Fri Nov 16 06:41:42 2007
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!-- $Id: generic.xsp 155806 2005-03-01 17:55:42Z andreas $ -->
+
+<xsp:page 
+    language="java" 
+    xmlns:xsp="http://apache.org/xsp"
+    xmlns:xsp-request="http://apache.org/xsp/request/2.0"
+    xmlns:input="http://apache.org/cocoon/xsp/input/1.0"
+    xmlns:i18n="http://apache.org/cocoon/i18n/2.1"    
+    xmlns:wf="http://apache.org/cocoon/lenya/workflow/1.0"
+    xmlns:uc="http://apache.org/cocoon/lenya/usecase/1.0"
+    xmlns="http://apache.org/cocoon/lenya/menubar/1.0"
+>
+
+  <xsp:structure>
+    <xsp:include>org.apache.lenya.cms.publication.Document</xsp:include>
+    <xsp:include>org.apache.lenya.cms.publication.Publication</xsp:include>
+  </xsp:structure>
+  
+  <menu>
+
+    <menus>
+      <menu i18n:attr="name" name="Edit">
+        <xsp:logic>
+          try {
+              Object doc = <input:get-attribute module="page-envelope" as="object" name="document"/>;
+              if (doc instanceof Document &amp;&amp; ((Document) doc).exists()) {
+                  String doctype = <input:get-attribute module="page-envelope" as="string" name="document-type"/>;
+                  if ("properties".equals(doctype)) {
+                      <block areas="authoring">
+                        <item uc:usecase="editors.oneform" href="?"><i18n:text>With one Form</i18n:text></item>
+                      </block>
+                  }
+              }
+          }
+          catch (Exception e) {
+              throw new ProcessingException("Error during menu generation: ", e);
+          }
+        </xsp:logic>
+      </menu>
+      
+    </menus>
+    
+  </menu>
+</xsp:page>

Modified: lenya/sandbox/modules/propertiesdocument/java/src/org/apache/lenya/modules/propertiesdocument/PropertiesDocument.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/propertiesdocument/java/src/org/apache/lenya/modules/propertiesdocument/PropertiesDocument.java?rev=595679&r1=595678&r2=595679&view=diff
==============================================================================
--- lenya/sandbox/modules/propertiesdocument/java/src/org/apache/lenya/modules/propertiesdocument/PropertiesDocument.java (original)
+++ lenya/sandbox/modules/propertiesdocument/java/src/org/apache/lenya/modules/propertiesdocument/PropertiesDocument.java Fri Nov 16 06:41:42 2007
@@ -196,4 +196,8 @@
         }
         return this.delegate;
     }
+
+    public void clear() {
+        properties().clear();
+    }
 }

Added: lenya/sandbox/modules/propertiesdocument/menus.xmap
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/propertiesdocument/menus.xmap?rev=595679&view=auto
==============================================================================
--- lenya/sandbox/modules/propertiesdocument/menus.xmap (added)
+++ lenya/sandbox/modules/propertiesdocument/menus.xmap Fri Nov 16 06:41:42 2007
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!-- $Id: menus.xmap 178738 2005-05-27 03:42:09Z gregor $ -->
+
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+
+  <map:pipelines>
+
+    <map:pipeline>
+    	
+      <map:match pattern="**">
+        <map:generate type="serverpages" src="fallback://lenya/modules/propertiesdocument/config/menu.xsp"/>
+        <map:serialize type="xml"/>
+      </map:match>
+      
+    </map:pipeline>
+    
+  </map:pipelines>
+</map:sitemap>

Added: lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui.xml
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui.xml?rev=595679&view=auto
==============================================================================
--- lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui.xml (added)
+++ lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui.xml Fri Nov 16 06:41:42 2007
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!-- $Id: cmsui.xml 446564 2006-09-15 10:13:16Z andreas $ -->
+
+<catalogue xml:lang="en" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+  <message key="resourceType-properties">Properties</message>
+  
+</catalogue>

Added: lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui_de.xml
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui_de.xml?rev=595679&view=auto
==============================================================================
--- lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui_de.xml (added)
+++ lenya/sandbox/modules/propertiesdocument/resources/i18n/cmsui_de.xml Fri Nov 16 06:41:42 2007
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!-- $Id: cmsui_de.xml 446564 2006-09-15 10:13:16Z andreas $ -->
+
+<catalogue xml:lang="de" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+  <message key="resourceType-properties">Eigenschaften</message>
+  
+</catalogue>
+

Added: lenya/sandbox/modules/propertiesdocument/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/propertiesdocument/sitemap.xmap?rev=595679&view=auto
==============================================================================
--- lenya/sandbox/modules/propertiesdocument/sitemap.xmap (added)
+++ lenya/sandbox/modules/propertiesdocument/sitemap.xmap Fri Nov 16 06:41:42 2007
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!-- $Id: doctypes.xmap 179488 2005-06-02 02:29:39Z gregor $ -->
+
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+
+<!-- =========================== Components ================================ -->
+
+  <map:pipelines>
+
+    <map:pipeline>
+
+      <!-- parametrized doctype matcher -->
+      <!-- pattern="{format}.xml" -->
+      <map:match pattern="*.xml">
+        <map:generate src="cocoon:/{1}.xml/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-uuid}/{page-envelope:document-language}"/>
+        <map:serialize type="xml"/>
+      </map:match>
+      
+      <!-- {format}.xml/{pubId}/{area}/{uuid}/{language} -->
+      <map:match pattern="*.xml/*/*/*/*">
+        <map:generate src="lenya-document:{4},lang={5}{link:rev}"/>
+        <map:transform src="fallback://lenya/modules/propertiesdocument/xslt/properties2xhtml.xsl">
+          <map:parameter name="title" value="{dublincore:title}"/>
+        </map:transform>
+        <map:serialize type="xml"/>
+      </map:match>
+
+      <map:match pattern="icon/*/*/*/*">
+        <map:read src="fallback://lenya/modules/xhtml/resources/icons/xhtml.gif"/>
+      </map:match>
+      
+    </map:pipeline>
+    
+  </map:pipelines>
+</map:sitemap>

Added: lenya/sandbox/modules/propertiesdocument/xslt/properties2xhtml.xsl
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/propertiesdocument/xslt/properties2xhtml.xsl?rev=595679&view=auto
==============================================================================
--- lenya/sandbox/modules/propertiesdocument/xslt/properties2xhtml.xsl (added)
+++ lenya/sandbox/modules/propertiesdocument/xslt/properties2xhtml.xsl Fri Nov 16 06:41:42 2007
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:p="http://apache.org/lenya/propertiesdocument/1.0"
+  xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+  xmlns="http://www.w3.org/1999/xhtml">
+  
+  <xsl:param name="title"/>
+  <xsl:param name="maxLength" select="number(50)"/>
+  
+  
+  <xsl:template match="/">
+    <html>
+      <body>
+        <div id="body">
+          <h1><xsl:value-of select="$title"/></h1>
+          <xsl:apply-templates select="p:properties"/>
+        </div>
+      </body>
+    </html>
+  </xsl:template>
+  
+  
+  <xsl:template match="p:properties">
+    <table class="properties">
+      <tr>
+        <th><i18n:text>Key</i18n:text></th>
+        <th><i18n:text>Value</i18n:text></th>
+      </tr>
+      <xsl:apply-templates select="p:property">
+        <xsl:sort select="@name"/>
+      </xsl:apply-templates>
+    </table>
+  </xsl:template>
+  
+  
+  <xsl:template match="p:property">
+    <tr class="row{position() mod 2 + 1}">
+      <td><xsl:value-of select="@name"/></td>
+      <td>
+        <xsl:value-of select="substring(@value, 1, $maxLength)"/>
+        <xsl:if test="string-length(@value) &gt; $maxLength"> ...</xsl:if>
+      </td>
+    </tr>
+  </xsl:template>
+  
+
+</xsl:stylesheet>
\ No newline at end of file
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.