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""" |