--- ECHO_content/ECHO_helpers.py 2005/06/09 21:57:30 1.54
+++ ECHO_content/ECHO_helpers.py 2005/09/12 22:23:44 1.60
@@ -12,6 +12,8 @@ from Globals import package_home
import Globals
from AccessControl import ClassSecurityInfo
import os.path
+from OFS.Folder import Folder
+import ECHO_collection
displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ECHO_externalLink','ImageCollectionIFrame','VLP_resource','VLP_essay','ECHO_ZCatalogElement','ImageCollection','versionedFileFolder','ECHO_movie']
@@ -36,6 +38,10 @@ class ECHO_basis:
"""basis eigenschaften fuer echo objekte"""
security=ClassSecurityInfo()
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)
+
def getImageTag(self):
"""sollte uerberschrieben werden, falls von der Klasse eine imagetag zurueckkommt"""
@@ -116,7 +122,17 @@ class ECHO_basis:
def getTitle(self):
"""title"""
- return self.decode(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:
@@ -125,6 +141,15 @@ class ECHO_basis:
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=""
@@ -178,8 +203,19 @@ class ECHO_basis:
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
- areas = [res[1] for res in self.ZopeFind(self, obj_metatypes=('MapArea'))]
+ 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
def addMapArea(self, newarea):
@@ -197,7 +233,15 @@ class ECHO_basis:
def getMapText(self):
"""returns the MapText"""
# get (the first) contained MapText
- res = self.ZopeFind(self, obj_metatypes=('ECHO_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
@@ -235,7 +279,7 @@ class ECHO_basis:
area.setAngle(angle)
area.setType(type)
area.setPermanent(permanent)
- # add new area
+ # add the "new" area
if self.REQUEST.has_key('add'):
coordstring = self.REQUEST.get('coords.new', '')
coords = string.split(coordstring, ',')
@@ -252,9 +296,15 @@ class ECHO_basis:
def createJSAreas(self, areas):
"""create area calls for JavaScript"""
+ forceperm = self.REQUEST.get('map_force_permanent', None)
js="\n"
for ob in areas:
- js+="""addArea('%s', 'overview', %s, '%s', '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType(),ob.isPermanent())
+ # 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):
@@ -292,17 +342,17 @@ class ECHO_basis:
tag = ""
if bt.isN4:
# N4 needs layer for highlighting
- tag += '