version 1.5, 2005/10/26 08:35:53
|
version 1.8, 2006/09/10 11:03:07
|
Line 7 from ECHO_Nav import ECHO_pageTemplate
|
Line 7 from ECHO_Nav import ECHO_pageTemplate
|
from threading import Thread,Timer |
from threading import Thread,Timer |
import threading |
import threading |
from ECHO_helpers import * |
from ECHO_helpers import * |
|
import ECHO_language |
import sys |
import sys |
import urllib |
import urllib |
import urlparse |
import urlparse |
|
from Ft.Xml.Domlette import Print, PrettyPrint |
|
from StringIO import StringIO |
|
|
from Globals import package_home |
from Globals import package_home |
|
|
Line 22 import urllib
|
Line 23 import urllib
|
|
|
try: |
try: |
from Ft.Xml.Xslt.Processor import Processor |
from Ft.Xml.Xslt.Processor import Processor |
from Ft.Xml import InputSource |
from Ft.Xml import InputSource, EMPTY_NAMESPACE,Parse |
|
|
except: |
except: |
print "4suite has to be installed" |
print "4suite has to be installed" |
|
|
Line 61 class getXML(Implicit):
|
Line 61 class getXML(Implicit):
|
def run(self): |
def run(self): |
"""call it""" |
"""call it""" |
xml="" |
xml="" |
|
print "X",self._v_qs |
try: |
try: |
|
|
urlH=urllib.urlopen(self._v_qs) |
urlH=urllib.urlopen(self._v_qs) |
Line 96 class getXML(Implicit):
|
Line 96 class getXML(Implicit):
|
|
|
|
|
|
|
class ECHO_xslt(ECHO_pageTemplate): |
class ECHO_xslt(ECHO_pageTemplate,ECHO_language.ECHO_language): |
"""ECHO_xslt classe""" |
"""ECHO_xslt classe""" |
|
|
meta_type="ECHO_xslt" |
meta_type="ECHO_xslt" |
Line 141 class ECHO_xslt(ECHO_pageTemplate):
|
Line 141 class ECHO_xslt(ECHO_pageTemplate):
|
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._xmltrans.start() |
#self._xmltrans.start() |
Line 173 class ECHO_xslt(ECHO_pageTemplate):
|
Line 173 class ECHO_xslt(ECHO_pageTemplate):
|
return self._v_xmltrans.getResult() |
return self._v_xmltrans.getResult() |
|
|
|
|
|
def getPageLex(self,_pn="1"): |
|
"""getpage with linkss to lexicon""" |
|
return self.tagLex(nr=_pn) |
|
|
|
def getPage(self,_pn,REQUEST=None): |
|
"""get a page from an xml""" |
|
pn=int(_pn)-1 |
|
if pn<0: |
|
if REQUEST: |
|
return "Sorry, pagenumbers have to be greater than 0" |
|
else: |
|
return None |
|
impl=xml.dom.getDOMImplementation() |
|
newDoc=impl.createDocument(EMPTY_NAMESPACE,None,None |
|
) |
|
root=newDoc.createElement('page') |
|
newDoc.appendChild(root) |
|
qs="%s%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING']) |
|
print qs |
|
xmlt=urllib.urlopen(qs).read() |
|
dom=Parse(xmlt) |
|
|
|
pbs=dom.xpath("//pb") |
|
if pn > len(pbs): |
|
if REQUEST: |
|
return "Sorry, pagenumber %s does not exit"%pn+1 |
|
else: |
|
return None |
|
|
|
beginNode=pbs[pn] #take the n'th pb |
|
|
|
if not (pn==len(pbs)-1): # nicht die letzte Seite |
|
endNode=pbs[pn+1] |
|
else: |
|
endNode=None |
|
|
|
|
|
# follower=beginNode.xpath('following::node()') |
|
# #root.appendChild(beginNode) |
|
# found=[] |
|
# |
|
# for node in endNode.xpath('preceding::node()'): |
|
# if node in follower: |
|
# found.append(node) |
|
# |
|
|
|
|
|
#rempove all children of parents which are also in the list |
|
# for x in found: |
|
# for child in x.xpath(".//*"): |
|
# try: |
|
# |
|
# nr=found.index(child) |
|
# |
|
# del(found[nr]) |
|
# except: |
|
# pass |
|
# |
|
# found.append(endNode) |
|
# |
|
deleteNodes=beginNode.xpath('preceding::node()') |
|
if endNode: |
|
deleteNodes+=endNode.xpath('following::node()') |
|
for node in deleteNodes: |
|
try: |
|
parent=node.xpath("..") |
|
|
|
if parent: |
|
parent[0].removeChild(node) |
|
except: |
|
zLOG.LOG("ECHO_Resource (getAccessRightMD)", zLOG.INFO,"%s (%s)"%sys.exc_info()[0:2]) |
|
strio = StringIO() |
|
PrettyPrint(dom,strio) |
|
xmlstr = strio.getvalue() |
|
return xmlstr |
|
|
|
|
|
|
def manage_addECHO_xsltForm(self): |
def manage_addECHO_xsltForm(self): |
"""Form for adding""" |
"""Form for adding""" |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_xslt.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_xslt.zpt')).__of__(self) |