Diff for /ECHO_content/ECHO_Nav.py between versions 1.48 and 1.60

version 1.48, 2004/10/28 13:38:39 version 1.60, 2005/10/26 11:18:19
Line 1 Line 1
 # Objekte zur Erzeugung von Navigationselementen  # Objekte zur Erzeugung von Navigationselement
   from AccessControl import ClassSecurityInfo
 from Globals import DTMLFile  from Globals import DTMLFile
 from OFS.Image import Image,cookId  from OFS.Image import Image,cookId
 from OFS.Folder import Folder  from OFS.Folder import Folder
Line 27  import re Line 27  import re
 import string  import string
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 import os.path  import os.path
 from Globals import package_home  
 import urllib  import urllib
 from ECHO_helpers import displayTypes,checkOnlyOneInGroup  from ECHO_helpers import displayTypes,checkOnlyOneInGroup
 from ECHO_collection import content_html  from ECHO_collection import content_html
   import zLOG
   
   try:    
       from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder
   except:
       zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported')
   
   
   
Line 117  class ECHO_ZCatalogElement(SimpleItem): Line 122  class ECHO_ZCatalogElement(SimpleItem):
   
 def manage_addECHO_ZCatalogElementForm(self):  def manage_addECHO_ZCatalogElementForm(self):
     """Form for adding"""      """Form for adding"""
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ECHO_content/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,baseUrl,weight,contentType,RESPONSE=None):
Line 255  class ECHO_sqlElement(SimpleItem): Line 260  class ECHO_sqlElement(SimpleItem):
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
   
     def searchQuery(self,query=None,obj=None):      try:    
         #presently a hack, tests if search is of the search method, if not look at the next level.          searchQuery=ZSQLExtendFolder.ZSQLSimpleSearch
         #      except:
         #return self.ZSQLsimpleSearch(var=self.query)          zLOG.LOG('ECHO_Nav',zLOG.INFO,'ZSQLSimpleSearch not supported')
         if not query:  
             query=self.query  
              
         if self.search.meta_type=="Z SQL Method":  
             return self.search(var=self.query)  
         else:  
             if self.aq_parent.aq_parent.search.meta_type=="Z SQL Method":  
                 return self.aq_parent.aq_parent.search(var=self.query)  
             else:  
                 return []  
           
           
           
           
     def getNavList(self):      def getNavList(self):
         """ausgabe der treffer list für navigation"""          """ausgabe der treffer list für navigation"""
                   
         records=self.searchQuery()          #naechste schritte sind trial and error, warum geht mal das eine mal das andere 2.3 / 2.4 ??
           try:
               records=self.searchQuery(self.aq_parent,query=self.query) #python 2.4 version (??)
           except:
               records=self.serchQuery()#python 2.3 version(??)
               
                   
         if not records:          if not records:
Line 305  def manage_addECHO_sqlElement(self,id,ti Line 301  def manage_addECHO_sqlElement(self,id,ti
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
   
   
 class ECHO_pageTemplate(ZopePageTemplate):  class ECHO_pageTemplate(ZopePageTemplate,ECHO_basis):
     """pageTemplate Objekt"""      """pageTemplate Objekt"""
     meta_type="ECHO_pageTemplate"      meta_type="ECHO_pageTemplate"
       security=ClassSecurityInfo()
       
   
     _default_content_fn = os.path.join(package_home(globals()),      _default_content_fn = os.path.join(package_home(globals()),
                                        'html/ECHO_pageTemplateDefault.html')                                         'html/ECHO_pageTemplateDefault.html')
   
     manage_options=ZopePageTemplate.manage_options+(      manage_options=ZopePageTemplate.manage_options+ECHO_basis.manage_options+(
         {'label':'Main Config','action':'changeECHO_pageTemplateMainForm'},          {'label':'Main Config','action':'changeECHO_pageTemplateMainForm'},
           {'label':'Graphic Coords','action':'ECHO_graphicEntry'},
         )          )
   
       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"""
     return content_html(self,'pageTemplate')      return content_html(self,'pageTemplate')
Line 338  class ECHO_pageTemplate(ZopePageTemplate Line 346  class ECHO_pageTemplate(ZopePageTemplate
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
   
     def getLabel(self):  
         if hasattr(self,'label'):  
             return self.label.encode('utf-8')  
           
         else:  
             return 0  
           
     def getWeight(self):      def getWeight(self):
         """get weight"""          """get weight"""
         if hasattr(self,'weight'):          if hasattr(self,'weight'):
Line 371  class ECHO_pageTemplate(ZopePageTemplate Line 372  class ECHO_pageTemplate(ZopePageTemplate
   
 def manage_addECHO_pageTemplateForm(self):  def manage_addECHO_pageTemplateForm(self):
     """Form for adding"""      """Form for adding"""
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','Products/ECHO_content/zpt/AddECHO_pageTemplate.zpt')).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_pageTemplate.zpt')).__of__(self)
     return pt()      return pt()
   
 from urllib import quote  from urllib import quote
Line 422  class ECHO_navigation(Folder): Line 423  class ECHO_navigation(Folder):
     """Navigations Element"""      """Navigations Element"""
     meta_type="ECHO_Navigation"      meta_type="ECHO_Navigation"
   
       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):
           """linkbarer balken"""
           str=""
   
           
           while not(parent.meta_type == "ECHO_root"):
               fragment="""<a href="%s">%s</a>"""%(parent.absolute_url(),parent.label)
               str=fragment+"/"+str
               parent=parent.aq_parent
   
           return str
       
       def decode(self,str):
           """decoder"""
           if not str:
               return ""
           if type(str)==StringType:
               
               return str
           else:
               try:
                   return str.encode('utf-8')
               except:
                   return str.encode('latin-1')
     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 462  class ECHO_navigation(Folder): Line 496  class ECHO_navigation(Folder):
         if not obj:          if not obj:
             obj = self              obj = self
                           
         entries=obj.ZopeFind(obj,obj_metatypes=['ECHO_collection'],search_sub=1)          entries=obj.ZopeFind(obj,obj_metatypes=['ECHO_collection','VLP_resource'],search_sub=1)
   
         for entry in entries:          for entry in entries:
             #print entry[0]  
             entry[1].ZCacheable_setManagerId(managerName)              entry[1].ZCacheable_setManagerId(managerName)
   
                   
Line 628  class ECHO_navigation(Folder): Line 661  class ECHO_navigation(Folder):
                         label=temp[x][1].title.encode('utf-8')                                                      label=temp[x][1].title.encode('utf-8')                            
   
                     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()),temp[x][1],getattr(temp[x][1],'prefix',''),getattr(temp[x][1],'suffix','')))                              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','')))
                     else:                      else:
                         listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url()),temp[x][1],getattr(temp[x][1],'prefix',''),getattr(temp[x][1],'suffix','')))                          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','')))
   
         return listNav          return listNav
   
Line 642  class ECHO_navigation(Folder): Line 676  class ECHO_navigation(Folder):
         for x in hash.keys():          for x in hash.keys():
             #print hash[x][1]              #print hash[x][1]
             if hasattr(hash[x][1],field):              if hasattr(hash[x][1],field):
                   try:
                       weight=int(getattr(hash[x][1],field))
                   except:
                 weight=getattr(hash[x][1],field)                  weight=getattr(hash[x][1],field)
                 #print weight                  #print weight
             else:              else:
Line 696  class ECHO_navigation(Folder): Line 733  class ECHO_navigation(Folder):
             return 0              return 0
   
                   
       def getPathStyle(self, item, style=""):
           """returns a string with the given style + 'sel' if the path is already selected."""
   
           if self.isSelectedPath(item):
               return style + 'sel'
           else:
               return style
                   
           
     def buttonsFromHash(self,hash,start=None,orientation="horizontal"):      def buttonsFromHash(self,hash,start=None,orientation="horizontal"):
Line 777  class ECHO_navigation(Folder): Line 821  class ECHO_navigation(Folder):
         return nr+1          return nr+1
           
     def secondNavElements(self):      def secondNavElements(self):
         """Zweite Ordnung"""          """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']

Removed from v.1.48  
changed lines
  Added in v.1.60


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