[Checkins] SVN: zope3org/trunk/src/zorg/wikification/browser/wikilink.py Added a traverseLink method

Uwe Oestermeier uwe_oestermeier at iwm-kmrc.de
Wed Apr 5 09:01:36 EDT 2006


Log message for revision 66523:
  Added a traverseLink method

Changed:
  U   zope3org/trunk/src/zorg/wikification/browser/wikilink.py

-=-
Modified: zope3org/trunk/src/zorg/wikification/browser/wikilink.py
===================================================================
--- zope3org/trunk/src/zorg/wikification/browser/wikilink.py	2006-04-05 12:19:40 UTC (rev 66522)
+++ zope3org/trunk/src/zorg/wikification/browser/wikilink.py	2006-04-05 13:01:35 UTC (rev 66523)
@@ -236,7 +236,6 @@
         
         
         """
-        
         page = self.page
         site_url = zapi.absoluteURL(page.site, page.request)
         if link.startswith(site_url) :
@@ -248,7 +247,19 @@
             return False, link
         else :
             node = page.container
-            
+             
+        node, path = self.traverseLink(node, link)
+        if path :
+            return True, self.absoluteAddLink(node, path)
+
+        if IFile.providedBy(node) :
+            if node.contentType not in page.supported :
+                return False, self.absoluteLink(node)
+                                
+        return False, self.absoluteWikiLink(node)
+
+    
+    def traverseLink(self, node, link) :
         remaining = urllib.unquote(link)
         path = [x for x in remaining.split("/") if x]        
         while path :         
@@ -259,25 +270,19 @@
                 name = path.pop(0)
             except (TraversalError, UnicodeEncodeError) :
                 break
-        
-        if path :
-            return True, self.absoluteAddLink(node, path)
+        return node, path
 
-        if IFile.providedBy(node) :
-            if node.contentType not in page.supported :
-                return False, self.absoluteLink(node)
-                                
-        return False, self.absoluteWikiLink(node)
         
-    
     def absoluteWikiLink(self, node) :
         return zapi.absoluteURL(node, self.page.request) + self.page.action
+
         
     def absoluteAddLink(self, node, path) :
         url = zapi.absoluteURL(node, self.page.request)
         appendix = urllib.urlencode({'add': "/".join(path)})
         return  url + self.page.add + "?" + appendix
 
+
     def absoluteLink(self, node) :
         return zapi.absoluteURL(node, self.page.request)
          



More information about the Checkins mailing list