Diff for /ECHO_content/ECHO_Nav.py between versions 1.8 and 1.15

version 1.8, 2004/04/02 07:56:26 version 1.15, 2004/04/18 09:54:14
Line 1 Line 1
 # Objekte zur Erzeugung von Navigationselementen  # Objekte zur Erzeugung von Navigationselementen
   
   from Globals import DTMLFile
   from OFS.Image import Image,cookId
 from OFS.Folder import Folder  from OFS.Folder import Folder
 from OFS.SimpleItem import SimpleItem  from OFS.SimpleItem import SimpleItem
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
Line 12  import os.path Line 13  import os.path
 from Globals import package_home  from Globals import package_home
 import urllib  import urllib
   
   class ECHO_contentType(Image):
       """ContentType Object"""
   
       meta_type="ECHO_contentType"
   
       
       manage_options=Image.manage_options+(
           {'label':'Change Description','action':'changeECHO_contentTypeForm'},
          )
   
       def changeECHO_contentTypeForm(self):
           """Change the description text"""
           pt=PageTemplateFile('Products/ECHO_content/zpt/changeECHO_contentType.zpt').__of__(self)
           return pt()
   
       def changeECHO_contentType(self,description,RESPONSE=None):
           """Change the Content"""
           self.description=description
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
   
   manage_addECHO_contentTypeForm=DTMLFile('dtml/ECHO_contentTypeAdd',globals(),
                                Kind='ECHO_contentType',kind='ECHO_contentType')
   
   def manage_addECHO_contentType(self, id, file=None, title='', precondition='', content_type='', description='',
                       REQUEST=None):
       """
       Add a new Image object.
   
       Creates a new Image object 'id' with the contents of 'file'.
       """
   
       id=str(id)
       title=str(title)
       content_type=str(content_type)
       precondition=str(precondition)
   
       id, title = cookId(id, title, file)
   
       self=self.this()
   
       # First, we create the image without data:
       self._setObject(id, ECHO_contentType(id,title,'',content_type, precondition))
   
       self._getOb(id).description=description
           
       # Now we "upload" the data.  By doing this in two steps, we
       # can use a database trick to make the upload more efficient.
       if file:
           self._getOb(id).manage_upload(file)
       if content_type:
           self._getOb(id).content_type=content_type
   
       if REQUEST is not None:
           try:    url=self.DestinationURL()
           except: url=REQUEST['URL1']
           REQUEST.RESPONSE.redirect('%s/manage_main' % url)
       return id
   
   
 class ECHO_sqlElement(SimpleItem):  class ECHO_sqlElement(SimpleItem):
     """Erzeuge navigation aus sql-abfrage"""      """Erzeuge navigation aus sql-abfrage"""
     meta_type="ECHO_sqlElement"      meta_type="ECHO_sqlElement"
     baseUrl=""      baseUrl=""
           
     def __init__(self,id,title,query,field,searchField,baseUrl,weight,content_type):      def __init__(self,id,title,query,field,searchField,baseUrl,weight,contentType):
         """init"""          """init"""
         self.id=id          self.id=id
         self.title=title          self.title=title
Line 29  class ECHO_sqlElement(SimpleItem): Line 90  class ECHO_sqlElement(SimpleItem):
             self.searchField=searchField              self.searchField=searchField
         self.baseUrl=baseUrl          self.baseUrl=baseUrl
         self.weight=weight          self.weight=weight
         self.content=content_type          self.content=contentType
   
     manage_options= SimpleItem.manage_options+(      manage_options= SimpleItem.manage_options+(
         {'label':'Main Config','action':'changeECHO_sqlElementForm'},          {'label':'Main Config','action':'changeECHO_sqlElementForm'},
Line 48  class ECHO_sqlElement(SimpleItem): Line 109  class ECHO_sqlElement(SimpleItem):
         else:          else:
             return 0              return 0
                   
     def getContent_type(self):      def getcontentType(self):
         """get weight"""          """get weight"""
                   
         if hasattr(self,'content_type'):          if hasattr(self,'contentType'):
             return self.content_type              return self.contentType
         else:          else:
             return 0              return 0
                   
Line 63  class ECHO_sqlElement(SimpleItem): Line 124  class ECHO_sqlElement(SimpleItem):
         pt=PageTemplateFile('Products/ECHO_content/zpt/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,searchField,baseUrl,weight,content_type,RESPONSE=None):      def changeECHO_sqlElement(self,title,query,field,searchField,baseUrl,weight,contentType,RESPONSE=None):
         """change"""          """change"""
         self.title=title          self.title=title
         self.query=query          self.query=query
Line 71  class ECHO_sqlElement(SimpleItem): Line 132  class ECHO_sqlElement(SimpleItem):
         self.searchField=searchField          self.searchField=searchField
         self.baseUrl=baseUrl          self.baseUrl=baseUrl
         self.weight=weight          self.weight=weight
         self.content_type=content_type          self.contentType=contentType
                   
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
Line 100  def manage_addECHO_sqlElementForm(self): Line 161  def manage_addECHO_sqlElementForm(self):
     pt=PageTemplateFile('Products/ECHO_content/zpt/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,searchField,baseUrl,weight,content_type,RESPONSE=None):  def manage_addECHO_sqlElement(self,id,title,query,field,searchField,baseUrl,weight,contentType,RESPONSE=None):
     """Add an ECHO_sqlelement"""      """Add an ECHO_sqlelement"""
     self._setObject(id,ECHO_sqlElement(id,title,query,field,searchField,baseUrl,weight,content_type))      self._setObject(id,ECHO_sqlElement(id,title,query,field,searchField,baseUrl,weight,contentType))
           
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
Line 124  class ECHO_pageTemplate(ZopePageTemplate Line 185  class ECHO_pageTemplate(ZopePageTemplate
         pt=PageTemplateFile('Products/ECHO_content/zpt/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):      def changeECHO_pageTemplateWeight(self,weight,contentType,label,RESPONSE=None):
         """change"""          """change"""
         self.weight=weight          self.weight=weight
         self.content_type=content_type          self.contentType=contentType
           self.label=label
   
         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
           else:
               return 0
           
     def getWeight(self):      def getWeight(self):
         """get weight"""          """get weight"""
         if hasattr(self,'weight'):          if hasattr(self,'weight'):
Line 139  class ECHO_pageTemplate(ZopePageTemplate Line 207  class ECHO_pageTemplate(ZopePageTemplate
         else:          else:
             return 0              return 0
                   
     def getContent_Type(self):      def getcontentType(self):
         """get weight"""          """get weight"""
         if hasattr(self,'weight'):          if hasattr(self,'weight'):
             return self.weight              return self.weight
Line 149  class ECHO_pageTemplate(ZopePageTemplate Line 217  class ECHO_pageTemplate(ZopePageTemplate
   
   
   
     ## def __init__(self, id, text=None, content_type=None):      ## def __init__(self, id, text=None, contentType=None):
 ##         self.id = str(id)  ##         self.id = str(id)
 ##         self.ZBindings_edit(self._default_bindings)  ##         self.ZBindings_edit(self._default_bindings)
 ##         if text is None:  ##         if text is None:
 ##             text = open(self._default_cont).read()  ##             text = open(self._default_cont).read()
 ##         self.pt_edit(text, content_type)  ##         self.pt_edit(text, contentType)
   
 def manage_addECHO_pageTemplateForm(self):  def manage_addECHO_pageTemplateForm(self):
     """Form for adding"""      """Form for adding"""
Line 164  def manage_addECHO_pageTemplateForm(self Line 232  def manage_addECHO_pageTemplateForm(self
 from urllib import quote  from urllib import quote
   
   
 def manage_addECHO_pageTemplate(self, id, weight= 0,content_type=0,title=None, text=None,  def manage_addECHO_pageTemplate(self, id, label, weight= 0,contentType=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 174  def manage_addECHO_pageTemplate(self, id Line 242  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)          setattr(ob,'label',label)
           setattr(ob,'contentType',contentType)
         if title:          if title:
             ob.pt_setTitle(title)              ob.pt_setTitle(title)
         return ob          return ob
Line 184  def manage_addECHO_pageTemplate(self, id Line 253  def manage_addECHO_pageTemplate(self, id
         if headers is None or not file.filename:          if headers is None or not file.filename:
             zpt = ECHO_pageTemplate(id)              zpt = ECHO_pageTemplate(id)
         else:          else:
             zpt = ECHO_pageTemplate(id, file, headers.get('content_type'))              zpt = ECHO_pageTemplate(id, file, headers.get('contentType'))
   
         self._setObject(id, zpt)          self._setObject(id, zpt)
         ob = getattr(self, id)          ob = getattr(self, id)
Line 207  class ECHO_navigation(Folder): Line 276  class ECHO_navigation(Folder):
     """Navigations Element"""      """Navigations Element"""
     meta_type="ECHO_Navigation"      meta_type="ECHO_Navigation"
   
     displayedMetaTypes=['ImageCollectionIFrame','ECHO_collection','ECHO_pageTemplate','ZSQLExtendFolder','ECHO_sqlElement','ECHO_resource','ECHO_externalLink']      displayedMetaTypes=['ECHO_group','ImageCollectionIFrame','ECHO_collection','ECHO_pageTemplate','ZSQLExtendFolder','ZSQLBibliography','ECHO_sqlElement','ECHO_resource','ECHO_externalLink']
           
     def __init__(self,id,title,pathToHierarchy):      def __init__(self,id,title,pathToHierarchy):
         """init"""          """init"""
Line 316  class ECHO_navigation(Folder): Line 385  class ECHO_navigation(Folder):
                     """nothing"""                      """nothing"""
                     return []                      return []
             #print "TEMP",temp,self.tempSorted(temp, field=sortField)              #print "TEMP",temp,self.tempSorted(temp, field=sortField)
         print "HELL",sortField  
         for x in self.tempSorted(temp, field=sortField):          for x in self.tempSorted(temp, field=sortField):
             if not temp[x][1].title == "":              if not temp[x][1].title == "":
                 if temp[x][1].meta_type=="ECHO_sqlElement":                  if temp[x][1].meta_type=="ECHO_sqlElement":
Line 327  class ECHO_navigation(Folder): Line 396  class ECHO_navigation(Folder):
                     if hasattr(temp[x][1],'label'):                      if hasattr(temp[x][1],'label'):
                         if not temp[x][1].label=='':                          if not temp[x][1].label=='':
                             label=temp[x][1].label                              label=temp[x][1].label
                             print "HAS LABEL",label                              
                         else:                          else:
                             label=temp[x][1].title                              label=temp[x][1].title
                     else:                      else:
                         label=temp[x][1].title                                                      label=temp[x][1].title                            
                                           
                     listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url())))                      listNav.append((label,createPath(self.absolute_url(),temp[x][1].absolute_url()),temp[x][1]))
                                           
         #print self.getId(),start          #print self.getId(),start
         #print listNav          #print listNav
Line 347  class ECHO_navigation(Folder): Line 416  class ECHO_navigation(Folder):
   
     def tempSorted(self,hash,field="weight"):      def tempSorted(self,hash,field="weight"):
         ls=[]          ls=[]
         print "SORT",field  
         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):
Line 422  class ECHO_navigation(Folder): Line 491  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 433  class ECHO_navigation(Folder): Line 502  class ECHO_navigation(Folder):
     def mainNavElements(self):      def mainNavElements(self):
         """print main navigation bar"""          """print main navigation bar"""
         keys=""          keys=""
         print "NAVELEMENT",self.getId()          #print "NAVELEMENT",self.getId()
         #try:          #try:
               
         keys=self.barFromHash(self.createNavHash(0))          keys=self.barFromHash(self.createNavHash(0))
Line 443  class ECHO_navigation(Folder): Line 512  class ECHO_navigation(Folder):
                           
         return keys          return keys
           
       def numberOfMainNavElements(self):
       """number of main elements"""
   
       return len(self.barFromHash(self.createNavHash(0))) 
   
     def secondNavElements(self):      def secondNavElements(self):
         """Zweite Ordnung"""          """Zweite Ordnung"""
                   

Removed from v.1.8  
changed lines
  Added in v.1.15


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