--- ECHO_content/ECHO_Nav.py 2005/11/24 18:31:31 1.65 +++ ECHO_content/ECHO_Nav.py 2006/01/16 16:25:18 1.70 @@ -429,7 +429,33 @@ def manage_addECHO_pageTemplate(self, id class ECHO_navigation(Folder): """Navigations Element""" meta_type="ECHO_Navigation" - + management_page_charset="utf-8" + def searchExternalCollection(self,url,simpleSearch): + """search external collection via xmlrpc""" + server=xmlrpclib.Server(url) + + results=server.getSubcolsXMLRpc(simpleSearch) + + return results + + def getXMLRpcConnection(self,url): + """getxmlrpc""" + if not hasattr(self,"_v_server"): + self._v_server=[] + + server=xmlrpclib.Server(url) + self._v_server.append(server) + + return len(self._v_server)-1 + + def getXMLRpcMethod(self,nr,method,compressed=None): + """getmethod""" + + ret= eval('self._v_server[%i].%s'%(nr,method)) + if compressed: + ret=decodeRPC(ret) + return ret + def getNavInfo(self): """root informationen""" if hasattr(self,'logo_image'): @@ -455,14 +481,13 @@ class ECHO_navigation(Folder): """decoder""" if not str: return "" - if type(str)==StringType: + if type(str) is StringType: - return str + return str.decode('utf-8') else: - try: - return str.encode('utf-8') - except: - return str.encode('latin-1') + + return str + def ECHOFormatListStr(self,list,search="\n",replace="
"): """formatiert liste im str""" if list: @@ -608,7 +633,7 @@ class ECHO_navigation(Folder): def barFromHash(self,hash,start=None,sortField=None,location=None): """Erzeuge Navigations Element""" - #print "hash",hash + listNav=[] if not start: temp=hash @@ -658,19 +683,15 @@ class ECHO_navigation(Folder): if hasattr(temp[x][1],'label'): if not temp[x][1].label=='': - try: 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: + return "ERROR" 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: @@ -712,9 +733,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 @@ -840,6 +863,7 @@ class ECHO_navigation(Folder): """Zweite Ordnung Navigationselemente""" hash=self.createNavHash(2,checkOnly="no") + actual_url=self.REQUEST['URL'] ult_temp=re.sub(self.absolute_url(),"",actual_url) @@ -854,7 +878,7 @@ class ECHO_navigation(Folder): start=[splitted[startNr]] #print start - + keys=self.barFromHash(hash,start=start) @@ -934,13 +958,21 @@ def manage_addECHO_navigation(self,id,ti def createPath(self,url1,url2): #bugfix in absolute_url, ploetzlich erschein in absolute_url der physikalische pfad. - vp="/".join(self.REQUEST['VirtualRootPhysicalPath']) - if vp[0]=="/": - vp=vp[1:] - - url2=url2.replace(vp+"/",'') - + if self.REQUEST.has_key('VirtualRootPhysicalPath'): + vp="/".join(self.REQUEST['VirtualRootPhysicalPath']) + if vp[0]=="/": + vp=vp[1:] + + url2=url2.replace(vp+"/",'') + else: + temp1=url1.split("/") + temp2=url2.split("/") + for test in temp1: + if temp2[0]==test: + del temp2[0] + url2= string.join(temp2,"/") + return url1+"/"+url2 def sortWeight(x,y):