--- ECHO_content/ECHO_xslt.py 2006/10/18 14:42:33 1.14 +++ ECHO_content/ECHO_xslt.py 2007/01/09 17:01:01 1.18 @@ -7,7 +7,13 @@ from ECHO_Nav import ECHO_pageTemplate from threading import Thread,Timer import threading from ECHO_helpers import * -import ECHO_language +try: + from ECHO_language import * +except: + print "no echo language" + class ECHO_language: + """leere Klasse""" + pass import sys import urllib import urlparse @@ -100,7 +106,7 @@ from ZODB.FileStorage import FileStorage class ECHO_cache: def __init__(self): """init the storage""" - self.storage=FileStorage("/var/tmp/echo_cache.fs") + self.storage=FileStorage(os.path.join(INSTANCE_HOME,"var/echo_cache.fs")) self.db=DB(self.storage) self.connection=self.db.open() self.root=self.connection.root() @@ -141,7 +147,7 @@ class ECHO_cache: return self.root[name].get(pn,None) -class ECHO_xslt(ECHO_pageTemplate,ECHO_language.ECHO_language): +class ECHO_xslt(ECHO_pageTemplate,ECHO_language): """ECHO_xslt classe""" meta_type="ECHO_xslt" @@ -401,7 +407,7 @@ class ECHO_xslt(ECHO_pageTemplate,ECHO_l - def getPageLex(self,_pn="1",_id=None,_caching=None,_links=None,_showall="no"): + def getPageLex(self,_pn="1",_id=None,_caching=None,_links=None,_showall="no",_displaylinks="yes"): """getpage mit lexikalischer analyse und xslt transform if _caching=yes dann wird die lwxikalisch analysierte seite in einem cache abgespeichert """ @@ -460,7 +466,7 @@ class ECHO_xslt(ECHO_pageTemplate,ECHO_l xsltproc.appendStylesheet(stylesheet) tmp=xsltproc.run(document) - if _links: + if _links and (_displaylinks=='yes'): _links=urllib.unquote(_links) tmp=self.addLinks(tmp,url=_links) @@ -508,7 +514,10 @@ class ECHO_xslt(ECHO_pageTemplate,ECHO_l xmlt,self.baseUri=self.getTextInput() #get the text from cache, if existing - fromCache=self.cache.retrieveObject(self.baseUri,"-1") + try: + fromCache=self.cache.retrieveObject(self.baseUri,"-1") + except: + fromCache=None if fromCache and _caching=="yes": txt = fromCache @@ -518,7 +527,7 @@ class ECHO_xslt(ECHO_pageTemplate,ECHO_l self.cache.storeObject(self.baseUri,"-1",txt) - + dom=NonvalidatingReader.parseString(txt,self.baseUri) #pb should have a namespache @@ -532,19 +541,19 @@ class ECHO_xslt(ECHO_pageTemplate,ECHO_l #suche wieviele pb for der id - idpb=dom.xpath("//*[@id='%s']/preceding::node()/mpiwg:pb"%_id,explicitNss={'html':'http://test.de','mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}) + idpb=dom.xpath("//*[@id='%s']/preceding::node()/mpiwg:pb"%_id,explicitNss={'html':'http://www.w3.org/1999/xhtml','mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}) if len(idpb)==0: idpb=dom.xpath("//*[@id='%s']/preceding::node()/pb"%_id) if len(idpb)==0: k=0 - for node in dom.xpath("//*[@id='%s']//preceding::node()"%_id,explicitNss={'html':'http://test.de','mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): + for node in dom.xpath("//*[@id='%s']//preceding::node()"%_id,explicitNss={'html':'http://www.w3.org/1999/xhtml','mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): if getattr(node,'tagName',"")=="mpiwg:pb": k+=1 else: k=len(idpb) + #pn=k-1 #-1 wegen Seitenzahlzaehlung startet mit 0 pn=k-1 #-1 wegen Seitenzahlzaehlung startet mit 0 - if pn > len(pbs): if REQUEST: return "Sorry, pagenumber %s does not exit"%(pn+1) @@ -626,4 +635,3 @@ def manage_addECHO_xslt(self, id, label, u = "%s/%s" % (u, quote(id)) REQUEST.RESPONSE.redirect(u+'/manage_main') return '' -