--- ECHO_content/ECHO_collection.py 2004/05/10 08:44:19 1.73
+++ ECHO_content/ECHO_collection.py 2004/05/13 19:11:06 1.84
@@ -21,12 +21,15 @@ from OFS.SimpleItem import SimpleItem
from AccessControl import ClassSecurityInfo
from Globals import InitializeClass
from Globals import DTMLFile
+import Globals
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.PageTemplates.PageTemplate import PageTemplate
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
from Globals import Persistent, package_home
from Acquisition import Implicit
from ECHO_helpers import displayTypes
+
+
try:
from psycopg import libpq
except:
@@ -112,7 +115,7 @@ def sendFile(self, filename, type):
break
if object:
# if the object exists then send it
- object()
+ return object.index_html(self.REQUEST.REQUEST, self.REQUEST.RESPONSE)
else:
# send a local file with the given content-type
fn = os.path.join(package_home(globals()), filename)
@@ -170,7 +173,7 @@ def writeMetadata(url,metadict):
metanode.appendChild(metanodeneu)
- return dom.toxml().encode('utf-8')
+ return dom.topxml().encode('utf-8')
def readMetadata(url):
"""Methode zum Auslesen der Metadateninformation zu einer Resource
@@ -385,7 +388,22 @@ class ECHO_resource(Folder):
return self.viewClassification
else:
return ""
-
+
+ def getFullTextXML(self,noredirect=None):
+ """getFullTextXML"""
+ try:
+ fh=urllib.urlopen(self.metalink)
+ dom=xml.dom.minidom.parse(fh)
+ texttools=dom.getElementsByTagName('texttool')
+ text=texttools[0].getElementsByTagName('text')
+ texturl=getText(text[0].childNodes)
+ if not noredirect:
+ self.REQUEST.RESPONSE.redirect(texturl)
+ else:
+ return texturl
+ except:
+ return None
+
def getCredits(self):
"""Ausgabe der credits"""
if self.credits:
@@ -515,7 +533,10 @@ class ECHO_resource(Folder):
def changeECHO_resource_coords(self,coords,viewClassification,RESPONSE=None):
"""Änderung der Properties - coords"""
- try:
+ if type(coords)==StringType:
+ coords=[coords]
+
+ try:
coordsnew=[ string.split(x,",") for x in coords]
except:
coordsnew=[]
@@ -539,7 +560,7 @@ class ECHO_resource(Folder):
def changeECHO_resource_metadata(self,RESPONSE=None):
"""change metadata"""
tags=self.findTagsFromMapping(self.contentType)
- OSAS_meta={}
+ self.OSAS_meta={}
for field in tags[1]:
try:
self.metaDataHash[self.getFieldTag(tags,field)]=self.REQUEST.form[self.getFieldTag(tags,field)]
@@ -547,13 +568,14 @@ class ECHO_resource(Folder):
except:
"""nothing"""
- return urllib.urlopen('http://localhost:8080/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.absolute_url()+'/newMetaXML',self.metalink)).read()
+ return urllib.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML')).read()
if RESPONSE is not None:
RESPONSE.redirect('manage_main')
def newMetaXML(self):
+ """new index.meta"""
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
return writeMetadata(self.metalink,self.OSAS_meta)
@@ -867,8 +889,11 @@ class ECHO_link(ECHO_externalLink):
def content_html(self):
- """template fuer content"""
- return content_html(self,'link')
+ """template fuer link"""
+ if hasattr(self,"link_template"):
+ return content_html(self,'link')
+ else:
+ return content_html(self,'collection')
def manage_addECHO_linkForm(self):
"""Form for external Links"""
@@ -889,6 +914,7 @@ def manage_addECHO_link(self,id,title,la
class ECHO_collection(Folder, Persistent, Implicit):
"""ECHO Collection"""
+
security=ClassSecurityInfo()
meta_type='ECHO_collection'
viewClassificationList=viewClassificationListMaster
@@ -908,10 +934,13 @@ class ECHO_collection(Folder, Persistent
"""title"""
return self.label.encode('utf-8')
+
+
def createRessourcesFromXMLForm(self):
"""form"""
pt=PageTemplateFile('Products/ECHO_content/zpt/createRessourcesFromXMLForm.zpt').__of__(self)
return pt()
+
def createRessourcesFromXML(self,fileupload):
"""read an XML file for generating resources"""
dom=xml.dom.minidom.parse(fileupload)
@@ -989,14 +1018,52 @@ class ECHO_collection(Folder, Persistent
return ret
def createJSAreas(self):
- """CreateJava"""
+ """new version of createJavaScript"""
dynamical="\n"
for ob in self.getGraphicCoords():
- if ob[5] == "area":
+ if ob[5] == "area":
dynamical+="""addArea('%s', 'overview', %s, 'area');\n"""%(ob[1],ob[0])
else:
dynamical+="""addArea('%s', 'overview', %s, 'arrow');\n"""%(ob[1],ob[0])
return dynamical
+
+ def createMapHead(self):
+ """generate divs"""
+ pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/ECHO_content_map_frag_js')).__of__(self)
+ return pt()
+
+ def createMapLink(self, ob, text=None):
+ """generate map link"""
+ id = ob[1]
+ link = ob[1]
+ if text == None:
+ text = ob[2]
+ tag = '" + text + ""
+ return tag
+
+ def createMapAux(self, ob, arrowsrc="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?dw=15&fn=icons/pfeil"):
+ """generate map link image, text and other stuff"""
+ id = ob[1]
+ link = ob[1]
+ vtype = ob[5]
+ ctype = ob[3].contentType
+
+ tag = ''%(id,id,id,link)
+ if vtype == "view point":
+ rot = ob[4][4]
+ tag += ''%(id,arrowsrc,rot)
+ else:
+ tag += ''
+ tag += ''
+ return tag
+
security.declarePublic('getCreditObject')
def getCreditObject(self,name):
@@ -1180,6 +1247,7 @@ class ECHO_collection(Folder, Persistent
pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_content_overview.zpt').__of__(self)
return pt()
+ security.declareProtected('View','index_html')
def index_html(self):
"""standard page"""
@@ -1211,20 +1279,16 @@ class ECHO_collection(Folder, Persistent
def area_img(self):
"""area image"""
- sendFile(self, 'images/red.gif', 'image/gif')
- return
+ return sendFile(self, 'images/red.gif', 'image/gif')
def hl_lib_js(self):
"""javascript"""
- sendFile(self, 'js/hl_lib.js', 'text/plain')
- return
+ return sendFile(self, 'js/hl_lib.js', 'text/plain')
def js_lib_js(self):
"""javascript"""
- sendFile(self, 'js/js_lib.js', 'text/plain')
- return
+ return sendFile(self, 'js/js_lib.js', 'text/plain')
-
def getGraphicCoords(self):
"""Give list of coordinates"""
subColTypes=['ECHO_collection','ECHO_resource']
@@ -1257,9 +1321,8 @@ class ECHO_collection(Folder, Persistent
getSubCols = ECHO_helpers.getSubCols
-
-
-
+
+Globals.InitializeClass(ECHO_collection)
def manage_addECHO_collectionForm(self):
"""Add collection form"""
@@ -1280,6 +1343,7 @@ def manage_addECHO_collection(self,id,ti
class ECHO_group(ECHO_collection):
"""ECHO Gruppe"""
+ security=ClassSecurityInfo()
meta_type="ECHO_group"
manage_options = Folder.manage_options+(
@@ -1287,7 +1351,8 @@ class ECHO_group(ECHO_collection):
{'label':'Rerender Links','action':'ECHO_rerenderLinksMD'},
{'label':'Graphics','action':'ECHO_graphicEntry'},
)
-
+
+ security.declareProtected('View','index_html')
def index_html(self):
"""standard page"""
displayedObjects=self.ZopeFind(self,obj_metatypes=displayTypes)
@@ -1381,7 +1446,7 @@ def manage_addECHO_group(self,id,title,l
if RESPONSE is not None:
RESPONSE.redirect('manage_main')
-
+Globals.InitializeClass(ECHO_group)
class ECHO_root(Folder,Persistent,Implicit):
"""ECHO Root Folder"""
@@ -1663,7 +1728,79 @@ class ECHO_root(Folder,Persistent,Implic
ret.append((collection[0].getId(),collection[1].getId(),collection[2]))
return ret
-
+ def getResourcesHTML(self,viewerType=None,filter=None):
+ """gebe all ressourcen aus"""
+
+ def sortHTML(x,y):
+ return cmp(x[1].title,y[1].title)
+
+ ret="""