Diff for /ECHO_content/ECHO_Nav.py between versions 1.66 and 1.77

version 1.66, 2005/11/25 18:46:40 version 1.77, 2006/10/11 16:55:26
Line 96  class ECHO_ZCatalogElement(SimpleItem): Line 96  class ECHO_ZCatalogElement(SimpleItem):
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
     def getKeywordList(self):      def getKeywordList(self):
           try:
         return getattr(self,self.catalogId).uniqueValuesFor(self.field)          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):      def getNavList(self):
         """ausgabe der treffer list fuer navigation"""          """ausgabe der treffer list fuer navigation"""
Line 279  class ECHO_sqlElement(SimpleItem): Line 286  class ECHO_sqlElement(SimpleItem):
         except:          except:
                 records=self.searchQuery(self.aq_parent,query=self.query) #python 2.4 version (??)                  records=self.searchQuery(self.aq_parent,query=self.query) #python 2.4 version (??)
         except:          except:
             records=self.searchQuery()#python 2.3 version(??)              records=self.searchQuery(query=self.query)#python 2.3 version(??)
               
                   
         if not records:          if not records:
Line 290  class ECHO_sqlElement(SimpleItem): Line 297  class ECHO_sqlElement(SimpleItem):
                 try:                  try:
                     ret.append((getattr(record,self.field),self.baseUrl+urllib.quote(str(getattr(record,self.getSearchField())))))                      ret.append((getattr(record,self.field),self.baseUrl+urllib.quote(str(getattr(record,self.getSearchField())))))
                 except:                  except:
                       zLOG.LOG('ECHO_Nav',zLOG.INFO,"error, search")
                     """notrhing"""                      """notrhing"""
                                           
             return ret              return ret
Line 429  def manage_addECHO_pageTemplate(self, id Line 437  def manage_addECHO_pageTemplate(self, id
 class ECHO_navigation(Folder):  class ECHO_navigation(Folder):
     """Navigations Element"""      """Navigations Element"""
     meta_type="ECHO_Navigation"      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)
           
           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):      def getNavInfo(self):
         """root informationen"""          """root informationen"""
Line 455  class ECHO_navigation(Folder): Line 498  class ECHO_navigation(Folder):
         """decoder"""          """decoder"""
         if not str:          if not str:
             return ""              return ""
         if type(str)==StringType:          if type(str) is StringType:
               
             return str  
         else:  
             try:              try:
                 return str.encode('utf-8')                  return str.decode('utf-8')
             except:              except:
                 return str.encode('latin-1')          return str.decode('latin-1')
           else:
               
               return str
   
     def ECHOFormatListStr(self,list,search="\n",replace="<br>"):      def ECHOFormatListStr(self,list,search="\n",replace="<br>"):
         """formatiert liste im str"""          """formatiert liste im str"""
         if list:          if list:
Line 608  class ECHO_navigation(Folder): Line 652  class ECHO_navigation(Folder):
   
     def barFromHash(self,hash,start=None,sortField=None,location=None):      def barFromHash(self,hash,start=None,sortField=None,location=None):
         """Erzeuge Navigations Element"""          """Erzeuge Navigations Element"""
         #print "hash",hash                  
         listNav=[]          listNav=[]
         if not start:          if not start:
             temp=hash              temp=hash
Line 657  class ECHO_navigation(Folder): Line 701  class ECHO_navigation(Folder):
                     # add label falls existiert und nicht leer                      # add label falls existiert und nicht leer
                     if hasattr(temp[x][1],'label'):                      if hasattr(temp[x][1],'label'):
                                                   
                         if not temp[x][1].label=='':                          if not temp[x][1].getLabel()=='':
                             try:  
                                 label=temp[x][1].getLabel()                                  label=temp[x][1].getLabel()
                             except:  
                                 label=temp[x][1].label.encode('utf-8')  
                         else:                          else:
                             label=temp[x][1].title.encode('utf-8')  
                     else:  
                         label=temp[x][1].title.encode('utf-8')                              
                       
                     try:                      try:
                         label=label.encode('utf-8')                                  label=temp[x][1].getTitle()
                     except:                      except:
                         label=label.decode('latin-1')                                  zLOG.LOG("ECHO_Nav",zLOG.ERROR,"%s has neither getLabel nor getTile implemented"%temp[x][1].getId())
                                   label=""
                       else:
                           label=temp[x][1].getTitle()
   
                                                   
                     if location:                      if location:
   
Line 713  class ECHO_navigation(Folder): Line 754  class ECHO_navigation(Folder):
   
         testStr=re.sub("/index_html",'',self.REQUEST.get('URL',''))          testStr=re.sub("/index_html",'',self.REQUEST.get('URL',''))
   
       if len(item)<2:
           return 0
         #falls exakte Übereinstimmung dann immer 1          #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','')==''):
                           
Line 840  class ECHO_navigation(Folder): Line 883  class ECHO_navigation(Folder):
         """Zweite Ordnung Navigationselemente"""          """Zweite Ordnung Navigationselemente"""
                   
         hash=self.createNavHash(2,checkOnly="no")          hash=self.createNavHash(2,checkOnly="no")
           
         actual_url=self.REQUEST['URL']          actual_url=self.REQUEST['URL']
                   
         ult_temp=re.sub(self.absolute_url(),"",actual_url)          ult_temp=re.sub(self.absolute_url(),"",actual_url)
Line 936  def createPath(self,url1,url2): Line 980  def createPath(self,url1,url2):
           
     if self.REQUEST.has_key('VirtualRootPhysicalPath'):      if self.REQUEST.has_key('VirtualRootPhysicalPath'):
         vp="/".join(self.REQUEST['VirtualRootPhysicalPath'])          vp="/".join(self.REQUEST['VirtualRootPhysicalPath'])
           if (len(vp)>0):
         if vp[0]=="/":          if vp[0]=="/":
             vp=vp[1:]              vp=vp[1:]
                   
         url2=url2.replace(vp+"/",'')          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      return url1+"/"+url2
   

Removed from v.1.66  
changed lines
  Added in v.1.77


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>