Diff for /ECHO_content/ECHO_xslt.py between versions 1.16 and 1.23.2.1

version 1.16, 2006/10/19 07:27:59 version 1.23.2.1, 2011/10/13 07:48:27
Line 17  except: Line 17  except:
 import sys  import sys
 import urllib  import urllib
 import urlparse  import urlparse
 from Ft.Xml.Domlette import Print, PrettyPrint  #from Ft.Xml.Domlette import Print, PrettyPrint
 from StringIO import StringIO  from StringIO import StringIO
 from types import *  from types import *
 from Globals import package_home  from Globals import package_home
Line 26  import transaction Line 26  import transaction
 import os.path  import os.path
   
 import urllib,cgi  import urllib,cgi
   import logging
   #try:
   #    from Ft.Xml.Xslt.Processor import Processor
   #    from Ft.Xml import InputSource, EMPTY_NAMESPACE,Parse
   #    from Ft.Xml.Domlette import NonvalidatingReader
   #except:
   #    print "4suite has to be installed"
   
 try:  
     from Ft.Xml.Xslt.Processor import Processor  
     from Ft.Xml import InputSource, EMPTY_NAMESPACE,Parse  
     from Ft.Xml.Domlette import NonvalidatingReader  
 except:  
     print "4suite has to be installed"  
   
   class getXML(Thread):
 class getXML(Implicit):  
     """get XML thread"""      """get XML thread"""
   
     def set(self,qs,xsl,result):      def set(self,qs,xsl,result):
Line 63  class getXML(Implicit): Line 63  class getXML(Implicit):
       
     def __call__(self):      def __call__(self):
         """wait"""          """wait"""
           self.run()
         return True          return True
           
     def run(self):      def run(self):
Line 71  class getXML(Implicit): Line 72  class getXML(Implicit):
   
         try:          try:
       
             urlH=urllib.urlopen(self._v_qs)              #urlH=urllib.urlopen(self._v_qs)
             xml=urlH.read()              #xml=urlH.read()
             urlH.close()              #urlH.close()
             xsltproc=Processor()              xsltproc=Processor()
             document = InputSource.DefaultFactory.fromString(xml)              logging.debug("start XML")
               document = InputSource.DefaultFactory.fromUri(self._v_qs)
                           
             stylesheet = InputSource.DefaultFactory.fromUri(self.xsl)              stylesheet = InputSource.DefaultFactory.fromUri(self.xsl)
                           logging.debug("got all files XML")
             xsltproc.appendStylesheet(stylesheet)              xsltproc.appendStylesheet(stylesheet)
                           logging.debug("got all files do the transform")
                   
             #print self.xsl              #print self.xsl
             #< xsltproc.run(document)              #< xsltproc.run(document)
Line 106  from ZODB.FileStorage import FileStorage Line 108  from ZODB.FileStorage import FileStorage
 class ECHO_cache:  class ECHO_cache:
     def __init__(self):      def __init__(self):
         """init the storage"""          """init the storage"""
         self.storage=FileStorage("/var/tmp/echo_cache.fs")  
       try:
               self.storage=FileStorage(os.path.join(INSTANCE_HOME,"var/echo_cache.fs"))       
       
         self.db=DB(self.storage)              self.db=DB(self.storage)    
         self.connection=self.db.open()          self.connection=self.db.open()
         self.root=self.connection.root()          self.root=self.connection.root()
           except:
           pass
           
     def deleteObject(self,name,pn=None):      def deleteObject(self,name,pn=None):
         """delete an object from cache"""          """delete an object from cache"""
Line 212  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 219  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
                   
         if not threadName or threadName=="":          if not threadName or threadName=="":
                           
             #abwaertskompatibilitŠt mit altem nivht konfigurierbaren prototypen  
               # compatibility with old prototype
                           
             if getattr(self,'cgiUrl','')=='':              if getattr(self,'cgiUrl','')=='':
                 self.cgiUrl="http://medea.mpiwg-berlin.mpg.de/cgi-bin/search/q1"                  self.cgiUrl="http://medea.mpiwg-berlin.mpg.de/cgi-bin/search/q1"
                                   
             qs="%s%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING'])              qs="%s%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING'])
             xsl=self.absolute_url()+"/xslt"              xsl=self.absolute_url()+"/xslt"
             self._v_xmltrans=getXML().__of__(self)              #self._v_xmltrans=getXML().__of__(self)
               self._v_xmltrans=getXML()
             #self._xmltrans.start()              #self._xmltrans.start()
             thread=Thread(target=self._v_xmltrans)              #thread=Thread(target=self._v_xmltrans)
             thread.start()              #thread.start()
               logging.debug("Thread prepared")
             self._v_xmltrans.set(qs,xsl,None)              self._v_xmltrans.set(qs,xsl,None)
             self._v_xmltrans.run()              self._v_xmltrans.start()
                           logging.debug("Thread started")
                           
             self.threadName=thread.getName()[0:]              #self.threadName=thread.getName()[0:]
               self.threadName=self._v_xmltrans.getName()[0:]
             wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['wait_template'])              wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['wait_template'])
             if wait_template:              if wait_template:
                 return wait_template[0][1]()                  return wait_template[0][1]()
Line 407  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 418  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          """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
         """          """
Line 466  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 477  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
         xsltproc.appendStylesheet(stylesheet)          xsltproc.appendStylesheet(stylesheet)
         tmp=xsltproc.run(document)          tmp=xsltproc.run(document)
                   
         if _links:          if _links and (_displaylinks=='yes'):
             _links=urllib.unquote(_links)              _links=urllib.unquote(_links)
             tmp=self.addLinks(tmp,url=_links)              tmp=self.addLinks(tmp,url=_links)
                           
Line 480  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 491  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
         """get the text          """get the text
         wie der text geholt wird liegt an der konfiguration,          wie der text geholt wird liegt an der konfiguration,
         is appendQueryString gesetzt, dann wir jeweils der Querystring an vorgebenen url gesetzt, erwartet wird fn=          is appendQueryString gesetzt, dann wir jeweils der Querystring an vorgebenen url gesetzt, erwartet wird fn=
         fŸr den Pfad, is passURL gesetzt, dann wird falls fn= eine vollstŠndige url enthŠlt, diese anstelle der in cgiurl definierten genommen.          fuer den Pfad, is passURL gesetzt, dann wird falls fn= eine vollstaendige url enthaelt, diese anstelle der in cgiurl definierten genommen.
         """          """
                   
         if getattr(self,'passURL',False) and self.REQUEST.has_key('fn') and (urlparse.urlparse(self.REQUEST['fn'])[0]=='http'):          if getattr(self,'passURL',False) and self.REQUEST.has_key('fn') and (urlparse.urlparse(self.REQUEST['fn'])[0]=='http'):
Line 514  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 525  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
         xmlt,self.baseUri=self.getTextInput()          xmlt,self.baseUri=self.getTextInput()
                   
         #get the text from cache, if existing          #get the text from cache, if existing
           try:
         fromCache=self.cache.retrieveObject(self.baseUri,"-1")          fromCache=self.cache.retrieveObject(self.baseUri,"-1")
           except:
               fromCache=None
         if fromCache and _caching=="yes":          if fromCache and _caching=="yes":
                       
             txt = fromCache              txt = fromCache
Line 550  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 564  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
             else:              else:
                 k=len(idpb)                  k=len(idpb)
             #pn=k-1 #-1 wegen Seitenzahlzaehlung startet mit 0              #pn=k-1 #-1 wegen Seitenzahlzaehlung startet mit 0
             pn=k #-1 wegen Seitenzahlzaehlung startet mit 0              pn=k-1 #-1 wegen Seitenzahlzaehlung startet mit 0
         if pn > len(pbs):          if pn > len(pbs):
             if REQUEST:              if REQUEST:
                 return "Sorry, pagenumber %s does not exit"%(pn+1)                  return "Sorry, pagenumber %s does not exit"%(pn+1)
Line 574  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 588  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
                 if parent:                  if parent:
                     parent[0].removeChild(node)                      parent[0].removeChild(node)
             except:              except:
                 zLOG.LOG("ECHO_Resource (getAccessRightMD)", zLOG.INFO,"%s (%s)"%sys.exc_info()[0:2])                  logger("ECHO_Resource (getAccessRightMD)", logging.INFO,"%s (%s)"%sys.exc_info()[0:2])
         strio = StringIO()          strio = StringIO()
         PrettyPrint(dom,strio)           PrettyPrint(dom,strio) 
         xmlstr = strio.getvalue()          xmlstr = strio.getvalue()
Line 632  def manage_addECHO_xslt(self, id, label, Line 646  def manage_addECHO_xslt(self, id, label,
             u = "%s/%s" % (u, quote(id))              u = "%s/%s" % (u, quote(id))
         REQUEST.RESPONSE.redirect(u+'/manage_main')          REQUEST.RESPONSE.redirect(u+'/manage_main')
     return ''      return ''
   

Removed from v.1.16  
changed lines
  Added in v.1.23.2.1


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>