--- ECHO_content/ECHO_collection.py 2005/06/22 20:09:38 1.227 +++ ECHO_content/ECHO_collection.py 2005/07/20 11:30:28 1.228 @@ -87,7 +87,55 @@ def setECHO_collectionInformation(self,t self.credits=toList(credits) self.weight=weight - +class ECHO_locale(ZopePageTemplate): + """localisierung""" + + meta_type="ECHO_locale" + + def __init__(self,id,lang,title,label,text=None,content_type=None): + self.lang=lang + self.title=title + self.label=label + if text: + self.pt_edit(text, content_type) + self.id=id + + manage_options = ZopePageTemplate.manage_options+( + {'label':'Main Config','action':'change_ECHO_localeForm'}, + ) + + def change_ECHO_localeForm(self): + """change form""" + pt=zptFile(self, 'zpt/ChangeECHO_localeForm.zpt') + return pt() + + def change_ECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None): + """change echo locale""" + self.lang=lang + self.title=title + self.label=label + if not text is None: + self.pt_edit(text, content_type) + + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + + +def manage_addECHO_localeForm(self): + """Form for adding""" + pt=zptFile(self, 'zpt/AddECHO_localeForm.zpt') + return pt() + +def manage_addECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None): + """add echo locale""" + + id="locale_"+lang + + self._setObject(id, ECHO_locale(id,lang,title,label,text,content_type)) + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + + class ECHO_copyright(Folder,ECHO_basis): """Copyright informationen""" meta_type="ECHO_copyright" @@ -1455,6 +1503,55 @@ class ECHO_collection(Folder, Persistent path="/mpiwg/online/permanent/shipbuilding" + def localizeObjects(self): + """localize all objects""" + contents=self.ZopeFind(self,obj_metatypes=['ECHO_link','ECHO_mapText']) + + for content in contents: + if content[1].meta_type=='ECHO_link': + find=content[1].ZopeFind(content[1],obj_metatypes=('ECHO_mapText')) + root=find[0][1] + + locale=find[0][1].ZopeFind(find[0][1],obj_ids=('locale_en')) + else: + root=content[1] + locale=content[1].ZopeFind(content[1],obj_ids=('locale_en')) + if not locale: + root.manage_addECHO_locale("en",'','') + + pt=zptFile(self, 'zpt/localizeObjects.zpt') + return pt() + + + def localize(self,REQUEST,RESPONSE): + """localize""" + for key in REQUEST.form.keys(): + splitted=key.split("!") + + if splitted[0]=="" or splitted[0]=="en" or splitted[0]=="title" or splitted[0]=="label": + if splitted[0]=="en": + setattr(self.locale_en,splitted[1],REQUEST.form[key]) + else: + setattr(self,splitted[0],REQUEST.form[key]) + else: + obj=getattr(self,splitted[0]) + + if obj.meta_type=="ECHO_mapText": + if splitted[1]=="en": + obj.locale_en.pt_edit(REQUEST.form[key],None) + else: + obj.pt_edit(REQUEST.form[key],None) + else: + text=obj.ZopeFind(obj,obj_metatypes=['ECHO_mapText']) + if splitted[1]=="en": + + text[0][1].locale_en.pt_edit(REQUEST.form[key],None) + else: + text[0][1].pt_edit(REQUEST.form[key],None) + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + + def getRDF(self,urn=None): """rdf of the collection""" @@ -1815,7 +1912,7 @@ class ECHO_collection(Folder, Persistent def addMovie(self,id,title,label,description,contentType,responsible,link,thumbUrl,rawFile,lowresFile,metalink,weight,credits=None,coords=None,RESPONSE=None): """SSS""" - print "we are here" + #manage_addECHO_movie(self,id,title,label,description,responsible,link,thumbUrl,rawFile,metalink,weight,credits=None,coords=None,RESPONSE=None) if not hasattr(self,id): try: @@ -1949,6 +2046,7 @@ class ECHO_collection(Folder, Persistent {'label':'Main Config','action':'ECHO_collection_config'}, {'label':'Change Labels','action':'changeLabels'}, {'label':'Change Titles','action':'changeTitles'}, + {'label':'Localize','action':'localizeObjects'}, {'label':'Change Weights','action':'changeWeights'}, {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMDWarning'}, {'label':'Graphic Coords','action':'ECHO_graphicEntry'}, @@ -2421,7 +2519,27 @@ class ECHO_root(Folder,Persistent,Implic def item2(self,txt): return txt[2] - + + def setLanguage(self,lang): + """Set language cookie""" + self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="") + + def switchLanguage(self): + """Set language cookie""" + if self.getLanguage()=="en": + lang="de" + else: + lang="en" + + self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="") + self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']) + def getLanguage(self): + """get language cookie""" + lang= self.REQUEST.cookies.get('lang_exhibition','de') + if lang == '': + lang="de" + return lang + def getContentOverviewTemplate(self): """produces overview template with macro""" pt = zptObjectOrFile(self, 'content_overview_template')