Diff for /zogiLib/zogiLib.py between versions 1.31 and 1.32

version 1.31, 2004/07/16 13:47:50 version 1.32, 2004/07/19 16:31:46
Line 1 Line 1
   
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
Line 7  from webdav.common import rfc1123_date Line 6  from webdav.common import rfc1123_date
   
 import xml.dom.minidom  import xml.dom.minidom
 from OFS.Folder import Folder  from OFS.Folder import Folder
 from xml_helpers import getText  from xml_helpers import getUniqueElementText,getText
 import os  import os
 import re  import re
 import string  import string
Line 383  class zogiLib(Folder): Line 382  class zogiLib(Folder):
     """StandardElement"""      """StandardElement"""
   
     meta_type="zogiLib"      meta_type="zogiLib"
       #xxxx
   
     manage_options = Folder.manage_options+(      manage_options = Folder.manage_options+(
             {'label':'Main Config','action':'changeZogiLibForm'},              {'label':'Main Config','action':'changeZogiLibForm'},
Line 394  class zogiLib(Folder): Line 394  class zogiLib(Folder):
         self.id=id          self.id=id
         self.title=title          self.title=title
         self.digilibBaseUrl=digilibBaseUrl          self.digilibBaseUrl=digilibBaseUrl
   
         self.localFileBase=localFileBase          self.localFileBase=localFileBase
         self.basePath=basePath          self.basePath=basePath
         self.layout=version          self.layout=version
Line 406  class zogiLib(Folder): Line 407  class zogiLib(Folder):
         """version information"""          """version information"""
         return ZOGIVERSION          return ZOGIVERSION
   
       def getContextStatic(self):
           """get all the contexts which go to static pages"""
           
   
           dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName()))
           contexts=dom.getElementsByTagName("context")
   
           ret=[]
           for context in contexts:
               name=getUniqueElementText(context.getElementsByTagName("name"))
   
               link=getUniqueElementText(context.getElementsByTagName("link"))
               if name or link:
                   ret.append((name,link))
           return ret
   
       def getContextDatabases(self):
           """get all dynamic contexts"""
           dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName()))
           contexts=dom.getElementsByTagName("context")
           ret=[]
           for context in contexts:
               metaDataLinks=context.getElementsByTagName("meta-datalink")
               for metaDataLink in metaDataLinks:
                   db=metaDataLink.getAttribute("db")
                   link=self.REQUEST['URL1']+"/dl_db?db=%s"%db
                   if db:
                       ret.append((db,link))
               metaDataLinks=context.getElementsByTagName("meta-baselink")
               
               for metaDataLink in metaDataLinks:
                   db=metaDataLink.getAttribute("db")
                   link=self.REQUEST['URL1']+"/dl_db?db=%s"%db
                   if db:
                       ret.append((db,link))
                       
           return ret
   
       def formatHTML(self,url,label=None,viewUrl=None):
   
   
           sets=xml.dom.minidom.parse(urllib.urlopen(url)).getElementsByTagName('dataset')
           ret=""
           print label
           if label:
               ret+="""<a href="%s">%s</a>"""%(viewUrl,label)
           for set in sets:
               ret+="<table>"
               for node in set.childNodes:
                   if hasattr(node,'tagName'):
                       tag=node.tagName
                       label=node.getAttribute("label")
                       if not label:
                           label=tag
                       text=getText(node.childNodes)
                       ret+="""<tr><td><b>%s:</b></td><td>%s</td></tr>"""%(label,text)
               ret+="</table>"
           return ret
       
       def getMetaData(self):
           """getMetaData"""
           dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName()))
           contexts=dom.getElementsByTagName("context")
           ret=[]
           db=self.getDLParam("db")
           ob=self.getDLParam("object")
           
           fn=self.getDLParam("fn")
           pn=self.getDLParam("pn")
           if not fn:
               fn=""
           if not pn:
               pn=""
           if not ob:
               ob=""
               
           for context in contexts:
               metaDataLinks=context.getElementsByTagName("meta-datalink")
               for metaDataLink in metaDataLinks:
                    
                   if (db==metaDataLink.getAttribute("db")) or (len(metaDataLinks)==1):
                       
                       link=getUniqueElementText(metaDataLink.getElementsByTagName("metadata-url"))
                       label=getUniqueElementText(metaDataLink.getElementsByTagName("label"))
                       url=getUniqueElementText(metaDataLink.getElementsByTagName("url"))
   
                       return self.formatHTML(link,label,url)
   
               metaDataLinks=context.getElementsByTagName("meta-baselink")
                
               for metaDataLink in metaDataLinks:
                   
                   if db==metaDataLink.getAttribute("db") or (len(metaDataLinks)==1):
                       
                       link=getUniqueElementText(metaDataLink.getElementsByTagName("metadata-url"))
                       label=getUniqueElementText(metaDataLink.getElementsByTagName("label"))
                       url=getUniqueElementText(metaDataLink.getElementsByTagName("url"))
   
                       return self.formatHTML(link+'fn=%s&pn=%s&object=%s'%(fn,pn,ob),label,url)
           return ret
   
     def getDLInfo(self):      def getDLInfo(self):
         """get DLInfo from digilib server"""          """get DLInfo from digilib server"""
         paramH={}          paramH={}
Line 604  class zogiLib(Folder): Line 706  class zogiLib(Folder):
     self.checkQuery()      self.checkQuery()
     bt = self.REQUEST.SESSION['browserType']      bt = self.REQUEST.SESSION['browserType']
         tp = "zogiLibMainTemplate"          tp = "zogiLibMainTemplate"
           
         if hasattr(self, tp):          if hasattr(self, tp):
         pt = getattr(self, tp)          pt = getattr(self, tp)
         else:          else:
             tpt = self.layout              tpt = self.layout
               
             if bt['staticHTML']:              if bt['staticHTML']:
                 tpt = "static"                  tpt = "static"
                                   
Line 722  class zogiLib(Folder): Line 826  class zogiLib(Folder):
         else:          else:
             self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+'?'+params)              self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+'?'+params)
   
       def getMetaFileName(self):
           urlbase=re.sub('/servlet/Scaler','/dlContext-xml.jsp',self.digilibBaseUrl)
           
       
           return urlbase+self.getAllDLParams()
   
   
   
     def getDLTarget(self):      def getDLTarget(self):
         """returns dlTarget"""          """returns dlTarget"""
Line 960  class zogiLib(Folder): Line 1071  class zogiLib(Folder):
             self.setDLParam('mk', mk)              self.setDLParam('mk', mk)
         return self.display()          return self.display()
   
       def dl_db(self,db):
           """set db"""
           self.setDLParam('db',db)
           self.display()
   
     def changeZogiLibForm(self):      def changeZogiLibForm(self):
         """Main configuration"""          """Main configuration"""

Removed from v.1.31  
changed lines
  Added in v.1.32


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