--- ECHO_content/ECHO_Nav.py 2005/12/05 17:18:43 1.68 +++ ECHO_content/ECHO_Nav.py 2006/03/02 19:59:03 1.74 @@ -96,7 +96,14 @@ class ECHO_ZCatalogElement(SimpleItem): if RESPONSE is not None: RESPONSE.redirect('manage_main') def getKeywordList(self): - return getattr(self,self.catalogId).uniqueValuesFor(self.field) + try: + return getattr(self,self.catalogId).uniqueValuesFor(self.field) + except: + #return getattr(self,self.catalogId).query(self.field) + + list= [x for x in getattr(getattr(self,self.catalogId),self.field).words()] + list.sort() + return list def getNavList(self): """ausgabe der treffer list fuer navigation""" @@ -429,7 +436,16 @@ def manage_addECHO_pageTemplate(self, id class ECHO_navigation(Folder): """Navigations Element""" meta_type="ECHO_Navigation" - + management_page_charset="utf-8" + + def getUsername(self): + """get name of user""" + username=str(self.REQUEST['AUTHENTICATED_USER']) + if username=='Anonymous User': + return None + else: + return username + def searchExternalCollection(self,url,simpleSearch): """search external collection via xmlrpc""" server=xmlrpclib.Server(url) @@ -481,14 +497,15 @@ class ECHO_navigation(Folder): """decoder""" if not str: return "" - if type(str)==StringType: + if type(str) is StringType: + try: + return str.decode('utf-8') + except: + return str.decode('latin-1') + else: return str - else: - try: - return str.encode('utf-8') - except: - return str.encode('latin-1') + def ECHOFormatListStr(self,list,search="\n",replace="
"): """formatiert liste im str""" if list: @@ -683,20 +700,17 @@ class ECHO_navigation(Folder): # add label falls existiert und nicht leer if hasattr(temp[x][1],'label'): - if not temp[x][1].label=='': - try: + if not temp[x][1].getLabel()=='': label=temp[x][1].getLabel() - except: - label=temp[x][1].label.encode('utf-8') else: - label=temp[x][1].title.encode('utf-8') + try: + label=temp[x][1].getTitle() + except: + zLOG.LOG("ECHO_Nav",zLOG.ERROR,"%s has neither getLabel nor getTile implemented"%temp[x][1].getId()) + label="" else: - label=temp[x][1].title.encode('utf-8') - - try: - label=label.encode('utf-8') - except: - label=label.decode('latin-1') + label=temp[x][1].getTitle() + if location: @@ -738,9 +752,11 @@ class ECHO_navigation(Folder): """test is path is already selected""" testStr=re.sub("/index_html",'',self.REQUEST.get('URL','')) - + + if len(item)<2: + return 0 #falls exakte Übereinstimmung dann immer 1 - if (testStr==item[1]) and (self.REQUEST.get('QUERY_STRING','')==''): + if (testStr==item[1]) and (self.REQUEST.get('QUERY_STRING','')==''): return 1 @@ -844,7 +860,7 @@ class ECHO_navigation(Folder): #except: # keys="" - + return keys def numberOfMainNavElements(self):