Diff for /ECHO_content/ECHO_xslt.py between versions 1.10 and 1.11

version 1.10, 2006/09/11 14:43:23 version 1.11, 2006/09/14 14:31:53
Line 252  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 252  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
         fn=self.REQUEST['fn']          fn=self.REQUEST['fn']
         self.cache.deleteObject(fn)          self.cache.deleteObject(fn)
                   
     def getPageLex(self,_pn="1",_caching=None):      def getPageLex(self,_pn="1",_id=None,_caching=None):
         """getpage mit lexikalischer analyse und xslt transform          """getpage mit lexikalischer analyse und xslt transform
         if _caching=yes dann wird die lwxikalisch analysierte seite in einem cache abgespeichert          if _caching=yes dann wird die lwxikalisch analysierte seite in einem cache abgespeichert
         """          """
Line 262  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 262  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
                           
         fn=self.REQUEST['fn']          fn=self.REQUEST['fn']
   
                   if not _id:
         fromCache=self.cache.retrieveObject(fn,_pn)          fromCache=self.cache.retrieveObject(fn,_pn)
     
         if fromCache and _caching=="yes":          if fromCache and _caching=="yes":
Line 273  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 273  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
                     
             self.cache.storeObject(fn,_pn,txt[0:])              self.cache.storeObject(fn,_pn,txt[0:])
                   
           else:
              txt=self.tagLex(id=_id)
                 
         xsl=self.xslt()          xsl=self.xslt()
                   
Line 284  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 286  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
         stylesheet = InputSource.DefaultFactory.fromString(xsl)          stylesheet = InputSource.DefaultFactory.fromString(xsl)
         xsltproc.appendStylesheet(stylesheet)          xsltproc.appendStylesheet(stylesheet)
         tmp=xsltproc.run(document)          tmp=xsltproc.run(document)
                   #bugfix for digilib images which doesn't accept &
           tmp=tmp.replace("&","&")
         return tmp[0:]          return tmp[0:]
                           
     def getTextInput(self):      def getTextInput(self):
Line 309  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 312  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
         #return InputSource.InputSource(fact)          #return InputSource.InputSource(fact)
         #xmlt=urllib.urlopen(qs).read()          #xmlt=urllib.urlopen(qs).read()
                   
     def getPage(self,_pn,REQUEST=None,_caching=None):      def getPage(self,_pn="-1",_id=None,REQUEST=None,_caching=None):
         """get a page from an xml"""          """get a page from an xml"""
                   
         if not _caching:          if not _caching:
             _caching=self.caching              _caching=self.caching
                           
         pn=int(_pn)-1          pn=int(_pn)-1
         if pn<0:          if pn<0 and (not _id):
             if REQUEST:              if REQUEST:
                 return "Sorry, pagenumbers have to be greater than 0"                  return "Sorry, pagenumbers have to be greater than 0"
             else:              else:
Line 340  class ECHO_xslt(ECHO_pageTemplate,ECHO_l Line 343  class ECHO_xslt(ECHO_pageTemplate,ECHO_l
         #pb should have a namespache          #pb should have a namespache
                   
         pbs=dom.xpath("//mpiwg:pb",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})          pbs=dom.xpath("//mpiwg:pb",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})
           
         if len(pbs)==0: # versuche nochmal ohne          if len(pbs)==0: # versuche nochmal ohne
             pbs=dom.xpath("//pb")              pbs=dom.xpath("//pb")
   
           if _id:
               #suche wieviele pb for der id
               
               
               idpb=dom.xpath("//*[@id='%s']/preceding::node()/mpiwg:pb"%_id,explicitNss={'html':'http://test.de','mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})
               if len(idpb)==0:
                   idpb=dom.xpath("//*[@id='%s']/preceding::node()/pb"%_id)
            
               if len(idpb)==0:
                           k=0
                           for node in dom.xpath("//*[@id='%s']//preceding::node()"%_id,explicitNss={'html':'http://test.de','mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}):
                               if getattr(node,'tagName',"")=="mpiwg:pb":
                                   k+=1
               else:
                   k=len(idpb)
               pn=k-1 #-1 wegen Seitenzahlzaehlung startet mit 0
               
         if pn > len(pbs):          if pn > len(pbs):
             if REQUEST:              if REQUEST:
                 return "Sorry, pagenumber %s does not exit"%(pn+1)                  return "Sorry, pagenumber %s does not exit"%(pn+1)

Removed from v.1.10  
changed lines
  Added in v.1.11


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