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

version 1.6, 2006/09/09 00:10:01 version 1.7, 2006/09/09 10:52:35
Line 11  import sys Line 11  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 172  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):      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.7


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