Diff for /ECHO_content/ECHO_Nav.py between versions 1.3 and 1.7

version 1.3, 2004/02/03 16:58:31 version 1.7, 2004/03/16 10:20:58
Line 17  class ECHO_sqlElement(SimpleItem): Line 17  class ECHO_sqlElement(SimpleItem):
     meta_type="ECHO_sqlElement"      meta_type="ECHO_sqlElement"
     baseUrl=""      baseUrl=""
           
     def __init__(self,id,title,query,field,baseUrl,weight):      def __init__(self,id,title,query,field,searchField,baseUrl,weight,content_type):
         """init"""          """init"""
         self.id=id          self.id=id
         self.title=title          self.title=title
         self.query=query          self.query=query
         self.field=field          self.field=field
           if searchField=="":
               self.searchField=field
           else:
               self.searchField=searchField
         self.baseUrl=baseUrl          self.baseUrl=baseUrl
         self.weight=weight          self.weight=weight
           self.content=content_type
   
     manage_options= SimpleItem.manage_options+(      manage_options= SimpleItem.manage_options+(
         {'label':'Main Config','action':'changeECHO_sqlElementForm'},          {'label':'Main Config','action':'changeECHO_sqlElementForm'},
         )          )
   
     def getWeight(self):      def getSearchField(self):
         if has_attr('weight'):          try:
             return weight              return self.searchField
           except:
               return self.field
   
       def getWeight(self):
           """get weight"""
           if hasattr(self,'weight'):
               return self.weight
         else:          else:
             return 0              return 0
                   
       def getContent_type(self):
           """get weight"""
           
           if hasattr(self,'content_type'):
               return self.content_type
           else:
               return 0
                   
   
     def changeECHO_sqlElementForm(self):      def changeECHO_sqlElementForm(self):
         """change"""          """change"""
         pt=PageTemplateFile('Products/ECHO_content/ChangeECHO_sqlElement.zpt').__of__(self)          
           pt=PageTemplateFile('Products/ECHO_content/zpt/changeECHO_sqlElement.zpt').__of__(self)
         return pt()          return pt()
   
     def changeECHO_sqlElement(self,title,query,field,baseUrl,weight,RESPONSE=None):      def changeECHO_sqlElement(self,title,query,field,searchField,baseUrl,weight,content_type,RESPONSE=None):
         """change"""          """change"""
         self.title=title          self.title=title
         self.query=query          self.query=query
         self.field=field          self.field=field
           self.searchField=searchField
         self.baseUrl=baseUrl          self.baseUrl=baseUrl
         self.weight=weight          self.weight=weight
           self.content_type=content_type
   
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
Line 66  class ECHO_sqlElement(SimpleItem): Line 87  class ECHO_sqlElement(SimpleItem):
         else:          else:
             ret=[]              ret=[]
             for record in records:              for record in records:
                 ret.append((getattr(record,self.field),self.baseUrl+str(getattr(record,self.field))))                  try:
                       ret.append((getattr(record,self.field),self.baseUrl+urllib.quote(str(getattr(record,self.getSearchField())))))
                   except:
                       """notrhing"""
                       
             return ret              return ret
           
   
 def manage_AddECHO_sqlElementForm(self):  def manage_addECHO_sqlElementForm(self):
     """Form for adding"""      """Form for adding"""
     pt=PageTemplateFile('Products/ECHO_content/AddECHO_sqlElement.zpt').__of__(self)      pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_sqlElement.zpt').__of__(self)
     return pt()      return pt()
   
 def manage_AddECHO_sqlElement(self,id,title,query,field,baseUrl,RESPONSE=None):  def manage_addECHO_sqlElement(self,id,title,query,field,searchField,baseUrl,weight,content_type,RESPONSE=None):
     """Add an ECHO_sqlelement"""      """Add an ECHO_sqlelement"""
     self._setObject(id,ECHO_sqlElement(id,title,query,field,baseUrl))      self._setObject(id,ECHO_sqlElement(id,title,query,field,searchField,baseUrl,weight,content_type))
           
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
Line 88  class ECHO_pageTemplate(ZopePageTemplate Line 113  class ECHO_pageTemplate(ZopePageTemplate
     meta_type="ECHO_pageTemplate"      meta_type="ECHO_pageTemplate"
   
     _default_content_fn = os.path.join(package_home(globals()),      _default_content_fn = os.path.join(package_home(globals()),
                                        'ECHO_pageTemplateDefault.html')                                         'html/ECHO_pageTemplateDefault.html')
   
     manage_options=ZopePageTemplate.manage_options+(      manage_options=ZopePageTemplate.manage_options+(
         {'label':'Weight','action':'changeECHO_pageTemplateWeightForm'},          {'label':'Weight and Type','action':'changeECHO_pageTemplateWeightForm'},
         )          )
   
     def changeECHO_pageTemplateWeightForm(self):      def changeECHO_pageTemplateWeightForm(self):
     """change"""      """change"""
     pt=PageTemplateFile('Products/ECHO_content/ChangeECHO_pageTemplateWeight.zpt').__of__(self)          pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
     return pt()      return pt()
   
       def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
           """change"""
           self.weight=weight
           self.content_type=content_type
   
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
           
       def getWeight(self):
           """get weight"""
           if hasattr(self,'weight'):
               return self.weight
           else:
               return 0
           
       def getContent_Type(self):
           """get weight"""
           if hasattr(self,'weight'):
               return self.weight
           else:
               return 0
   
   
   
   
Line 109  class ECHO_pageTemplate(ZopePageTemplate Line 156  class ECHO_pageTemplate(ZopePageTemplate
 ##             text = open(self._default_cont).read()  ##             text = open(self._default_cont).read()
 ##         self.pt_edit(text, content_type)  ##         self.pt_edit(text, content_type)
   
 def manage_AddECHO_pageTemplateForm(self):  def manage_addECHO_pageTemplateForm(self):
     """Form for adding"""      """Form for adding"""
     pt=PageTemplateFile('Products/ECHO_content/AddECHO_pageTemplate.zpt').__of__(self)      pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_pageTemplate.zpt').__of__(self)
     return pt()      return pt()
   
 from urllib import quote  from urllib import quote
   
   
 def manage_AddECHO_pageTemplate(self, id, weight= 0,title=None, text=None,  def manage_addECHO_pageTemplate(self, id, weight= 0,content_type=0,title=None, text=None,
                            REQUEST=None, submit=None):                             REQUEST=None, submit=None):
     "Add a Page Template with optional file content."      "Add a Page Template with optional file content."
   
Line 127  def manage_AddECHO_pageTemplate(self, id Line 174  def manage_AddECHO_pageTemplate(self, id
         self._setObject(id, ECHO_pageTemplate(id, text))          self._setObject(id, ECHO_pageTemplate(id, text))
         ob = getattr(self, id)          ob = getattr(self, id)
         setattr(ob,'weight',weight)          setattr(ob,'weight',weight)
           setattr(ob,'content_type',content_type)
         if title:          if title:
             ob.pt_setTitle(title)              ob.pt_setTitle(title)
         return ob          return ob
Line 157  class ECHO_navigation(Folder): Line 205  class ECHO_navigation(Folder):
     """Navigations Element"""      """Navigations Element"""
     meta_type="ECHO_Navigation"      meta_type="ECHO_Navigation"
   
     displayedMetaTypes=['ECHO_collection','ECHO_pageTemplate','ZSQLExtendFolder','ECHO_sqlElement']      displayedMetaTypes=['ImageCollectionIFrame','ECHO_collection','ECHO_pageTemplate','ZSQLExtendFolder','ECHO_sqlElement','ECHO_resource','ECHO_externalLink']
           
     def __init__(self,id,title,pathToHierarchy):      def __init__(self,id,title,pathToHierarchy):
         """init"""          """init"""
Line 171  class ECHO_navigation(Folder): Line 219  class ECHO_navigation(Folder):
   
     def ECHO_navigationConfigForm(self):      def ECHO_navigationConfigForm(self):
         """configForm"""          """configForm"""
         pt=PageTemplateFile('Products/ECHO_content/ChangeECHO_navigation.zpt').__of__(self)          pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_navigation.zpt').__of__(self)
         return pt()          return pt()
           
     def ECHO_navigationConfig(self,title,pathToHierarchy,RESPONSE=None):      def ECHO_navigationConfig(self,title,pathToHierarchy,RESPONSE=None):
Line 210  class ECHO_navigation(Folder): Line 258  class ECHO_navigation(Folder):
   
         #objtemp = compile(temp,'<string>','single')          #objtemp = compile(temp,'<string>','single')
         #obj=eval(objtemp)          #obj=eval(objtemp)
         print obj           #print obj 
                   
         #print obj.__dict__.keys()          #print obj.__dict__.keys()
                   
Line 219  class ECHO_navigation(Folder): Line 267  class ECHO_navigation(Folder):
             if hasattr(x,"meta_type"):              if hasattr(x,"meta_type"):
                 #print x.meta_type                  #print x.meta_type
                 if x.meta_type in self.displayedMetaTypes:                  if x.meta_type in self.displayedMetaTypes:
                      
                     if depth>1:                      if depth>1:
                         nav[x.getId()]=(self.getColls(x,int(depth)-1),x)                          nav[x.getId()]=(self.getColls(x,int(depth)-1),x)
                     else:                      else:
Line 228  class ECHO_navigation(Folder): Line 277  class ECHO_navigation(Folder):
         #print nav          #print nav
         return nav          return nav
   
     def barFromHash(self,hash,start=None):      def barFromHash(self,hash,start=None,sortField=None):
         """Erzeuge Navigations Element"""          """Erzeuge Navigations Element"""
         #print "hash",hash          #print "hash",hash
         listNav=[]          listNav=[]
         if not start:          if not start:
             temp=hash              temp=hash
               sortField="weight"
         else: # list mit pfad zum hash          else: # list mit pfad zum hash
             temp=hash              temp=hash
               #print "HI",sortField
               if not sortField:
                   tempObj=self.pathToHierarchy[0:]
                   tempObj=re.sub("/",".",tempObj)
                   tempObj="self.aq_parent"+tempObj
   
                   objtemp=eval(tempObj)
   
                   obj=objtemp
   
             for x in start:              for x in start:
                 temp=temp[x][0]                      #print "OBJ",start,obj,obj.getId(),x
   
         for x in temp.keys():                      obj=getattr(obj,x)
   
                   if hasattr(obj,'sortfield'):
                       sortField=obj.sortfield
                   else:
                       sortField='weight'
               #print "START",start
               for x in start:
                   #print "N2",x,temp[x]
                   try:
                       temp=temp[x][0]
                   except:
                       """nothing"""
                       return []
               #print "TEMP",temp,self.tempSorted(temp, field=sortField)
           print "HELL",sortField
           for x in self.tempSorted(temp, field=sortField):
               if not temp[x][1].title == "":
             if temp[x][1].meta_type=="ECHO_sqlElement":              if temp[x][1].meta_type=="ECHO_sqlElement":
                 for z in temp[x][1].getNavList():                  for z in temp[x][1].getNavList():
                     listNav.append((z[0],z[1]))                      listNav.append((z[0],z[1]))
             else:              else:
                 listNav.append((temp[x][1].title,createPath(self.absolute_url(),temp[x][1].absolute_url())))                      # add label fals existiert und nicht leer
                 print self.absolute_url(),"::",temp[x][1].absolute_url()                      if hasattr(temp[x][1],'label'):
                           if not temp[x][1].label=='':
                               label=temp[x][1].label
                               print "HAS LABEL",label
                           else:
                               label=temp[x][1].title
                       else:
                           label=temp[x][1].title                            
   
                       listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url())))
                       
           #print self.getId(),start
         #print listNav          #print listNav
   
         #html=""          #html=""
Line 256  class ECHO_navigation(Folder): Line 343  class ECHO_navigation(Folder):
   
         return listNav          return listNav
   
       def tempSorted(self,hash,field="weight"):
           ls=[]
           print "SORT",field
           for x in hash.keys():
               #print hash[x][1]
               if hasattr(hash[x][1],field):
                   weight=getattr(hash[x][1],field)
                   #print weight
               else:
                   weight=0
   
               ls.append((x,weight))
   
           ls.sort(sortWeight)
           
           return [x[0] for x in ls]
   
       
           
               
     def isSelectedPath(self,item):      def isSelectedPath(self,item):
         """test is path is already selected"""          """test is path is already selected"""
         found=re.search("\?(.*)",item[1])          found=re.search("\?(.*)",item[1])
Line 294  class ECHO_navigation(Folder): Line 401  class ECHO_navigation(Folder):
                 temp=temp[x][0]                  temp=temp[x][0]
                 #print temp                  #print temp
                   
         for key in temp.keys():          for key in self.tempSorted(temp):
                           
             description=temp[x][1].title              description=temp[x][1].title
                     
Line 313  class ECHO_navigation(Folder): Line 420  class ECHO_navigation(Folder):
     def mainNavBar(self):      def mainNavBar(self):
         """print main navigation bar"""          """print main navigation bar"""
         keys=""          keys=""
           print "NAVBAR",self.getId()
         try:          try:
             keys=self.buttonsFromHash(self.createNavHash(0))              keys=self.buttonsFromHash(self.createNavHash(0))
         except:          except:
Line 323  class ECHO_navigation(Folder): Line 431  class ECHO_navigation(Folder):
     def mainNavElements(self):      def mainNavElements(self):
         """print main navigation bar"""          """print main navigation bar"""
         keys=""          keys=""
           print "NAVELEMENT",self.getId()
           #try:
   
         try:  
             keys=self.barFromHash(self.createNavHash(0))              keys=self.barFromHash(self.createNavHash(0))
         except:  
             keys=""          #except:
           #    keys=""
                           
         return keys          return keys
           
Line 356  class ECHO_navigation(Folder): Line 466  class ECHO_navigation(Folder):
                   
         return keys          return keys
   
       def navElements(self,order):
           """n-te Ordnung"""
           
           hash=self.createNavHash(order)
           actual_url=self.REQUEST['URL']
           
           ult_temp=re.sub(self.absolute_url(),"",actual_url)
           #print ult_temp
   
           splitted=ult_temp.split("/")
           
   
           ## if splitted[len(splitted)-1]=="index_html":
   ##             start=[splitted[len(splitted)-2]]
   ##         else:
   ##             start=[splitted[len(splitted)-1]]
   
           start=splitted[2:order+1]
           #print start
          
           keys=self.barFromHash(hash,start=start)
           
           
           return keys
   
   
     def secondNavBar(self):      def secondNavBar(self):
         """Zweite Ordnung"""          """Zweite Ordnung"""
Line 382  class ECHO_navigation(Folder): Line 517  class ECHO_navigation(Folder):
                   
         return keys          return keys
   
 def manage_AddECHO_navigationForm(self):  def manage_addECHO_navigationForm(self):
     """Form for adding"""      """Form for adding"""
     pt=PageTemplateFile('Products/ECHO_content/AddECHO_navigation.zpt').__of__(self)      pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_navigation.zpt').__of__(self)
     return pt()      return pt()
   
 def manage_AddECHO_navigation(self,id,title,pathToHierarchy,RESPONSE=None):  def manage_addECHO_navigation(self,id,title,pathToHierarchy,RESPONSE=None):
     """Add an ECHO_root"""      """Add an ECHO_root"""
     self._setObject(id,ECHO_navigation(id,title,pathToHierarchy))      self._setObject(id,ECHO_navigation(id,title,pathToHierarchy))
           
Line 408  def createPath(url1,url2): Line 543  def createPath(url1,url2):
   
     return url1+"/"+string.join(temp2,"/")      return url1+"/"+string.join(temp2,"/")
           
   def sortWeight(x,y):
       #print x[1],y[1]
       return cmp(x[1],y[1])
           

Removed from v.1.3  
changed lines
  Added in v.1.7


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