[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