Diff for /ECHO_content/vlp_xmlhelpers.py between versions 1.10 and 1.13

version 1.10, 2006/11/22 17:21:10 version 1.13, 2007/12/11 17:00:01
Line 1 Line 1
 from sys import argv  from sys import argv
   
 import string  import string
   import logging
 import xml.dom.minidom  import xml.dom.minidom
 import Ft.Xml.XLink.Processor  import Ft.Xml.XLink.Processor
 import Ft.Xml.XLink.XLinkElements  import Ft.Xml.XLink.XLinkElements
Line 15  from Ft.Xml import EMPTY_NAMESPACE Line 16  from Ft.Xml import EMPTY_NAMESPACE
 from Ft.Lib import Uri  from Ft.Lib import Uri
 import urllib  import urllib
 import re  import re
   from ECHO_collection import unicodify,utf8ify
   
 patternTXT=r"<\s*txt.*?>(.*?)</txt>"  patternTXT=r"<\s*txt.*?>(.*?)</txt>"
 regexpTXT = re.compile(patternTXT, re.IGNORECASE + re.DOTALL)  regexpTXT = re.compile(patternTXT, re.IGNORECASE + re.DOTALL)
Line 175  def checkRef(self,ref): Line 177  def checkRef(self,ref):
              'vl_people':'AND complete =\'yes\'',               'vl_people':'AND complete =\'yes\'',
              'vl_sites':'AND complete =\'yes\'',               'vl_sites':'AND complete =\'yes\'',
              'vl_transcript':'AND complete =\'yes\'',               'vl_transcript':'AND complete =\'yes\'',
              'vl_essays':'AND online =\'yes\''               'vl_essays':'AND online =\'yes\'',
            'vl_categories':''
              }               }
         res=None          res=None
         for db in dbs.keys():          for db in dbs.keys():
Line 184  def checkRef(self,ref): Line 187  def checkRef(self,ref):
         return res          return res
           
 def link2html(self,str):  def link2html(self,str):
         """link2html liks in html wandeln"""          """link2html links in html wandeln"""
         if str:          if str:
   
             str=re.sub("\&","&amp;",str)              str=re.sub("\&","&amp;",str)
             dom=xml.dom.minidom.parseString("<?xml version='1.0' encoding='utf-8'?><txt>"+str+"</txt>")              dom=xml.dom.minidom.parseString("<?xml version='1.0' encoding='utf-8'?><txt>"+utf8ify(str)+"</txt>")
             links=dom.getElementsByTagName("link")              links=dom.getElementsByTagName("link")
                           
   
Line 196  def link2html(self,str): Line 199  def link2html(self,str):
                 link.tagName="a"                  link.tagName="a"
                 ref=link.getAttribute("ref")                  ref=link.getAttribute("ref")
                 pn=link.getAttribute("page")                  pn=link.getAttribute("page")
                   mk=link.getAttribute("mk")
                                                   
                 if self.checkRef(ref):                  if self.checkRef(ref):
                       more = ""
                         if pn:                          if pn:
                                 link.setAttribute("href",self.REQUEST['SERVER_URL']+"/references?id="+ref+"&page="+pn)                          more += "&page=%s"%pn
                         else:                          
                                 link.setAttribute("href",self.REQUEST['SERVER_URL']+"/references?id="+ref)                      if mk:
                           more += "&mk=%s"%mk
   
                       link.setAttribute("href",self.REQUEST['SERVER_URL']+"/references?id="+ref+more)
   
             newxml=dom.toxml('utf-8')              newxml=dom.toxml('utf-8')
                       
             retStr=regexpTXT.search(newxml)              retStr=regexpTXT.search(newxml)
               retStr = retStr.group(1)
   
             return retStr.group(1)              return retStr.decode('utf-8') # we return unicode
   
                                      return u""
         return ""  
   
 def related2html(self,str):  def related2html(self,str):
     """related library items: xlinks in html wandeln / mb 22.11.2006"""      """related library items: xlinks in html wandeln / mb 22.11.2006"""
     if str:      if str:
                                   
         str=re.sub("\&","&amp;",str)          str=re.sub("\&","&amp;",str)
         dom=xml.dom.minidom.parseString("<?xml version='1.0' encoding='utf-8'?><txt>"+str+"</txt>")          dom=xml.dom.minidom.parseString("<?xml version='1.0' encoding='utf-8'?><txt>"+utf8ify(str)+"</txt>")
         links=dom.getElementsByTagName("link")          links=dom.getElementsByTagName("link")
                                   
         for link in links:          for link in links:
Line 246  def related2html(self,str): Line 253  def related2html(self,str):
   
                 else:                  else:
                     # item nur als bibliographische angabe vorhanden                      # item nur als bibliographische angabe vorhanden
                     link.setAttribute("alt", res[0]['fullreference'].decode('utf-8'))                      link.setAttribute("alt", unicodify(res[0]['fullreference']))
                     link.setAttribute("title", "click to expand")                      link.setAttribute("title", "click to expand")
                     link.setAttribute("onclick", "return toggle(this);")                      link.setAttribute("onclick", "return toggle(this);")
                     link.setAttribute("class", "x_offline")                      link.setAttribute("class", "x_offline")
Line 258  def related2html(self,str): Line 265  def related2html(self,str):
         newxml=dom.toxml('utf-8')          newxml=dom.toxml('utf-8')
                                   
         retStr=regexpTXT.search(newxml)          retStr=regexpTXT.search(newxml)
           retStr = retStr.group(1)
           #logging.debug("related2html out=%s"%repr(retStr))
           return retStr.decode('utf-8') # we return unicode
                                   
         return retStr.group(1)      return u""
                                              
     return ""  
   
           
   
Line 308  def xml2html(self,str,quote="yes"): Line 316  def xml2html(self,str,quote="yes"):
             retStr=regexpPage.search(str)              retStr=regexpPage.search(str)
                           
             try: # hack warum fehtl manchmal page??              try: # hack warum fehtl manchmal page??
                     return retStr.group(1)                      return retStr.group(1).decode('utf-8')
             except:              except:
                     return str                      return str
         return ""          return ""

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


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