Diff for /ECHO_content/ECHO_xslt.py between versions 1.1 and 1.2

version 1.1, 2005/04/07 21:01:10 version 1.2, 2005/04/10 11:37:03
Line 4 Line 4
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Globals import DTMLFile  from Globals import DTMLFile
 from ECHO_Nav import ECHO_pageTemplate  from ECHO_Nav import ECHO_pageTemplate
   from threading import Thread,Timer
   
 from Globals import package_home  from Globals import package_home
   
Line 19  except: Line 20  except:
     print "4suite has to be installed"      print "4suite has to be installed"
   
   
   class getXML:
       """get XML thread"""
   
       def __init__(self,qs,xsl):
   
           self.qs=qs
           self.xsl=xsl
           self.result=None
   
       def __call__(self):
   
           urlH=urllib.urlopen(self.qs)
           xml=urlH.read()
           urlH.close()
           
          
           xsltproc=Processor()
           document = InputSource.DefaultFactory.fromString(xml)
           stylesheet = InputSource.DefaultFactory.fromUri(self.xsl)
           xsltproc.appendStylesheet(stylesheet)
           
           self.result=xsltproc.run(document)
          
           
       def getResult(self):
           return self.result
   
   
   
       
 class ECHO_xslt(ECHO_pageTemplate):  class ECHO_xslt(ECHO_pageTemplate):
     """ECHO_xslt classe"""      """ECHO_xslt classe"""
   
     meta_type="ECHO_xslt"      meta_type="ECHO_xslt"
       def refreshTxt(self):
           """txt fuer refresh"""
           return """ 2;url=%s?repeat=%s """%(self.absolute_url(),self.threadName)
   
     def xslt(self):      def xslt(self):
         """standard ausgabe"""          """xslt"""
           return self.pt_render()
   
         self.cgiUrl="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/search/q1"  
   
         qs="%s?%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING'])  
   
         #urlH=urllib.urlopen(qs)  
         #xml=urlH.read()  
         #urlH.close()  
         #print xml  
         #return xml  
           
         xsltproc=Processor()      def index_html(self,repeat=None):
         document = InputSource.DefaultFactory.fromUri(qs)          """standard ausgabe"""
         stylesheet = InputSource.DefaultFactory.fromUri(self.absolute_url())          threadName=repeat
         xsltproc.appendStylesheet(stylesheet)  
   
         html=xsltproc.run(document)  
                                           
         return html          if not threadName or threadName=="":
               self.cgiUrl="http://medea.mpiwg-berlin.mpg.de/cgi-bin/search/q1"
   
               qs="%s?%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING'])
               xsl=self.absolute_url()+"/xslt"
               self.xmltrans=getXML(qs,xsl)
               thread=Thread(target=self.xmltrans)
               
               thread.start()
               
               self.threadName=thread.getName()[0:]
               wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['wait_template'])
               if wait_template:
                   return wait_template[0][1]()
               pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','xsltWait.zpt')).__of__(self)
               return pt()
           #xmltrans.run()
           
           else:
               
               if (self.xmltrans.getResult()==None):
                   killThread(self.xmltrans)
                   
                   pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','xsltWait.zpt')).__of__(self)
                   return pt()
               else:
                   return self.xmltrans.getResult()
   
   
   def killThread(thread):
       print "killing"
       del thread
   
 def manage_addECHO_xsltForm(self):  def manage_addECHO_xsltForm(self):
     """Form for adding"""      """Form for adding"""

Removed from v.1.1  
changed lines
  Added in v.1.2


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