support links to media objects
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@4104 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
f4d1166442
commit
f065fca514
3 changed files with 35 additions and 13 deletions
|
@ -193,3 +193,21 @@ Embed media objects (images) in Wiki text
|
|||
<p><a class="reference"
|
||||
href="http://127.0.0.1/demo_wiki/start_page">Back to the Start Page</a></p>
|
||||
|
||||
Link to media objects (files) in Wiki text
|
||||
------------------------------------------
|
||||
|
||||
>>> imagePage2 = wiki.createPage('with_image_link')
|
||||
>>> imagePage2.text = '''
|
||||
... **A page with a link to an image**
|
||||
...
|
||||
... `Media Object #1 <media01.jpg>`_
|
||||
...
|
||||
... `Back to the Start Page <start_page>`_
|
||||
... '''
|
||||
|
||||
>>> print imagePage2.render(TestRequest())
|
||||
<p><strong>A page with a link to an image</strong></p>
|
||||
<p><a class="reference"
|
||||
href="http://127.0.0.1/demo_wiki/.media/media01.jpg">Media Object #1</a></p>
|
||||
<p><a class="reference"
|
||||
href="http://127.0.0.1/demo_wiki/start_page">Back to the Start Page</a></p>
|
||||
|
|
|
@ -58,13 +58,11 @@ class LinkProcessor(object):
|
|||
for link in lm.query(source=self.source, name=self.targetName):
|
||||
#link = existing.next()
|
||||
if link.target is not None:
|
||||
#target = manager.getObject(link.target)
|
||||
target = self.getTarget(manager, wiki, link.target)
|
||||
else:
|
||||
target = None
|
||||
break
|
||||
else:
|
||||
#target = wiki.getPage(targetPageName)
|
||||
target = self.findTarget(manager, wiki, targetPageName)
|
||||
link = lm.createLink(name=self.targetName,
|
||||
source=self.source, target=target)
|
||||
|
|
|
@ -49,6 +49,17 @@ class Reference(LinkProcessor):
|
|||
def targetName(self):
|
||||
return self.context.node['refuri']
|
||||
|
||||
def findTarget(self, manager, wiki, name):
|
||||
target = wiki.getPage(name)
|
||||
if target is None:
|
||||
return self.findTargetMedia(manager, wiki, name)
|
||||
return target
|
||||
|
||||
def findTargetMedia(self, manager, wiki, name):
|
||||
mmName = wiki.getConfig('mediaManager')
|
||||
mm = component.getAdapter(wiki, IMediaManager, name=mmName)
|
||||
return mm.getObject(name)
|
||||
|
||||
def setURI(self, uri):
|
||||
self.context.atts['href'] = uri
|
||||
|
||||
|
@ -63,21 +74,16 @@ class Image(Reference):
|
|||
|
||||
adapts(HTMLImageNode)
|
||||
|
||||
def findTarget(self, manager, wiki, text):
|
||||
mmName = wiki.getConfig('mediaManager')
|
||||
mm = component.getAdapter(wiki, IMediaManager, name=mmName)
|
||||
return mm.getObject(text)
|
||||
|
||||
def getTarget(self, manager, wiki, uid):
|
||||
return manager.getObject(uid)
|
||||
|
||||
def setURI(self, uri):
|
||||
self.context.atts['src'] = uri
|
||||
|
||||
@Lazy
|
||||
def targetName(self):
|
||||
return self.context.node['uri']
|
||||
|
||||
def findTarget(self, manager, wiki, name):
|
||||
return self.findTargetMedia(manager, wiki, name)
|
||||
|
||||
def setURI(self, uri):
|
||||
self.context.atts['src'] = uri
|
||||
|
||||
def markPresentation(self, feature):
|
||||
pass
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue