Diff for /ECHO_content/ECHO_xslt.py between versions 1.6 and 1.8

version 1.6, 2006/09/09 00:10:01 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 Ft.Xml.Domlette import Print, PrettyPrint
   from StringIO import StringIO
   
 from Globals import package_home  from Globals import package_home
   
Line 95  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 172  class ECHO_xslt(ECHO_pageTemplate): Line 173  class ECHO_xslt(ECHO_pageTemplate):
                 return self._v_xmltrans.getResult()                  return self._v_xmltrans.getResult()
   
           
     def getPage(self,pn):      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"""          """get a page from an xml"""
         pn=int(pn)          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()          impl=xml.dom.getDOMImplementation()
         newDoc=impl.createDocument(EMPTY_NAMESPACE,None,None          newDoc=impl.createDocument(EMPTY_NAMESPACE,None,None
                                    )                                     )
         root=newDoc.createElement('page')          root=newDoc.createElement('page')
         newDoc.appendChild(root)          newDoc.appendChild(root)
              qs="%s%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING'])
         xmlt=urllib.urlopen("%s"%self.cgiUrl).read()          print qs
           xmlt=urllib.urlopen(qs).read()
         dom=Parse(xmlt)          dom=Parse(xmlt)
                 
         pbs=dom.xpath("//pb")          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          beginNode=pbs[pn] #take the n'th pb
   
           if not (pn==len(pbs)-1): # nicht die letzte Seite
         endNode=pbs[pn+1]          endNode=pbs[pn+1]
         follower=beginNode.xpath('following::node()')          else:
         #root.appendChild(beginNode)              endNode=None
         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)  #        follower=beginNode.xpath('following::node()')
   #        #root.appendChild(beginNode)
   #        found=[]
   #       
   #        for node in endNode.xpath('preceding::node()'):
   #            if node in follower:
   #                found.append(node)
   #    
                                 
                     del(found[nr])  
                 except:  
                     pass  
   
         found.append(endNode)          #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("..")
                 
         for x in found:                  if parent:
             PrettyPrint(x)                      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
   
   
                   

Removed from v.1.6  
changed lines
  Added in v.1.8


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