--- ECHO_content/ECHO_helpers.py 2005/06/09 15:08:01 1.52
+++ 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
@@ -229,19 +273,22 @@ class ECHO_basis:
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)
- # add new area
+ 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)
+ area = MapArea(None, coords, type=type, permanent=permanent)
self.addMapArea(area)
# return to edit area menu
if RESPONSE is not None:
@@ -249,10 +296,16 @@ class ECHO_basis:
def createJSAreas(self, areas):
"""create area calls for JavaScript"""
- dynamical="\n"
+ forceperm = self.REQUEST.get('map_force_permanent', None)
+ js="\n"
for ob in areas:
- dynamical+="""addArea('%s', 'overview', %s, '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType())
- return dynamical
+ # 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):
"""create javascript include and script tags for head"""
@@ -289,17 +342,17 @@ class ECHO_basis:
tag = ""
if bt.isN4:
# N4 needs layer for highlighting
- tag += '