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""" |