Diff for /ECHO_content/ECHO_xslt.py between versions 1.4 and 1.7

version 1.4, 2005/10/23 09:46:26 version 1.7, 2006/09/09 10:52:35
Line 10  from ECHO_helpers import * Line 10  from ECHO_helpers import *
 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 22  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 60  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 141  class ECHO_xslt(ECHO_pageTemplate): Line 140  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 172  class ECHO_xslt(ECHO_pageTemplate):
                 return self._v_xmltrans.getResult()                  return self._v_xmltrans.getResult()
   
           
       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)

Removed from v.1.4  
changed lines
  Added in v.1.7


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