--- ECHO_content/ECHO_collection.py 2004/10/27 14:23:24 1.182
+++ ECHO_content/ECHO_collection.py 2004/11/10 16:32:11 1.188
@@ -29,7 +29,7 @@ from Products.PageTemplates.PageTemplate
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
from Globals import Persistent, package_home
from Acquisition import Implicit
-from ECHO_helpers import displayTypes, getText,readFieldFromXML
+from ECHO_helpers import *
import urllib
import smtplib
import time
@@ -263,12 +263,6 @@ def content_html(self,type):
pt.content_type="text/html"
return pt()
-def toList(field):
- """Einzelfeld in Liste umwandeln"""
- if type(field)==StringType:
- return [field]
- else:
- return field
@@ -305,6 +299,7 @@ class BrowserCheck:
"""check the browsers request to find out the browser type"""
def __init__(self, zope):
+ """initialisiere"""
self.ua = zope.REQUEST.get_header("HTTP_USER_AGENT")
self.isN4 = (string.find(self.ua, 'Mozilla/4.') > -1) and (string.find(self.ua, 'MSIE') < 0)
self.isIE = string.find(self.ua, 'MSIE') > -1
@@ -317,9 +312,47 @@ class BrowserCheck:
self.isIEWin = self.isIE and self.isWin
self.isIEMac = self.isIE and self.isMac
+class Hello(Folder):
+ """helloo"""
+ def __init__(self):
+ self.test=test
+
+ meta_type="ECHO_copyright"
+
+
+
+ def __init__(self,id,title,copyrights):
+ """init"""
+ self.title=title
+ self.id=id
+ self.copyrights=copyrights[0:]
+
+ def getCopyrights(self):
+ """return coyprights"""
+ return self.copyrights
+
+ manage_options = Folder.manage_options+(
+ {'label':'Main Config','action':'ECHO_copyright_configForm'},
+ )
+
+
+ def ECHO_copyright_configForm(self):
+ """change form"""
+ pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_copyright').__of__(self)
+ pt.content_type="text/html"
+ return pt()
+
+ def ECHO_copyright_config(self,title,RESPONSE=None):
+ """change"""
+ self.title=title
+ self.copyrights=[]
+ self.copyrights=getCopyrightsFromForm(self,self.REQUEST.form)[0:]
+ if RESPONSE is not None:
+ RESPONSE.redirect('manage_main')
+
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"""
@@ -1010,32 +1043,50 @@ class ECHO_resource(Folder,Persistent):
def createImageUrl(self,pn=1):
"""create ImageUrl"""
+
- resourcepath=readFieldFromXML(self.metalink,'resource','archive-path').replace('/mpiwg/online','')
+ resourcepath=readFieldFromXML(self.metalink,'resource','archive-path')
digiliburlprefix=readFieldFromXML(self.metalink,'texttool','digiliburlprefix')
images=readFieldFromXML(self.metalink,'texttool','image')
-
+
+
+ if (not resourcepath) or (not digiliburlprefix) or (not images):
+ zLOG.LOG("ECHO (createImageUrl)",zLOG.ERROR,"Cannot create ImageUrl for %s"%self.absolute_url())
+ return None
+ resourcepath=resourcepath.replace('/mpiwg/online','')
if not digiliburlprefix: digiliburlprefix="http://echo.mpiwg-berlin.mpg.de/zogilib?"
if (not images) or (not resourcepath): return None
return "%sfn=%s&pn=%i"%(digiliburlprefix,resourcepath+"/"+images,pn)
- def copyTitleToInfoXML(self):
+ def copyTitleToInfoXML(self,RESPONSE=None):
"""copy title from the resource"""
presentationXML=readFieldFromXML(self.metalink,'texttool','presentation')
resourcepath=readFieldFromXML(self.metalink,'resource','archive-path')
- print os.path.join(resourcepath,presentationXML)
- fh=file(os.path.join(resourcepath,presentationXML),'w')
- fh.write("""
-
- %s
-
- yes
- """%self.title)
- fh.close()
-
+ if (not presentationXML) or (not resourcepath):
+ if RESPONSE:
+ RESPONSE.write("Error: %s\n"%self.getId())
+ else:
+ return None,self.absolute_url()
+
+ try:
+ fh=file(os.path.join(resourcepath,presentationXML),'w')
+ fh.write("""
+
+ %s
+
+ yes
+ """%self.title)
+ fh.close()
+ return 1,self.getId()
+ except:
+ if RESPONSE:
+ RESPONSE.write("Error: %s\n"%self.getId())
+ else:
+ return None,self.absolute_url()
+
def setStartPage(self,startpage=None,RESPONSE=None):
"""set start page, if no startpage defined use the generic one of the resource"""
@@ -1177,17 +1228,17 @@ class ECHO_resource(Folder,Persistent):
"""getFullTextXML; gives the FullText as an XML Document, and if somthing goes wrong."""
try:
- zLOG.LOG("ECHO Fulltext",zLOG.INFO,"open %s"%self.metalink)
+ #zLOG.LOG("ECHO Fulltext",zLOG.INFO,"open %s"%self.metalink)
fh=ECHO_helpers.urlopen(self.metalink)
- zLOG.LOG("ECHO Fulltext",zLOG.INFO,"opened %s"%self.metalink)
+ #zLOG.LOG("ECHO Fulltext",zLOG.INFO,"opened %s"%self.metalink)
dom=xml.dom.minidom.parse(fh)
texttools=dom.getElementsByTagName('texttool')
text=texttools[0].getElementsByTagName('text')
texturl=getText(text[0].childNodes)
- zLOG.LOG("ECHO Fulltext",zLOG.INFO,"found %s"%texturl)
+ #zLOG.LOG("ECHO Fulltext",zLOG.INFO,"found %s"%texturl)
fh.close()
- zLOG.LOG("ECHO Fulltext",zLOG.INFO,"closed fh")
+ #zLOG.LOG("ECHO Fulltext",zLOG.INFO,"closed fh")
#keine url
if not (texturl.split(":")[0] in ['http','ftp','file']):
if not noredirect:
@@ -2213,18 +2264,26 @@ class ECHO_collection(Folder, Persistent
if RESPONSE is not None:
RESPONSE.redirect('manage_main')
- def copyTitleToInfoXMLFolder(self):
+ def copyTitleToInfoXMLFolder(self,RESPONSE=None):
"""copy title into the title field of info.xml
author and date werden leer!!!
"""
+
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1)
-
+
+
for resource in resources:
-
- resource[1].copyTitleToInfoXML()
-
+ ret,txt=resource[1].copyTitleToInfoXML()
+ if (not ret) and RESPONSE:
+ RESPONSE.write("error: %s\n"%txt)
+ if ret and RESPONSE:
+ RESPONSE.write("ok: %s\n"%txt)
+
+ #zLOG.LOG("ECHO (copyTitleToInfoXMLFolder)",zLOG.INFO,txt)
if RESPONSE is not None:
+ RESPONSE.write("done!\n")
+ RESPONSE.close()
RESPONSE.redirect('manage_main')
def copySearchFields(self,RESPONSE=None):
@@ -3083,6 +3142,23 @@ class ECHO_root(Folder,Persistent,Implic
#return "http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"
###END CDLI add
+
+ def checkResource(self,id):
+ """checks if a resource is in the tree, gives back none or list of resources"""
+ if hasattr(self,"_v_checkResource") and self._v_checkResource.has_key(id): #existiert ein cache und id ist bereits drin?
+ return self._v_checkResource[id]
+
+ else:
+ resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],obj_ids=[id],search_sub=1)
+
+ if not hasattr(self,"_v_checkResource"): self._v_checkResource={}#lege cache an falls nicht existent
+ if resources:
+ self._v_checkResource[id]=resources[0:] # slicing to be sure that data is stabil
+ else:
+ self._v_checkResource[id]=None
+
+ return self._v_checkResource[id]
+
def sendForm(self,fromaddr,content,server='mail.mpiwg-berlin.mpg.de'):
"""sendform"""
toaddrs=["dwinter@mpiwg-berlin.mpg.de"]
@@ -3581,9 +3657,9 @@ class ECHO_root(Folder,Persistent,Implic
if self.checkRef(ref):
if pn:
- link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref+"&p="+pn)
+ link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref+"&p="+pn)
else:
- link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)
+ link.setAttribute("href",self.aq_parent.absolute_url()+"/references?id="+ref)
newxml=dom.toxml('utf-8')
@@ -4224,3 +4300,4 @@ def manage_addECHO_institution(self, id,
except: url=REQUEST['URL1']
REQUEST.RESPONSE.redirect('%s/manage_main' % url)
return id
+