--- ECHO_content/VLPExtension.py 2004/11/03 15:02:53 1.31
+++ ECHO_content/VLPExtension.py 2005/02/28 14:09:55 1.40
@@ -1,7 +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
@@ -368,13 +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)
+ RESPONSE.write("got: %s\n"%fileName)
genObj=getattr(self,fileName)
genObj.createIndexFile()
-
-
+
if RESPONSE is not None:
RESPONSE.redirect('manage_main')
@@ -428,7 +428,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"
@@ -438,14 +438,25 @@ 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"""
@@ -460,32 +471,39 @@ class VLP_resource(ECHO_resource):
def copyTranscriptionFromDB(self):
"""checks if transcription exits in DB"""
- founds=self.search(var='select * from vl_transcript where source=\''+self.resourceID+'\' order by id')
+ founds=self.ZSQLSimpleSearch('select * from vl_transcript where source=\''+self.resourceID+'\' order by id')
+
-
ret="""
"""
if founds:
for found in founds:
+
text=found.transcript
if not text: text=""
ret+=""+text+""
ret+=""
re2=ret[0:]
- re3=re2.decode('latin-1')
-
+ re3=re2.decode('latin-1').encode('utf-8')
+ #re3=re2
ft=self.ZopeFind(self,obj_metatypes=['ECHO_fullText'])
if ft:
- ft[0][1].pt_edit(re3.encode('utf-8','ignore'),'text/xml')
+ ft[0][1].pt_edit(re3,'text/xml')
else:
- self._setObject('fulltext',ECHO_fullText(id,re3))
-
+
+ self._setObject('fulltext',ECHO_fullText(id,''))
+
+ try:
+ getattr(self,'fulltext').pt_edit(re3.encode('utf-8','ignore'),'text/xml')
+ except:
+ getattr(self,'fulltext').pt_edit(re3.encode('latin-1').decode('utf-8'),'text/xml')
+
return "FT: %s"%self.getId()
else:
return "no: %s"%self.getId()
@@ -516,8 +534,14 @@ class VLP_resource(ECHO_resource):
pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','library_template.zpt')).__of__(self)
pt.content_type="text/html"
return pt()
-
- index_html=show
+
+ def index_html(self):
+ """index_html"""
+ #return self.REQUEST
+ if not self.REQUEST.has_key("ws"):
+ self.REQUEST.form["ws"]="1.5"
+
+ return self.show()
def generateLibraryTemplateHTML(self,RESPONSE=None):
"""lege standard index.html an"""
@@ -641,10 +665,18 @@ class VLP_resource(ECHO_resource):
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)
@@ -655,7 +687,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"""