Diff for /ECHO_content/ECHO_Nav.py between versions 1.58 and 1.67

version 1.58, 2005/10/13 16:58:26 version 1.67, 2005/12/04 09:10:55
Line 1 Line 1
 # Objekte zur Erzeugung von Navigationselementen  # Objekte zur Erzeugung von Navigationselement
   
 from AccessControl import ClassSecurityInfo  from AccessControl import ClassSecurityInfo
 from Globals import DTMLFile  from Globals import DTMLFile
 from OFS.Image import Image,cookId  from OFS.Image import Image,cookId
Line 100  class ECHO_ZCatalogElement(SimpleItem): Line 99  class ECHO_ZCatalogElement(SimpleItem):
         return getattr(self,self.catalogId).uniqueValuesFor(self.field)          return getattr(self,self.catalogId).uniqueValuesFor(self.field)
           
     def getNavList(self):      def getNavList(self):
         """ausgabe der treffer list für navigation"""          """ausgabe der treffer list fuer navigation"""
                   
         records=self.getKeywordList()          records=self.getKeywordList()
                   
                   records=[x.encode('utf-8') for x in records]
           records.sort()
         if not records:          if not records:
             return []              return []
         else:          else:
             ret=[]              ret=[]
             for record in records:              for record in records:
                
                 #print "RC",record                  #print "RC",record
                 #if record:                  #if record:
                 #    ret.append((record,self.baseUrl+urllib.quote(record)))                  #    ret.append((record,self.baseUrl+urllib.quote(record)))
Line 126  def manage_addECHO_ZCatalogElementForm(s Line 127  def manage_addECHO_ZCatalogElementForm(s
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_ZCatalogElement.zpt')).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_ZCatalogElement.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_addECHO_ZCatalogElement(self,id,title,field,baseUrl,weight,contentType,RESPONSE=None):  def manage_addECHO_ZCatalogElement(self,id,title,field,catalogId,baseUrl,weight,contentType,RESPONSE=None):
     """Add an ECHO_ZCatalogelement"""      """Add an ECHO_ZCatalogelement"""
     self._setObject(id,ECHO_ZCatalogElement(id,title,field,baseUrl,weight,contentType))  
       self._setObject(id,ECHO_ZCatalogElement(id,title,field,catalogId,baseUrl,weight,contentType))
           
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
Line 267  class ECHO_sqlElement(SimpleItem): Line 269  class ECHO_sqlElement(SimpleItem):
         zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported')          zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported')
                           
     def getNavList(self):       def getNavList(self): 
         """ausgabe der treffer list für navigation"""          """ausgabe der treffer list fuer navigation"""
                   
         records=self.searchQuery()          #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 (??)
           except:
               records=self.searchQuery()#python 2.3 version(??)
               
                   
         if not records:          if not records:
Line 314  class ECHO_pageTemplate(ZopePageTemplate Line 324  class ECHO_pageTemplate(ZopePageTemplate
   
     security.declarePublic('content_html')      security.declarePublic('content_html')
   
       def addChanges(self):
           """do nothing leere methode, notwendig, da bei veerbung 
           von dieser klasse nur ueberschrieben werden kann, 
           falls methode per url aufgerufen werden soll"""
           
           return True
           
     def content_html(self):      def content_html(self):
         """content_html"""          """content_html"""
Line 414  class ECHO_navigation(Folder): Line 430  class ECHO_navigation(Folder):
     """Navigations Element"""      """Navigations Element"""
     meta_type="ECHO_Navigation"      meta_type="ECHO_Navigation"
   
       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'):
               if hasattr(self.logo_image,'tag'):
                   imageTag=self.logo_image.tag()
           else:
               imageTag=''
           return (self.title,imageTag)
   
     def linkBar(self,parent):      def linkBar(self,parent):
         """linkbarer balken"""          """linkbarer balken"""
         str=""          str=""
Line 636  class ECHO_navigation(Folder): Line 687  class ECHO_navigation(Folder):
                             try:                              try:
                                 label=temp[x][1].getLabel()                                  label=temp[x][1].getLabel()
                             except:                              except:
                                 label=temp[x][1].label                                  label=temp[x][1].label.encode('utf-8')
                         else:                          else:
                             label=temp[x][1].title.encode('utf-8')                              label=temp[x][1].title.encode('utf-8')
                     else:                      else:
                         label=temp[x][1].title.encode('utf-8')                                                      label=temp[x][1].title.encode('utf-8')                            
                                           
                       try:
                           label=label.encode('utf-8')
                       except:
                           label=label.decode('latin-1')
                           
                     if location:                      if location:
   
                         loc=getattr(temp[x][1],'location','top')                          loc=getattr(temp[x][1],'location','top')
                         if (loc==location):                          if (loc==location):
                             listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url())+getattr(temp[x][1],'queryString',''),temp[x][1],getattr(temp[x][1],'prefix',''),getattr(temp[x][1],'suffix','')))  
                               
                               listNav.append((label,createPath(self,self.absolute_url(),temp[x][1].absolute_url(relative=1))+getattr(temp[x][1],'queryString',''),temp[x][1],getattr(temp[x][1],'prefix',''),getattr(temp[x][1],'suffix','')))
                     else:                      else:
                         listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url())+getattr(temp[x][1],'queryString',''),temp[x][1],getattr(temp[x][1],'prefix',''),getattr(temp[x][1],'suffix','')))  
   
                           listNav.append((label,createPath(self,self.absolute_url(),temp[x][1].absolute_url(relative=1))+getattr(temp[x][1],'queryString',''),temp[x][1],getattr(temp[x][1],'prefix',''),getattr(temp[x][1],'suffix','')))
           #print self.REQUEST
         return listNav          return listNav
   
     def tempSorted(self,hash,field="weight"):      def tempSorted(self,hash,field="weight"):
Line 751  class ECHO_navigation(Folder): Line 810  class ECHO_navigation(Folder):
                           
             description=temp[x][1].title              description=temp[x][1].title
                     
             url=createPath(self.absolute_url(),temp[key][1].absolute_url())              
               url=createPath(self,self.absolute_url(),temp[key][1].absolute_url(relative=1))
   
             if (self.REQUEST['URL']==url) | (self.REQUEST['URL']==url+"/index_html"):              if (self.REQUEST['URL']==url) | (self.REQUEST['URL']==url+"/index_html"):
                 html=html+startTag+"[%s]" % description+endTag                  html=html+startTag+"[%s]" % description+endTag
Line 897  def manage_addECHO_navigation(self,id,ti Line 957  def manage_addECHO_navigation(self,id,ti
   
   
   
 def createPath(url1,url2):  def createPath(self,url1,url2):
     temp1=url1.split("/")      #bugfix in absolute_url, ploetzlich erschein in absolute_url der physikalische pfad.
     temp2=url2.split("/")      
     for test in temp1:      if self.REQUEST.has_key('VirtualRootPhysicalPath'):
         if temp2[0]==test:          vp="/".join(self.REQUEST['VirtualRootPhysicalPath'])
             del temp2[0]          if vp[0]=="/":
               vp=vp[1:]
           
           url2=url2.replace(vp+"/",'')
           
   
     #print "CP:"+url1+"::"+url2+"::"+url1+"/"+string.join(temp2,"/")      return url1+"/"+url2
     return url1+"/"+string.join(temp2,"/")  
   
 def sortWeight(x,y):  def sortWeight(x,y):
     #print x[1],y[1]      #print x[1],y[1]

Removed from v.1.58  
changed lines
  Added in v.1.67


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