Diff for /ECHO_content/ECHO_Nav.py between versions 1.69 and 1.84.2.4

version 1.69, 2005/12/13 12:45:21 version 1.84.2.4, 2012/09/03 14:14:27
Line 1 Line 1
 # Objekte zur Erzeugung von Navigationselement  # Objekte zur Erzeugung von Navigationselement
   # 29-8-2012 Referenzen zum Storagemanager entfernt
   
 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 29  from Products.PageTemplates.ZopePageTemp Line 31  from Products.PageTemplates.ZopePageTemp
 import os.path  import os.path
   
 import urllib  import urllib
 from ECHO_helpers import displayTypes,checkOnlyOneInGroup  import ECHO_helpers
   from ECHO_helpers import displayTypes,checkOnlyOneInGroup,unicodify
 from ECHO_collection import content_html  from ECHO_collection import content_html
 import zLOG  import logging
   
   #def ersetzt logging
   def logger(txt,method,txt2):
       """logging"""
       logging.info(txt+ txt2)
   
   
 try:      try:    
     from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder      from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder
 except:  except:
     zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported')      logger('ECHO_Nav',logging.INFO,'ZSQLSimpleSearch not supported')
   
   
   
Line 81  class ECHO_ZCatalogElement(SimpleItem): Line 90  class ECHO_ZCatalogElement(SimpleItem):
     def changeECHO_ZCatalogElementForm(self):      def changeECHO_ZCatalogElementForm(self):
         """change"""          """change"""
                   
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeECHO_ZCatalogElement.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeECHO_ZCatalogElement.zpt')).__of__(self)
         return pt()          return pt()
   
     def changeECHO_ZCatalogElement(self,title,field,catalogId,baseUrl,weight,contentType,RESPONSE=None):      def changeECHO_ZCatalogElement(self,title,field,catalogId,baseUrl,weight,contentType,RESPONSE=None):
Line 96  class ECHO_ZCatalogElement(SimpleItem): Line 105  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 266  class ECHO_sqlElement(SimpleItem): Line 282  class ECHO_sqlElement(SimpleItem):
     try:          try:    
         searchQuery=ZSQLExtendFolder.ZSQLSimpleSearch          searchQuery=ZSQLExtendFolder.ZSQLSimpleSearch
     except:      except:
         zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported')          logger('ECHO_Nav',logging.INFO,'ZSQLSimpleSearch not supported')
                           
     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 295  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 306  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:
                       logger('ECHO_Nav',logging.INFO,"error, search")
                     """notrhing"""                      """notrhing"""
                                           
             return ret              return ret
Line 367  class ECHO_pageTemplate(ZopePageTemplate Line 384  class ECHO_pageTemplate(ZopePageTemplate
         else:          else:
             return 0              return 0
   
       def getCrumb(self):
           """returns breadcrumb for this object"""
           return ECHO_helpers.getCrumb(self)
   
       def getHierCrumbs(self):
           """returns a list of hierarchical breadcrumbs from self to the ECHO_root"""
           return ECHO_helpers.getHierCrumbs(self);    
   
   
   
Line 430  class ECHO_navigation(Folder): Line 454  class ECHO_navigation(Folder):
     """Navigations Element"""      """Navigations Element"""
     meta_type="ECHO_Navigation"      meta_type="ECHO_Navigation"
     management_page_charset="utf-8"      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):      def searchExternalCollection(self,url,simpleSearch):
         """search external collection via xmlrpc"""          """search external collection via xmlrpc"""
         server=xmlrpclib.Server(url)          server=xmlrpclib.Server(url)
Line 479  class ECHO_navigation(Folder): Line 512  class ECHO_navigation(Folder):
           
     def decode(self,str):      def decode(self,str):
         """decoder"""          """decoder"""
         if not str:          return unicodify(str)
             return ""  
         if type(str) is StringType:  
               
             return str.decode('utf-8')  
         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"""
Line 540  class ECHO_navigation(Folder): Line 566  class ECHO_navigation(Folder):
   
     displayableMetaTypes=displayTypes      displayableMetaTypes=displayTypes
           
     def getImageViewers(self):  
         """images"""  
         viewers=self.ZopeFind(self.standardImageViewer,obj_metatypes=['OSAS_ViewerObject'])  
         return viewers  
           
     def getR(self):      def getR(self):
         """re"""          """re"""
Line 563  class ECHO_navigation(Folder): Line 585  class ECHO_navigation(Folder):
         )          )
     displayedMetaTypes=displayTypes      displayedMetaTypes=displayTypes
           
      
       
     def ECHO_navigationConfigForm(self):      def ECHO_navigationConfigForm(self):
         """configForm"""          """configForm"""
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeECHO_navigation.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeECHO_navigation.zpt')).__of__(self)
Line 611  class ECHO_navigation(Folder): Line 635  class ECHO_navigation(Folder):
         obj=objtemp                obj=objtemp      
   
         for keys in obj.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes):          for keys in obj.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes):
   
             x=keys[1]              x=keys[1]
             if depth>1:              if depth>1:
                 nav[x.getId()]=(self.getColls(x,int(depth)-1,checkOnly),x)                  nav[x.getId()]=(self.getColls(x,int(depth)-1,checkOnly),x)
Line 682  class ECHO_navigation(Folder): Line 707  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()=='':
                                 label=temp[x][1].getLabel()                                  label=temp[x][1].getLabel()
                         else:                          else:
                               try:
                             label=temp[x][1].getTitle()                              label=temp[x][1].getTitle()
                               except:
                                   logger("ECHO_Nav",logging.ERROR,"%s has neither getLabel nor getTile implemented"%temp[x][1].getId())
                                   label=""
                     else:                      else:
                         label=temp[x][1].getTitle()                          label=temp[x][1].getTitle()
   
Line 731  class ECHO_navigation(Folder): Line 760  class ECHO_navigation(Folder):
   
         testStr=re.sub("/index_html",'',self.REQUEST.get('URL',''))          testStr=re.sub("/index_html",'',self.REQUEST.get('URL',''))
   
         #falls exakte Übereinstimmung dann immer 1      if len(item)<2:
           return 0
           #falls exakte Uebereinstimmung 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              return 1
Line 775  class ECHO_navigation(Folder): Line 806  class ECHO_navigation(Folder):
             return style              return style
                   
           
       def getCrumb(self):
           """returns breadcrumb for this object"""
           # ignore this object if title is empty
           if not self.title:
               return None
           
           # we use title for the label TODO: add label to ECHO_root
           crumb = {'obj': self,
                    'url': self.absolute_url(),
                    'label': self.title}
           return crumb        
   
       def getHierCrumbs(self):
           """returns a list of hierarchical breadcrumbs from self to the ECHO_root"""
           return ECHO_helpers.getHierCrumbs(self)
   
   
     def buttonsFromHash(self,hash,start=None,orientation="horizontal"):      def buttonsFromHash(self,hash,start=None,orientation="horizontal"):
                   
         """Generate Buttons"""          """Generate Buttons"""
Line 854  class ECHO_navigation(Folder): Line 902  class ECHO_navigation(Folder):
             nr=0              nr=0
         return nr+1          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):      def secondNavElements(self):
         """Zweite Ordnung Navigationselemente"""          """Zweite Ordnung Navigationselemente"""
                   
Line 955  def createPath(self,url1,url2): Line 1019  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:]
                   

Removed from v.1.69  
changed lines
  Added in v.1.84.2.4


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