--- ECHO_content/VLPExtension.py 2004/10/13 14:55:15 1.29
+++ ECHO_content/VLPExtension.py 2004/11/29 20:39:25 1.36
@@ -1,3 +1,7 @@
+"""
+This module contains extensions which where originally made for the VLP.
+"""
+from OFS.Cache import Cacheable
from Products.ECHO_content.ECHO_collection import *
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.PageTemplates.PageTemplate import PageTemplate
@@ -13,6 +17,7 @@ import urllib
import xmlrpclib
import vlp_xmlhelpers
from types import *
+from Globals import package_home
@@ -52,7 +57,7 @@ class sendMailForm(ZopePageTemplate):
"""sendMailForm"""
meta_type="sendMailForm"
- _default_content_fn = os.path.join(package_home(globals()), 'vlp/sendMail_template.zpt')
+ _default_content_fn = os.path.join(package_home(globals()), 'vlp','sendMail_template.zpt')
manage_options = ZopePageTemplate.manage_options+(
{'label':'Main Config','action':'main_configForm'},
@@ -157,13 +162,13 @@ class VLP_essay(Folder):
obj=getattr(self,type+"_template")
return obj()
else:
- pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_%s_template_standard.zpt'%type).__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ECHO_%s_template_standard.zpt'%type)).__of__(self)
pt.content_type="text/html"
return pt()
def ConfigVLP_essayForm(self):
"""Form for adding"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/ChangeVLP_essay.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','ChangeVLP_essay.zpt')).__of__(self)
return pt()
def ChangeVLP_essay(self,title,label,description,RESPONSE=None):
@@ -188,7 +193,7 @@ class VLP_essay(Folder):
if hasattr(self,'essayTemplate.html'):
return getattr(self,'essayTemplate.html')()
- pt=PageTemplateFile('Products/ECHO_content/vlp/essay_template.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','essay_template.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
@@ -263,7 +268,7 @@ class VLP_essay(Folder):
def manage_addVLP_essayForm(self):
"""Form for adding"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_essay.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','AddVLP_essay.zpt')).__of__(self)
return pt()
def manage_addVLP_essay(self, id,title,label,RESPONSE=None):
@@ -288,7 +293,7 @@ class VLP_encyclopaedia(VLP_essay):
def loadNewFileForm(self):
"""Neues XML-File einlesen"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/VLP_newfile.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','VLP_newfile.zpt')).__of__(self)
return pt()
def loadNewFile(self,RESPONSE=None):
@@ -321,7 +326,7 @@ class VLP_encyclopaedia(VLP_essay):
def manage_addVLP_encycForm(self):
"""Form for adding"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_encyc.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','AddVLP_encyc.zpt')).__of__(self)
return pt()
def manage_addVLP_encyc(self, id,title,label,RESPONSE=None):
@@ -346,7 +351,7 @@ class VLP_collection(ECHO_collection):
def VLP_path_configForm(self):
"""change pt"""
- path=PageTemplateFile('Products/ECHO_content/vlp/ChangeVLPPath.zpt').__of__(self)
+ path=PageTemplateFile(os.path.join(package_home(globals()),'vlp','ChangeVLPPath.zpt')).__of__(self)
return pt()
def VLP_path_config(self,path,RESPONSE=None):
@@ -363,11 +368,13 @@ class VLP_collection(ECHO_collection):
if fileName[0:3]=="lit":
metalink=self.REQUEST['URL1']+"/"+fileName+"/index_meta"
- newObj=VLP_resource(fileName,'',metalink,fileName,fileName,fileName,'generated','book','','','','','','')
- self._setObject(fileName,newObj)
+ if not hasattr(self,fileName):
+ newObj=VLP_resource(fileName,'',metalink,fileName,fileName,fileName,'generated','book','','','','','','')
+ self._setObject(fileName,newObj)
genObj=getattr(self,fileName)
genObj.createIndexFile()
+
if RESPONSE is not None:
@@ -404,7 +411,7 @@ class VLP_collection(ECHO_collection):
def manage_addVLP_collectionForm(self):
"""Form for adding a ressource"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_collectionForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','AddVLP_collectionForm.zpt')).__of__(self)
return pt()
@@ -423,7 +430,7 @@ def manage_addVLP_collection(self,id,tit
-class VLP_resource(ECHO_resource):
+class VLP_resource(ECHO_resource,Cacheable):
"""VLP spezifische Erweiterung"""
meta_type="VLP_resource"
@@ -433,21 +440,32 @@ class VLP_resource(ECHO_resource):
referencetypes=[]
- manage_options=ECHO_resource.manage_options+(
+ manage_options=ECHO_resource.manage_options+Cacheable.manage_options+(
{'label':'Update Index','action':'createIndexFile'},
{'label':'Reset MetaLink','action':'resetMetaLink'},
{'label':'Generate Title','action':'generate_title'},
{'label':'Generate Library Template','action':'generateLibraryTemplateHTML'},
)
+
+ def getImagePath(self):
+ """Pfad zu den Images"""
+ if os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pageimg')):
+ return os.path.join(self.vlp_basis,self.resourceID,'pageimg')
+ elif os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi')):
+ return os.path.join(self.vlp_basis,self.resourceID,'pagesHi')
+ else:
+ return "no images "
+
+
def transcription(self):
"""show the rendered transcriptiofile"""
if hasattr(self,'libraryTranscriptionTemplate.html'):
return getattr(self,'libraryTranscriptionTemplate.html')()
- pt=PageTemplateFile('Products/ECHO_content/vlp/library_transcriptionTemplate.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','library_transcriptionTemplate.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
@@ -508,7 +526,7 @@ class VLP_resource(ECHO_resource):
if hasattr(self,'libraryTemplate.html'):
return getattr(self,'libraryTemplate.html')()
- pt=PageTemplateFile('Products/ECHO_content/vlp/library_template.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','library_template.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
@@ -535,7 +553,7 @@ class VLP_resource(ECHO_resource):
def index_meta(self):
"""index_meta"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/index_meta.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','index_meta.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
@@ -554,7 +572,8 @@ class VLP_resource(ECHO_resource):
"""dir to index"""
def calculateName(str):
- ret="%s: %s"%(str[0],str[1:5])
+ name=os.path.splitext(str[1:])[0]
+ ret="%s: %s"%(str[0],name)
return ret
try:
@@ -564,6 +583,7 @@ class VLP_resource(ECHO_resource):
ret=os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi'))
self.imagePath='pagesHi'
temp=[]
+ ret.sort()
for x in ret:
if not (x[0]=="."):
@@ -577,10 +597,11 @@ class VLP_resource(ECHO_resource):
return """
first"""
else:
- return """
+ ws=self.REQUEST.get('ws','1')
+ return """
first
- """%(self.REQUEST['URL']+"?pn=1")
+ """%(self.REQUEST['URL']+"?pn=1&ws=%s"%ws)
def lastPage(self,url=None):
"""showlink to the first image"""
@@ -592,10 +613,11 @@ class VLP_resource(ECHO_resource):
return """
last"""
else:
- return """
-
last
+ ws=self.REQUEST.get('ws','1')
+ return """
+
last
- """%(self.REQUEST['URL']+"?pn="+str(ln))
+ """%(self.REQUEST['URL']+"?pn="+str(ln)+"&ws="+ws)
def prevPage(self,url=None):
"""showlink to the first image"""
@@ -606,10 +628,11 @@ class VLP_resource(ECHO_resource):
return """
prev"""
else:
- return """
+ ws=self.REQUEST.get('ws','1')
+ return """
prev
- """%(self.REQUEST['URL']+"?pn="+str(nn))
+ """%(self.REQUEST['URL']+"?pn="+str(nn)+"&ws="+ws)
def nextPage(self,url=None):
"""showlink to the first image"""
@@ -622,18 +645,27 @@ class VLP_resource(ECHO_resource):
return """
next"""
else:
- return """
+ ws=self.REQUEST.get('ws','1')
+ return """
next
- """%(self.REQUEST['URL']+"?pn="+str(nn))
+ """%(self.REQUEST['URL']+"?pn="+str(nn)+"&ws="+ws)
def readIndexFile(self,url=None):
"""reads the indexfile. presently url not None isn't implemented. In the future url can be defined."""
- pagelist=[]
- if not url:
+ if not url:
url=self.absolute_url()+"/index.xml"
+ if self.ZCacheable_isCachingEnabled():
+
+ result = self.ZCacheable_get(view_name=url)
+ if result is not None:
+ # Got a cached value.
+ return result
+
+ pagelist=[]
+
fh=ECHO_helpers.urlopen(url)
dom=xml.dom.minidom.parse(fh)
@@ -644,7 +676,8 @@ class VLP_resource(ECHO_resource):
fileName=page.getAttribute('file')
pagelist.append((pageNum,text,fileName))
- return pagelist
+ self.ZCacheable_set(pagelist,view_name=url)
+ return pagelist
def getFileName(self):
"""getNameOfCurrentFile"""
@@ -659,7 +692,7 @@ class VLP_resource(ECHO_resource):
"""create index file"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/index_template.zpt').__of__(self)()
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','index_template.zpt')).__of__(self)()
@@ -678,7 +711,7 @@ class VLP_resource(ECHO_resource):
def manage_addVLP_resourceForm(self):
"""Form for adding a ressource"""
- pt=PageTemplateFile('Products/ECHO_content/vlp/AddVLP_resourceForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','AddVLP_resourceForm.zpt')).__of__(self)
return pt()