--- ECHO_content/ECHO_helpers.py 2005/09/12 21:51:00 1.59
+++ ECHO_content/ECHO_helpers.py 2005/11/25 18:46:40 1.65
@@ -28,7 +28,7 @@ def content_html(self,type):
obj=getattr(self,type+"_template")
return obj()
else:
- pt=PageTemplateFile(os.path.join(package_home(globals()),'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()
@@ -40,132 +40,132 @@ class ECHO_basis:
security.declarePublic('getImageTag')
def manage_addECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None):
- return ECHO_collection.manage_addECHO_locale(self,lang,title,label)
-
+ return ECHO_collection.manage_addECHO_locale(self,lang,title,label)
+
def getImageTag(self):
- """sollte uerberschrieben werden, falls von der Klasse eine imagetag zurueckkommt"""
-
- return ""
+ """sollte uerberschrieben werden, falls von der Klasse eine imagetag zurueckkommt"""
+
+ return ""
def showRDF(self):
- """showrdf"""
+ """showrdf"""
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
- ret="""\n\n"""
+ ret="""\n\n"""
- ret+=self.getRDF(urn="echo:collectionroot")+"\n"
+ ret+=self.getRDF(urn="echo:collectionroot")+"\n"
- ret+=""""""
- return ret
+ ret+=""""""
+ return ret
def RDF(self):
- """showrdf"""
+ """showrdf"""
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
- ret="""\n\n"""
+ ret="""\n\n"""
- ret+=self.getRDF(urn=self.absolute_url())+"\n"
+ ret+=self.getRDF(urn=self.absolute_url())+"\n"
- ret+=""""""
- return ret
+ ret+=""""""
+ return ret
def createSubElementRDF(self,urn=None):
- """rdf list"""
- if not urn:
- urn=self.absolute_url()
- ret=""
-
- rettemp="""\n"""%urn
- flag=0
-
- li="""\n"""
- if not ('' in self.getFullTextXML(noredirect='Yes')):
- nurn=self.absolute_url()+'/getFullTextXML'
- rettemp+=li%nurn
- flag=1
- if not ('' in self.getImageView(noredirect='Yes')):
- nurn=self.absolute_url()+'/getImageView'
- rettemp+=li%nurn
- flag=1
-
-
- if not ('' in self.showMetaDataXML()):
- nurn=self.absolute_url()+'/showMetaDataXML'
- rettemp+=li%nurn
- flag=1
-
- rettemp+=""
-
- if flag==1:
- ret+=rettemp
-
- if not ('' in self.getFullTextXML(noredirect='Yes')):
- nurn=self.absolute_url()+'/getFullTextXML'
- ret+=getRDFDescription(self,self.absolute_url()+'/getFullTextXML',urn=nurn,nameDef="Fulltext",typeName="ECHO_fulltext")
+ """rdf list"""
+ if not urn:
+ urn=self.absolute_url()
+ ret=""
+
+ rettemp="""\n"""%urn
+ flag=0
+
+ li="""\n"""
+ if not ('' in self.getFullTextXML(noredirect='Yes')):
+ nurn=self.absolute_url()+'/getFullTextXML'
+ rettemp+=li%nurn
+ flag=1
+ if not ('' in self.getImageView(noredirect='Yes')):
+ nurn=self.absolute_url()+'/getImageView'
+ rettemp+=li%nurn
+ flag=1
+
+
+ if not ('' in self.showMetaDataXML()):
+ nurn=self.absolute_url()+'/showMetaDataXML'
+ rettemp+=li%nurn
+ flag=1
+
+ rettemp+=""
+
+ if flag==1:
+ ret+=rettemp
+
+ if not ('' in self.getFullTextXML(noredirect='Yes')):
+ nurn=self.absolute_url()+'/getFullTextXML'
+ ret+=getRDFDescription(self,self.absolute_url()+'/getFullTextXML',urn=nurn,nameDef="Fulltext",typeName="ECHO_fulltext")
- if not ('' in self.getImageView(noredirect='Yes')):
+ if not ('' in self.getImageView(noredirect='Yes')):
nurn=self.absolute_url()+'/getImageView'
- ret+=getRDFDescription(self,self.absolute_url()+'/getImageView',urn=nurn,nameDef="Image View",typeName="ECHO_imageview")
-
- if not ('' in self.showMetaDataXML()):
+ ret+=getRDFDescription(self,self.absolute_url()+'/getImageView',urn=nurn,nameDef="Image View",typeName="ECHO_imageview")
+
+ if not ('' in self.showMetaDataXML()):
nurn=self.absolute_url()+'/showMetaDataXML'
- ret+=getRDFDescription(self,self.absolute_url()+'/showMetaDataXML',urn=nurn,nameDef="Metadata",typeName="ECHO_metaData")
+ ret+=getRDFDescription(self,self.absolute_url()+'/showMetaDataXML',urn=nurn,nameDef="Metadata",typeName="ECHO_metaData")
- return ret
-
+ return ret
+
def content_html(self,type="collection"):
- """template fuer content bei einbau und ECHO_Umgebung"""
-
- return content_html(self,type)
+ """template fuer content bei einbau und ECHO_Umgebung"""
+
+ return content_html(self,type)
def getTitle(self):
- """title"""
- lang=self.getLanguage()
- locale=None
- if lang and not (lang =="de"):
- locale=self.ZopeFind(self,obj_ids=["locale_"+lang])
-
- if locale:
- return self.decode(locale[0][1].title)
- else:
- return self.decode(self.title)
-
-
- try:
- return self.title.encode('utf-8','ignore')
- except:
- self.title=self.title.decode('iso-8859-1','ignore')[0:] #correnct conding error
- return self.title.encode('utf-8','ignore')
-
+ """title"""
+ lang=self.getLanguage()
+ locale=None
+ if lang and not (lang =="de"):
+ locale=self.ZopeFind(self,obj_ids=["locale_"+lang])
+
+ if locale:
+ return self.decode(locale[0][1].title)
+ else:
+ return self.decode(self.title)
+
+
+ try:
+ return self.title.encode('utf-8','ignore')
+ except:
+ self.title=self.title.decode('iso-8859-1','ignore')[0:] #correnct conding error
+ return self.title.encode('utf-8','ignore')
+
def getLabel(self):
- """title"""
- lang=self.getLanguage()
- locale=None
- if lang and not (lang=="de"):
- locale=self.ZopeFind(self,obj_ids=["locale_"+lang])
-
- if locale:
- return self.decode(locale[0][1].label)
-
-
- if not hasattr(self,'label'):
- self.label=""
-
- if self.label=="":
- ret=self.getTitle()
- if ret=="":
- ret=self.getId()
- return ret
-
- return self.decode(self.label)
- try:
- return self.label.encode('utf-8','ignore')
- except:
- self.label=self.label.decode('iso-8859-1','ignore')[0:] #correnct conding error
- return self.label.encode('utf-8','ignore')
-
+ """title"""
+ lang=self.getLanguage()
+ locale=None
+ if lang and not (lang=="de"):
+ locale=self.ZopeFind(self,obj_ids=["locale_"+lang])
+
+ if locale:
+ return self.decode(locale[0][1].label)
+
+
+ if not hasattr(self,'label'):
+ self.label=""
+
+ if self.label=="":
+ ret=self.getTitle()
+ if ret=="":
+ ret=self.getId()
+ return ret
+
+ return self.decode(self.label)
+ try:
+ return self.label.encode('utf-8','ignore')
+ except:
+ self.label=self.label.decode('iso-8859-1','ignore')[0:] #correnct conding error
+ return self.label.encode('utf-8','ignore')
+
def changeECHOEntriesForm(self):
"""change Entries for the ECHO Navigation environment"""
@@ -178,7 +178,7 @@ class ECHO_basis:
self.label=label
self.weight=weight
self.description=description
- self.queryString=queryString
+ self.queryString=queryString
if RESPONSE:
RESPONSE.redirect("manage_main")
@@ -188,64 +188,64 @@ class ECHO_basis:
def hasOverview(self):
"""returns if there is an overview graphics"""
- return hasattr(self, 'overview')
+ return hasattr(self, 'overview')
def hasParentOverview(self):
"""returns if the parent has an overview graphics"""
- return hasattr(self.aq_parent, 'overview')
+ return hasattr(self.aq_parent, 'overview')
def getOverview(self):
"""map overview graphics"""
#return self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['overview'])[0][1]
- if self.hasOverview():
- return getattr(self, 'overview')
- return None
+ if self.hasOverview():
+ return getattr(self, 'overview')
+ return None
def getMapAreas(self):
"""returns the list of MapAreas"""
- forcetypes = self.REQUEST.get('map_force_types', None)
- if forcetypes:
- typelist = forcetypes.split(',')
- else:
- typelist = None
- areas = []
- # get all contained MapAreas
+ forcetypes = self.REQUEST.get('map_force_types', None)
+ if forcetypes:
+ typelist = forcetypes.split(',')
+ else:
+ typelist = None
+ areas = []
+ # get all contained MapAreas
for res in self.ZopeFind(self, obj_metatypes=('MapArea')):
- area = res[1]
- # check the allowed types
- if typelist is not None and area.getType() not in typelist:
- continue
- areas.append(area)
- return areas
+ area = res[1]
+ # check the allowed types
+ if typelist is not None and area.getType() not in typelist:
+ continue
+ areas.append(area)
+ return areas
def addMapArea(self, newarea):
- """add a map area to this object"""
- if (newarea.id is None):
- # create new id
- ids = [a.id for a in self.getMapAreas()]
- i = len(ids)
- while ("a%02d"%i in ids):
- # if it exists, try the next one
- i += 1
- newarea.id = "a%02d"%i
- self._setObject(newarea.id, newarea)
+ """add a map area to this object"""
+ if (newarea.id is None):
+ # create new id
+ ids = [a.id for a in self.getMapAreas()]
+ i = len(ids)
+ while ("a%02d"%i in ids):
+ # if it exists, try the next one
+ i += 1
+ newarea.id = "a%02d"%i
+ self._setObject(newarea.id, newarea)
def getMapText(self):
"""returns the MapText"""
- # get (the first) contained MapText
- #lang="en"
- lang=self.getLanguage()
- res=None
- if lang and not (lang=="de"):
- resTmp = self.ZopeFind(self, obj_metatypes=('ECHO_mapText'))
- res = self.ZopeFind(resTmp[0][1])
-
- if not res:
- res = self.ZopeFind(self, obj_metatypes=('ECHO_mapText'))
- if len(res) > 0:
- text = res[0][1]
- return text
- return None
+ # get (the first) contained MapText
+ #lang="en"
+ lang=self.getLanguage()
+ res=None
+ if lang and not (lang=="de"):
+ resTmp = self.ZopeFind(self, obj_metatypes=('ECHO_mapText'))
+ res = self.ZopeFind(resTmp[0][1])
+
+ if not res:
+ res = self.ZopeFind(self, obj_metatypes=('ECHO_mapText'))
+ if len(res) > 0:
+ text = res[0][1]
+ return text
+ return None
def ECHO_graphicEntry(self):
"""change map coordinates"""
@@ -257,54 +257,54 @@ class ECHO_basis:
def ECHO_addCoords(self,RESPONSE=None):
"""change or add MapArea"""
- #return self.REQUEST
- # change existing areas
- for area in self.getMapAreas():
- id = area.getId()
- if self.REQUEST.has_key('del.'+id):
- # delete this area
- self._delObject(id)
- # return to same menu
- if RESPONSE is not None:
- RESPONSE.redirect('ECHO_graphicEntry')
- return
- # modify this area
- coordstring = self.REQUEST.get('coords.'+id, '')
- coords = string.split(coordstring, ',')
- angle = self.REQUEST.get('angle.'+id, '0')
- type = self.REQUEST.get('type.'+id, 'area')
- permanent = self.REQUEST.get('permanent.'+id, '')
- if len(coords) == 4:
- area.setCoordString(coordstring)
- area.setAngle(angle)
- area.setType(type)
- area.setPermanent(permanent)
- # add the "new" area
- if self.REQUEST.has_key('add'):
- coordstring = self.REQUEST.get('coords.new', '')
- coords = string.split(coordstring, ',')
- angle = self.REQUEST.get('angle.new', '0')
- type = self.REQUEST.get('type.new', 'area')
- permanent = self.REQUEST.get('permanent.new', '')
- if len(coords) == 4:
- coords.append(angle)
- area = MapArea(None, coords, type=type, permanent=permanent)
- self.addMapArea(area)
- # return to edit area menu
- if RESPONSE is not None:
- RESPONSE.redirect('ECHO_graphicEntry')
+ #return self.REQUEST
+ # change existing areas
+ for area in self.getMapAreas():
+ id = area.getId()
+ if self.REQUEST.has_key('del.'+id):
+ # delete this area
+ self._delObject(id)
+ # return to same menu
+ if RESPONSE is not None:
+ RESPONSE.redirect('ECHO_graphicEntry')
+ return
+ # modify this area
+ coordstring = self.REQUEST.get('coords.'+id, '')
+ coords = string.split(coordstring, ',')
+ angle = self.REQUEST.get('angle.'+id, '0')
+ type = self.REQUEST.get('type.'+id, 'area')
+ permanent = self.REQUEST.get('permanent.'+id, '')
+ if len(coords) == 4:
+ area.setCoordString(coordstring)
+ area.setAngle(angle)
+ area.setType(type)
+ area.setPermanent(permanent)
+ # add the "new" area
+ if self.REQUEST.has_key('add'):
+ coordstring = self.REQUEST.get('coords.new', '')
+ coords = string.split(coordstring, ',')
+ angle = self.REQUEST.get('angle.new', '0')
+ type = self.REQUEST.get('type.new', 'area')
+ permanent = self.REQUEST.get('permanent.new', '')
+ if len(coords) == 4:
+ coords.append(angle)
+ area = MapArea(None, coords, type=type, permanent=permanent)
+ self.addMapArea(area)
+ # return to edit area menu
+ if RESPONSE is not None:
+ RESPONSE.redirect('ECHO_graphicEntry')
def createJSAreas(self, areas):
"""create area calls for JavaScript"""
- forceperm = self.REQUEST.get('map_force_permanent', None)
+ forceperm = self.REQUEST.get('map_force_permanent', None)
js="\n"
for ob in areas:
- # check for force-permanent
- if forceperm is not None:
- perm = forceperm
- else:
- perm = ob.isPermanent()
- js+="""addArea('%s', 'overview', %s, '%s', '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType(),perm)
+ # check for force-permanent
+ if forceperm is not None:
+ perm = forceperm
+ else:
+ perm = ob.isPermanent()
+ js+="""addArea('%s', 'overview', %s, '%s', '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType(),perm)
return js
def createMapHead(self):
@@ -313,133 +313,145 @@ class ECHO_basis:
return pt()
def createMapImg(self):
- """generate img-tag for map"""
- bt = BrowserCheck(self)
- tag = ""
- src = self.getOverview().absolute_url()
- if bt.isN4:
- # N4 needs ilayer to create an id
- tag += ''%src
- else:
- # img with id
- tag += ''%src
- return tag
+ """generate img-tag for map"""
+ bt = BrowserCheck(self)
+ tag = ""
+ src = self.getOverview().absolute_url()
+ if bt.isN4:
+ # N4 needs ilayer to create an id
+ tag += ''%src
+ else:
+ # img with id
+ tag += ''%src
+ return tag
def createParentMapImg(self):
- """generate img-tag for map of parent"""
- return self.aq_parent.createMapImg()
+ """generate img-tag for map of parent"""
+ return self.aq_parent.createMapImg()
def createMapLink(self, ob, text=None, target="_blank"):
- """generate map link"""
- bt = BrowserCheck(self)
- id = ob.getFullId()
- link = ob.getLinkId()
- if text is None:
- text = ob.getLabel()
- if text is None:
- text = "link"
- tiptext = ob.getTip()
- tag = ""
- if bt.isN4:
- # N4 needs layer for highlighting
- tag += '" + text + ""
- else:
- # a-element
- tag = '" + text + ""
- return tag
+ """generate map link"""
+ bt = BrowserCheck(self)
+ id = ob.getFullId()
+ link = ob.getLinkId()
+ if text is None:
+ text = ob.getLabel()
+ if text is None:
+ text = "link"
+ tiptext = ob.getTip()
+ tag = ""
+ if bt.isN4:
+ # N4 needs layer for highlighting
+ tag += '" + text + ""
+ else:
+ # a-element
+ tag = '" + text + ""
+ return tag
def createMapAux(self, ob, arrowsrc="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?dw=15&fn=icons/pfeil", circlesrc="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?dw=15&fn=icons/kreis", target="_blank",backLink=None,alternativArrowsrc="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?dw=15&fn=icons/pfeil_blau"):
- """generate map link image, text and other stuff"""
- bt = BrowserCheck(self)
- id = ob.getFullId()
- link = ob.getLinkId()
- tiptext = ob.getTip()
- tag = ""
-
- if bt.isN4:
- #
- # N4 needs layer and img elements
- #
- tag += ''%(id,id,id)
- if ob.isTypeArrow():
- # N4 - Arrow
- rot = ob.angle
-
-
- if backLink and backLink==self.REQUEST['SERVER_URL']+getattr(self,link).link:
- marksrc=alternativArrowsrc
- else:
- marksrc = arrowsrc
- if float(rot) < 0:
- marksrc = circlesrc
- tag += ''%(link,marksrc,rot)
- elif ob.isTypeText():
- # N4 - Text
- tag += '