version 1.13, 2006/10/12 16:37:33
|
version 1.14, 2006/10/18 14:42:33
|
Line 19 import transaction
|
Line 19 import transaction
|
|
|
import os.path |
import os.path |
|
|
import urllib |
import urllib,cgi |
|
|
try: |
try: |
from Ft.Xml.Xslt.Processor import Processor |
from Ft.Xml.Xslt.Processor import Processor |
Line 283 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 283 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
if type=="target": |
if type=="target": |
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
fn=link.xpath("mpiwg:target/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
fn=link.xpath("mpiwg:target/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
|
if urlparse.urlparse(urllib.unquote(fn))[0]=="http": # fn ist eine url |
|
return urllib.unquote(fn) # dann gibt diese zurueck |
|
|
ref=link.xpath("mpiwg:target/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
ref=link.xpath("mpiwg:target/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
ref2=link.xpath("mpiwg:target/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
ref2=link.xpath("mpiwg:target/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
selectionNodeIndex=link.xpath("mpiwg:target/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
selectionNodeIndex=link.xpath("mpiwg:target/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
lstr=slaveurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s'%(ref2,selectionNodeIndex) |
|
lstr+="&_links="+urllib.quote(url)+'&_linkid='+linkid+'&_linktype=target' |
|
|
lstr=slaveurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s/%s/%s'%(ref2,selectionNodeIndex,linkid,'target') |
|
lstr+="&_links="+urllib.quote(url) |
|
|
else: |
else: |
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
fn=link.xpath("mpiwg:source/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
fn=link.xpath("mpiwg:source/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
if urlparse.urlparse(urllib.unquote(fn))[0]=="http": # fn ist eine url |
|
return urllib.unquote(fn) # dann gibt diese zurueck |
|
|
ref=link.xpath("mpiwg:source/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
ref=link.xpath("mpiwg:source/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
ref2=link.xpath("mpiwg:source/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
ref2=link.xpath("mpiwg:source/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
selectionNodeIndex=link.xpath("mpiwg:source/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
selectionNodeIndex=link.xpath("mpiwg:source/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
lstr=masterurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s'%(ref2,selectionNodeIndex) |
lstr=masterurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s/%s/%s'%(ref2,selectionNodeIndex,linkid,'source') |
lstr+="&_links="+urllib.quote(url)+'&_linkid='+linkid+'&_linktype=source' |
lstr+="&_links="+urllib.quote(url) |
return lstr |
return lstr |
|
|
|
def addLinksUrl(self,txt,url): |
|
"""add reference to links to url""" |
|
ret=[] |
|
dom=NonvalidatingReader.parseUri(url) |
|
textDom=NonvalidatingReader.parseString(txt) |
|
|
|
#find ids in txt |
|
ids=textDom.xpath("//*[@id]") |
|
|
|
for textid in ids: |
|
xp="//mpiwg:link[mpiwg:source/@refid='%s']"%textid.xpath("@id")[0].value |
|
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
|
ref2=link.xpath("mpiwg:source/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
selectionNodeIndex=link.xpath("mpiwg:source/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
linkid=link.xpath("@id")[0].value |
|
ret.append('%s///%s/%s/%s'%(ref2,selectionNodeIndex,linkid,'source')) |
|
|
|
xp="//mpiwg:link[mpiwg:target/@refid='%s']"%textid.xpath("@id")[0].value |
|
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
|
ref2=link.xpath("mpiwg:target/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
selectionNodeIndex=link.xpath("mpiwg:target/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
linkid=link.xpath("@id")[0].value |
|
ret.append('%s///%s/%s/%s'%(ref2,selectionNodeIndex,linkid,'target')) |
|
|
|
|
|
return ret |
|
|
def addLinks(self,txt,url="http://127.0.0.1:8080/HFQP/linkCreator/getCollectionXML?collection=commentary2"): |
def addLinks(self,txt,url="http://127.0.0.1:8080/HFQP/linkCreator/getCollectionXML?collection=commentary2"): |
"""add links to a page from xml linkfile""" |
"""add links to a page from xml linkfile""" |
|
|
Line 319 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 355 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
xp="//mpiwg:link[mpiwg:source/@refid='%s']"%textid.xpath("@id")[0].value |
xp="//mpiwg:link[mpiwg:source/@refid='%s']"%textid.xpath("@id")[0].value |
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
fn=link.xpath("mpiwg:target/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
fn=link.xpath("mpiwg:target/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
print fn |
|
if urlparse.urlparse(urllib.unquote(fn))[0]=="http": # fn ist eine url |
|
lstr=urllib.unquote(fn) # dann gibt diese zurueck |
|
else: |
|
try: |
ref=link.xpath("mpiwg:target/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
ref=link.xpath("mpiwg:target/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
ref2=link.xpath("mpiwg:target/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
ref2=link.xpath("mpiwg:target/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
selectionNodeIndex=link.xpath("mpiwg:target/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
selectionNodeIndex=link.xpath("mpiwg:target/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
linkid=link.xpath("@id")[0].value |
linkid=link.xpath("@id")[0].value |
lstr=slaveurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s'%(ref2,selectionNodeIndex) |
lstr=slaveurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s/%s/%s'%(ref2,selectionNodeIndex,linkid,'target') |
lstr+="&_links="+urllib.quote(url)+'&_url='+url+'&_linkid='+linkid+'&_linktype=target' |
lstr+="&_links="+urllib.quote(url) |
|
except: |
|
lstr="" |
node=self.createLinkNode(lstr,textDom) |
node=self.createLinkNode(lstr,textDom) |
textid.parentNode.insertBefore(node,textid) |
textid.parentNode.insertBefore(node,textid) |
|
|
Line 333 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 376 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
xp="//mpiwg:link[mpiwg:target/@refid='%s']"%textid.xpath("@id")[0].value |
xp="//mpiwg:link[mpiwg:target/@refid='%s']"%textid.xpath("@id")[0].value |
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
fn=link.xpath("mpiwg:source/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
fn=link.xpath("mpiwg:source/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
if urlparse.urlparse(urllib.unquote(fn))[0]=="http": # fn ist eine url |
|
lstr=urllib.unquote(fn) # dann gibt diese zurueck |
|
else: |
|
|
ref=link.xpath("mpiwg:source/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
ref=link.xpath("mpiwg:source/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
ref2=link.xpath("mpiwg:source/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
ref2=link.xpath("mpiwg:source/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
selectionNodeIndex=link.xpath("mpiwg:source/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
selectionNodeIndex=link.xpath("mpiwg:source/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
linkid=link.xpath("@id")[0].value |
linkid=link.xpath("@id")[0].value |
lstr=masterurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s'%(ref2,selectionNodeIndex) |
lstr=masterurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s/%s/%s'%(ref2,selectionNodeIndex,linkid,"source") |
lstr+="&_links="+urllib.quote(url)+'&_linkid='+linkid+'&_linktype=source' |
lstr+="&_links="+urllib.quote(url) |
|
|
node=self.createLinkNode(lstr,textDom) |
node=self.createLinkNode(lstr,textDom) |
textid.parentNode.insertBefore(node,textid) |
textid.parentNode.insertBefore(node,textid) |
Line 354 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 401 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
|
|
|
|
|
|
def getPageLex(self,_pn="1",_id=None,_caching=None,_links=None): |
def getPageLex(self,_pn="1",_id=None,_caching=None,_links=None,_showall="no"): |
"""getpage mit lexikalischer analyse und xslt transform |
"""getpage mit lexikalischer analyse und xslt transform |
if _caching=yes dann wird die lwxikalisch analysierte seite in einem cache abgespeichert |
if _caching=yes dann wird die lwxikalisch analysierte seite in einem cache abgespeichert |
""" |
""" |
|
def encode(hash): |
|
ret=[] |
|
for x in hash.keys(): |
|
value=hash[x] |
|
|
|
if type(value) is ListType: |
|
for z in value: |
|
ret.append("%s=%s"%(x,z)) |
|
else: |
|
ret.append("%s=%s"%(x,value)) |
|
return "&".join(ret) |
|
|
|
|
|
|
if not _caching: |
if not _caching: |
_caching=self.caching |
_caching=self.caching |
Line 379 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 439 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
else: |
else: |
txt=self.tagLex(id=_id) |
txt=self.tagLex(id=_id) |
|
|
|
if _showall=="yes": |
|
params=cgi.parse_qs(self.REQUEST['QUERY_STRING']) |
|
|
|
params['_pagelink']=self.addLinksUrl(txt,url=_links) |
|
params['_showall']='no' |
|
|
|
print self.absolute_url()+"?"+encode(params) |
|
self.REQUEST.RESPONSE.redirect(self.absolute_url()+"/getPageLex?"+encode(params)) |
|
|
|
|
xsl=self.xslt() |
xsl=self.xslt() |
|
|
xsltproc=Processor() |
xsltproc=Processor() |