--- ECHO_content/ECHO_Nav.py 2006/05/15 16:04:52 1.75 +++ ECHO_content/ECHO_Nav.py 2007/02/22 10:29:00 1.80 @@ -31,12 +31,18 @@ import os.path import urllib from ECHO_helpers import displayTypes,checkOnlyOneInGroup from ECHO_collection import content_html -import zLOG +import logging + +#def ersetzt logging +def logger(txt,method,txt2): + """logging""" + logging.info(txt+ txt2) + try: from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder except: - zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported') + logger('ECHO_Nav',logging.INFO,'ZSQLSimpleSearch not supported') @@ -273,22 +279,22 @@ class ECHO_sqlElement(SimpleItem): try: searchQuery=ZSQLExtendFolder.ZSQLSimpleSearch except: - zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported') + logger('ECHO_Nav',logging.INFO,'ZSQLSimpleSearch not supported') def getNavList(self): """ausgabe der treffer list fuer navigation""" #naechste schritte sind trial and error, warum geht mal das eine mal das andere 2.3 / 2.4 ?? - + try: - try: - records=self.ZSQLSimpleSearch(query=self.query) - except: - records=self.searchQuery(self.aq_parent,query=self.query) #python 2.4 version (??) + try: + records=self.ZSQLSimpleSearch(query=self.query) + except: + records=self.searchQuery(self.aq_parent,query=self.query) #python 2.4 version (??) except: - records=self.searchQuery()#python 2.3 version(??) + records=self.searchQuery(query=self.query)#python 2.3 version(??) - + if not records: return [] else: @@ -297,6 +303,7 @@ class ECHO_sqlElement(SimpleItem): try: ret.append((getattr(record,self.field),self.baseUrl+urllib.quote(str(getattr(record,self.getSearchField()))))) except: + logger('ECHO_Nav',logging.INFO,"error, search") """notrhing""" return ret @@ -627,8 +634,9 @@ class ECHO_navigation(Folder): # if not generate new hash obj=objtemp - + for keys in obj.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes): + x=keys[1] if depth>1: nav[x.getId()]=(self.getColls(x,int(depth)-1,checkOnly),x) @@ -688,11 +696,11 @@ class ECHO_navigation(Folder): #print "TEMP",temp,self.tempSorted(temp, field=sortField) for x in self.tempSorted(temp, field=sortField): - + if not temp[x][1].title == "": if (temp[x][1].meta_type=="ECHO_sqlElement") or (temp[x][1].meta_type=="ECHO_ZCatalogElement"): - + for z in temp[x][1].getNavList(): listNav.append((z[0],z[1],None,'','')) @@ -706,7 +714,7 @@ class ECHO_navigation(Folder): try: label=temp[x][1].getTitle() except: - zLOG.LOG("ECHO_Nav",zLOG.ERROR,"%s has neither getLabel nor getTile implemented"%temp[x][1].getId()) + logger("ECHO_Nav",logging.ERROR,"%s has neither getLabel nor getTile implemented"%temp[x][1].getId()) label="" else: label=temp[x][1].getTitle() @@ -878,11 +886,27 @@ class ECHO_navigation(Folder): nr=0 return nr+1 + def subNavStatic(self,obj): + """subnav" von self""" + def sortWeight(x,y): + x1=int(getattr(x[1],'weight','0')) + y1=int(getattr(y[1],'weight','0')) + return cmp(x1,y1) + print "obj",obj + subs=self.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes) + subret=[] + + for x in subs: + if not(x[1].title==""): + subret.append(x) + subret.sort(sortWeight) + return subret + def secondNavElements(self): """Zweite Ordnung Navigationselemente""" hash=self.createNavHash(2,checkOnly="no") - + actual_url=self.REQUEST['URL'] ult_temp=re.sub(self.absolute_url(),"",actual_url) @@ -979,10 +1003,11 @@ def createPath(self,url1,url2): if self.REQUEST.has_key('VirtualRootPhysicalPath'): vp="/".join(self.REQUEST['VirtualRootPhysicalPath']) - if (len(vp)>0) and vp[0]=="/": - vp=vp[1:] + if (len(vp)>0): + if vp[0]=="/": + vp=vp[1:] - url2=url2.replace(vp+"/",'') + url2=url2.replace(vp+"/",'') else: temp1=url1.split("/") temp2=url2.split("/")