--- ECHO_content/ECHO_collection.py 2004/07/30 16:46:04 1.153 +++ ECHO_content/ECHO_collection.py 2004/08/04 17:14:40 1.154 @@ -14,6 +14,7 @@ import re import os import OFS.Image from types import * +from OFS.Cache import Cacheable from OFS.Image import Image from Globals import DTMLFile from OFS.Folder import Folder @@ -271,7 +272,7 @@ class BrowserCheck: -def writeMetadata(url,metadict,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,xmlfrag=None): +def writeMetadata(url,metadict,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,xmlfrag=None,digiliburlprefix=None): """Einlesen der Metadaten und und erstellen des geaenderten XML file""" def updateTextToolNode(tag,value): #print dom,tag,value @@ -369,6 +370,8 @@ def writeMetadata(url,metadict,project=N updateTextToolNode('xslt',xslt) + if digiliburlprefix: + updateTextToolNode('digiliburlprefix',digiliburlprefix) return dom.toxml().encode('utf-8') @@ -843,19 +846,20 @@ class ECHO_resource(Folder,Persistent): return default - def changeViewerTemplateSet(self,project,xslt,thumbtemplate,topbar,digiLibTemplate,RESPONSE=None): + def changeViewerTemplateSet(self,project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix,RESPONSE=None): """changeit""" - paramList=['project','startpage','xslt','thumbtemplate','topbar','digiLibTemplate'] + paramList=['project','startpage','xslt','thumbtemplate','topbar','digiLibTemplate','digiliburlprefix'] #writeMetadata(self.metalink,self.metaDataHash,project,None,xslt,thumbtemplate,topbar,digiLibTemplate) - params="project=%s&xslt=%s&thumbtemplate=%s&topbar=%s&digiLibTemplate=%s"%(project,xslt,thumbtemplate,topbar,digiLibTemplate) + params="project=%s&xslt=%s&thumbtemplate=%s&topbar=%s&digiLibTemplate=%s&digiliburlprefix=%s"%(project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix) urllib.urlopen('http://echo.mpiwg-berlin.mpg.de/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML'+urllib.quote('?'+params))).read() + #print self.absolute_url()+'/newMetaXML'+urllib.quote'?'+params) # hack Pfad auf die Dokumente path=self.metalink @@ -1179,7 +1183,7 @@ class ECHO_resource(Folder,Persistent): def getMDValue(self,fieldName): return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) - def newMetaXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None): + def newMetaXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,digiliburlprefix=None): """new index.meta""" self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') @@ -1187,9 +1191,9 @@ class ECHO_resource(Folder,Persistent): self.copyIndex_meta2echo_resource() try: - return writeMetadata(self.metalink,self.OSAS_meta,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate) + return writeMetadata(self.metalink,self.OSAS_meta,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix) except: - return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate) + return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix) def showMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None): """schreibe md""" @@ -1663,7 +1667,7 @@ def manage_addECHO_link(self,id,title,la RESPONSE.redirect('manage_main') -class ECHO_collection(Folder, Persistent, Implicit): +class ECHO_collection(Folder, Persistent, Implicit, Cacheable): """ECHO Collection""" security=ClassSecurityInfo() @@ -2196,7 +2200,7 @@ class ECHO_collection(Folder, Persistent self.bgcolour=bgcolour - manage_options = Folder.manage_options+( + manage_options = Folder.manage_options+ Cacheable.manage_options+( {'label':'Main Config','action':'ECHO_collection_config'}, {'label':'Change Labels','action':'changeLabels'}, {'label':'Change Titles','action':'changeTitles'}, @@ -2306,20 +2310,29 @@ class ECHO_collection(Folder, Persistent def index_html(self): """standard page""" - + if self.ZCacheable_isCachingEnabled(): + + result = self.ZCacheable_get() + if result is not None: + # Got a cached value. + return result + if 'index.html' in self.__dict__.keys(): - return getattr(self,'index.html')() + ret=getattr(self,'index.html')() elif 'overview' in self.__dict__.keys(): - return self.showOverview() + ret=self.showOverview() elif hasattr(self,'collection_index_template'): - return self.collection_index_template() + ret=self.collection_index_template() elif hasattr(self,'main_index_template'): - return self.main_index_template() - - pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_main_index_template_standard.zpt').__of__(self) - pt.content_type="text/html" - return pt() + ret=self.main_index_template() + else: + pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_main_index_template_standard.zpt').__of__(self) + pt.content_type="text/html" + ret=pt.render() + + self.ZCacheable_set(ret) + return ret def content_html(self): """template fuer content"""