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

version 1.32, 2004/06/07 17:14:23 version 1.58, 2005/10/13 16:58:26
Line 1 Line 1
 # Objekte zur Erzeugung von Navigationselementen  # Objekte zur Erzeugung von Navigationselementen
   
   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 12  from Products.PageTemplates.ZopePageTemp Line 13  from Products.PageTemplates.ZopePageTemp
 import os.path  import os.path
 from Globals import package_home  from Globals import package_home
 import urllib  import urllib
   from ECHO_helpers import *
   from ECHO_collection import content_html
   from types import *
   
   
   from Globals import DTMLFile
   from OFS.Image import Image,cookId
   from OFS.Folder import Folder
   from OFS.SimpleItem import SimpleItem
   from Products.PageTemplates.PageTemplateFile import PageTemplateFile
   from Products.PageTemplates.PageTemplate import PageTemplate
   import re
   import string
   from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
   import os.path
   
   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')
   
   
   
   class ECHO_ZCatalogElement(SimpleItem):
       """Erzeuge navigation aus ZCatalog-abfrage"""
       meta_type="ECHO_ZCatalogElement"
       baseUrl=""
   
       def __init__(self,id,title,field,catalogId,baseUrl,weight,contentType):
           """init"""
           self.id=id
           self.title=title
           self.catalogId=catalogId
           self.field=field
   
           self.baseUrl=baseUrl
           self.weight=weight
           self.content=contentType
   
           
       manage_options= SimpleItem.manage_options+(
           {'label':'Main Config','action':'changeECHO_ZCatalogElementForm'},
           )
   
           
       def getWeight(self):
           """get weight"""
           if hasattr(self,'weight'):
               return self.weight
           else:
               return 0
           
       def getcontentType(self):
           """get weight"""
           
           if hasattr(self,'contentType'):
               return self.contentType
           else:
               return 0
           
   
       def changeECHO_ZCatalogElementForm(self):
           """change"""
           
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeECHO_ZCatalogElement.zpt')).__of__(self)
           return pt()
   
       def changeECHO_ZCatalogElement(self,title,field,catalogId,baseUrl,weight,contentType,RESPONSE=None):
           """change"""
           self.title=title
           self.catalogId=catalogId
           self.field=field
           self.baseUrl=baseUrl
           self.weight=weight
           self.contentType=contentType
           
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
       def getKeywordList(self):
           return getattr(self,self.catalogId).uniqueValuesFor(self.field)
       
       def getNavList(self):
           """ausgabe der treffer list für navigation"""
           
           records=self.getKeywordList()
           
           
           if not records:
               return []
           else:
               ret=[]
               for record in records:
                   #print "RC",record
                   #if record:
                   #    ret.append((record,self.baseUrl+urllib.quote(record)))
                   try:
                       ret.append((record,self.baseUrl+urllib.quote(record)))
                   except:
                       """nothing"""
                       
               return ret
       
   
   def manage_addECHO_ZCatalogElementForm(self):
       """Form for adding"""
       pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_ZCatalogElement.zpt')).__of__(self)
       return pt()
   
   def manage_addECHO_ZCatalogElement(self,id,title,field,baseUrl,weight,contentType,RESPONSE=None):
       """Add an ECHO_ZCatalogelement"""
       self._setObject(id,ECHO_ZCatalogElement(id,title,field,baseUrl,weight,contentType))
       
       if RESPONSE is not None:
           RESPONSE.redirect('manage_main')
   
   
   
 class ECHO_contentType(Image):  class ECHO_contentType(Image):
     """ContentType Object"""      """ContentType Object"""
Line 27  class ECHO_contentType(Image): Line 147  class ECHO_contentType(Image):
   
     def changeECHO_contentTypeForm(self):      def changeECHO_contentTypeForm(self):
         """Change the description text"""          """Change the description text"""
         pt=PageTemplateFile('Products/ECHO_content/zpt/changeECHO_contentType.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeECHO_contentType.zpt')).__of__(self)
         return pt()          return pt()
   
     def changeECHO_contentType(self,description,RESPONSE=None):      def changeECHO_contentType(self,description,RESPONSE=None):
Line 80  class ECHO_sqlElement(SimpleItem): Line 200  class ECHO_sqlElement(SimpleItem):
     meta_type="ECHO_sqlElement"      meta_type="ECHO_sqlElement"
     baseUrl=""      baseUrl=""
           
   
       
     def __init__(self,id,title,query,field,searchField,baseUrl,weight,contentType):      def __init__(self,id,title,query,field,searchField,baseUrl,weight,contentType):
         """init"""          """init"""
         self.id=id          self.id=id
Line 91  class ECHO_sqlElement(SimpleItem): Line 213  class ECHO_sqlElement(SimpleItem):
         else:          else:
             self.searchField=searchField              self.searchField=searchField
         self.baseUrl=baseUrl          self.baseUrl=baseUrl
         self.weight=weight  
         self.content=contentType          self.content=contentType
   
     manage_options= SimpleItem.manage_options+(      manage_options= SimpleItem.manage_options+(
Line 123  class ECHO_sqlElement(SimpleItem): Line 245  class ECHO_sqlElement(SimpleItem):
     def changeECHO_sqlElementForm(self):      def changeECHO_sqlElementForm(self):
         """change"""          """change"""
                   
         pt=PageTemplateFile('Products/ECHO_content/zpt/changeECHO_sqlElement.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeECHO_sqlElement.zpt')).__of__(self)
         return pt()          return pt()
   
     def changeECHO_sqlElement(self,title,query,field,searchField,baseUrl,weight,contentType,RESPONSE=None):      def changeECHO_sqlElement(self,title,query,field,searchField,baseUrl,weight,contentType,RESPONSE=None):
Line 139  class ECHO_sqlElement(SimpleItem): Line 261  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):      try:    
         return self.search(var=self.query)          searchQuery=ZSQLExtendFolder.ZSQLSimpleSearch
       except:
           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 für navigation"""
           
         records=self.searchQuery()          records=self.searchQuery()
         
           
         if not records:          if not records:
             return []              return []
         else:          else:
Line 160  class ECHO_sqlElement(SimpleItem): Line 287  class ECHO_sqlElement(SimpleItem):
   
 def manage_addECHO_sqlElementForm(self):  def manage_addECHO_sqlElementForm(self):
     """Form for adding"""      """Form for adding"""
     pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_sqlElement.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_sqlElement.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_addECHO_sqlElement(self,id,title,query,field,searchField,baseUrl,weight,contentType,RESPONSE=None):  def manage_addECHO_sqlElement(self,id,title,query,field,searchField,baseUrl,weight,contentType,RESPONSE=None):
Line 171  def manage_addECHO_sqlElement(self,id,ti Line 298  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_pageTemplateWeightForm'},          {'label':'Main Config','action':'changeECHO_pageTemplateMainForm'},
           {'label':'Graphic Coords','action':'ECHO_graphicEntry'},
         )          )
   
       security.declarePublic('content_html')
   
       
     def content_html(self):      def content_html(self):
     """content_html"""      """content_html"""
     return content_html(self,'pageTemplate')      return content_html(self,'pageTemplate')
   
     def changeECHO_pageTemplateWeightForm(self):      def changeECHO_pageTemplateMainForm(self):
         """change"""          """change"""
         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeECHO_pageTemplateMain.zpt')).__of__(self)
         return pt()          return pt()
   
     def changeECHO_pageTemplateWeight(self,weight,contentType,label,RESPONSE=None):      def changeECHO_pageTemplateMain(self,weight,contentType,label,description,RESPONSE=None,isAlwaysClickable=None,suffix=None,prefix=None):
         """change"""          """change"""
         self.weight=weight          self.weight=weight
         self.contentType=contentType          self.contentType=contentType
         self.label=label          self.label=label
           self.description=description
           self.isAlwaysClickable=isAlwaysClickable
           self.suffix=suffix
           self.prefix=prefix
                   
         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 214  class ECHO_pageTemplate(ZopePageTemplate Line 345  class ECHO_pageTemplate(ZopePageTemplate
             return 0              return 0
                   
     def getcontentType(self):      def getcontentType(self):
         """get weight"""          """get contentType"""
         if hasattr(self,'weight'):          if hasattr(self,'contentType'):
             return self.weight              return self.contentType
         else:          else:
             return 0              return 0
   
Line 232  class ECHO_pageTemplate(ZopePageTemplate Line 363  class ECHO_pageTemplate(ZopePageTemplate
   
 def manage_addECHO_pageTemplateForm(self):  def manage_addECHO_pageTemplateForm(self):
     """Form for adding"""      """Form for adding"""
     pt=PageTemplateFile('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 264  def manage_addECHO_pageTemplate(self, id Line 395  def manage_addECHO_pageTemplate(self, id
         self._setObject(id, zpt)          self._setObject(id, zpt)
         ob = getattr(self, id)          ob = getattr(self, id)
         setattr(ob,'weight',weight)          setattr(ob,'weight',weight)
           setattr(ob,'label',label)
         if title:          if title:
             ob.pt_setTitle(title)              ob.pt_setTitle(title)
                   
Line 282  class ECHO_navigation(Folder): Line 414  class ECHO_navigation(Folder):
     """Navigations Element"""      """Navigations Element"""
     meta_type="ECHO_Navigation"      meta_type="ECHO_Navigation"
   
     displayedMetaTypes=displayTypes      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>"):
           """formatiert liste im str"""
           if list:
                   return re.sub(search,replace,list)
           else:
                   return 
   
       def ECHO_cacheManageForm(self):
               """change form"""
               pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ECHO_cacheManageForm')).__of__(self)
               pt.content_type="text/html"
               return pt()
   
       def ECHO_cacheManage(self,cacheManagerName=None,deleteCache=None, activateCache=None,RESPONSE=None):
               """cachemanager"""
               if cacheManagerName=="": chacheManagerName=None
               
               self.cacheManagerName=cacheManagerName
               self.setCache(managerName=cacheManagerName)
               
               if deleteCache:
                   try:
                       self.deleteCache()
                   except:
                       for roots in self.ZopeFind(self,obj_metatypes=['ECHO_root'],search_sub=1):
                           roots[1].deleteCache()
                       
   
               self.activateCache=activateCache
   
               if RESPONSE is not None:
                       RESPONSE.redirect('manage_main')
           
       def setCache(self,obj=None,RESPONSE=None,managerName='CacheManager'):
           """setze alle collections auf cache = CacheManager"""
   
   
           if not obj:
               obj = self
               
           entries=obj.ZopeFind(obj,obj_metatypes=['ECHO_collection','VLP_resource'],search_sub=1)
   
           for entry in entries:
               entry[1].ZCacheable_setManagerId(managerName)
   
           
           return "changed all CM in: "+self.title
   
       
   
       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 293  class ECHO_navigation(Folder): Line 504  class ECHO_navigation(Folder):
         self.id=id          self.id=id
         self.title=title          self.title=title
         self.pathToHierarchy=pathToHierarchy          self.pathToHierarchy=pathToHierarchy
           self.displayedMetaTypes=displayTypes
   
     manage_options = Folder.manage_options+(      manage_options = Folder.manage_options+(
         {'label':'Main Config','action':'ECHO_navigationConfigForm'},          {'label':'Main Config','action':'ECHO_navigationConfigForm'},
           {'label':'Cache','action':'ECHO_cacheManageForm'},
   
         )          )
       displayedMetaTypes=displayTypes
   
     def ECHO_navigationConfigForm(self):      def ECHO_navigationConfigForm(self):
         """configForm"""          """configForm"""
         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_navigation.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeECHO_navigation.zpt')).__of__(self)
         return pt()          return pt()
           
     def ECHO_navigationConfig(self,title,pathToHierarchy,RESPONSE=None):      def ECHO_navigationConfig(self,title,pathToHierarchy,displayedMetaTypes=displayTypes,RESPONSE=None):
         """config"""          """config"""
         self.title=title          self.title=title
         self.pathToHierarchy=pathToHierarchy          self.pathToHierarchy=pathToHierarchy
           self.displayedMetaTypes=toList(displayedMetaTypes)[0:]
   
   
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
Line 331  class ECHO_navigation(Folder): Line 548  class ECHO_navigation(Folder):
         temp=re.sub("/",".",temp)          temp=re.sub("/",".",temp)
         temp="self.aq_parent"+temp          temp="self.aq_parent"+temp
                   
           
         objtemp=eval(temp)          objtemp=eval(temp)
         nav={}          nav={}
         obj=objtemp  
   
           #check if cash is enabled and if already exists and if not empty
           if getattr(self,'_v_hash',None) and getattr(self,'activateCache',None) and self._v_hash.get(str(depth),None):
                   
         for keys in obj.__dict__.keys():             return self._v_hash[str(depth)]
             x=getattr(obj,keys)  
             if hasattr(x,"meta_type"):  
   
                 if x.meta_type in self.displayedMetaTypes:          # if not generate new hash
           obj=objtemp      
                                         
           for keys in obj.ZopeFind(obj,obj_metatypes=self.displayedMetaTypes):
               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)
                     else:                      else:
                         nav[x.getId()]=(None,x)                          nav[x.getId()]=(None,x)
                                           
           #store in cache if activated
           if getattr(self,'activateCache',None):
               
               try:
                   self._v_hash[str(depth)]={}
               except:
                   self._v_hash={}
                   self._v_hash[str(depth)]={}
   
               for x in nav.keys():
                   self._v_hash[str(depth)][x]=nav[x]
   
         #print nav  
         return nav          return nav
   
     def barFromHash(self,hash,start=None,sortField=None,location=None):      def barFromHash(self,hash,start=None,sortField=None,location=None):
Line 358  class ECHO_navigation(Folder): Line 588  class ECHO_navigation(Folder):
         if not start:          if not start:
             temp=hash              temp=hash
             sortField="weight"              sortField="weight"
         else: # list mit pfad zum hash          else: # liste mit pfad zum hash
             temp=hash              temp=hash
             #print "HI",sortField              #print "HI",sortField
             if not sortField:              if not sortField:
Line 390  class ECHO_navigation(Folder): Line 620  class ECHO_navigation(Folder):
             #print "TEMP",temp,self.tempSorted(temp, field=sortField)              #print "TEMP",temp,self.tempSorted(temp, field=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") or (temp[x][1].meta_type=="ECHO_ZCatalogElement"):
               
                     for z in temp[x][1].getNavList():                      for z in temp[x][1].getNavList():
                         listNav.append((z[0],z[1],None))                          listNav.append((z[0],z[1],None,'',''))
               
                 else:                  else:
                     # 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=='':  
                             label=temp[x][1].label.encode('utf-8')  
                                                           
                           if not temp[x][1].label=='':
                               try:
                                   label=temp[x][1].getLabel()
                               except:
                                   label=temp[x][1].label
                         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')                            
   
                     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]))                              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]))                          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','')))
         #print self.getId(),start  
         #print listNav  
   
         #html=""  
         #for k in listNav:  
         #    print k  
         #    html=html+"<a href='%s'>%s</a>   "% (self.absolute_url()+createPath(k[1][1].absolute_url()),k[0])  
   
         return listNav          return listNav
   
Line 427  class ECHO_navigation(Folder): Line 658  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 443  class ECHO_navigation(Folder): Line 677  class ECHO_navigation(Folder):
                           
     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])  
           testStr=re.sub("/index_html",'',self.REQUEST.get('URL',''))
   
           #falls exakte Übereinstimmung dann immer 1
           if (testStr==item[1]) and (self.REQUEST.get('QUERY_STRING','')==''):
               
               return 1
              
           found=re.search("\?(.*)",item[1])
           
         if found:          if found:
             temp=re.sub(" ","%20",found.group(0))              temp=re.sub(" ","%20",found.group(0))
             
             #print temp+"::"+self.REQUEST['QUERY_STRING']              #print temp+"::"+self.REQUEST['QUERY_STRING']
             if ("?"+self.REQUEST['QUERY_STRING'])==temp:              if ("?"+self.REQUEST['QUERY_STRING'])==temp:
                   if getattr(item[2],'isAlwaysClickable',None): #immer auswaehlbar?
                   
                       return 2
                   else:
                       return 1
   
           if (getattr(item[2],'meta_type','')=="ECHO_pageTemplate") and (re.search(item[1],self.REQUEST['URL'])):
               if getattr(item[2],'isAlwaysClickable',None): #immer auswaehlbar?
                   
                   return 2
               else:
                 return 1                  return 1
   
         if re.search(item[1]+"/",self.REQUEST['URL']):          if re.search(item[1]+"/",self.REQUEST['URL']):
               if getattr(item[2],'isAlwaysClickable',None): #immer auswaehlbar?
                   
                   return 2
               else:
             return 1              return 1
         else:          else:
             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"):
                   
         """Generate Buttons"""          """Generate Buttons"""
Line 535  class ECHO_navigation(Folder): Line 803  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']
Line 614  class ECHO_navigation(Folder): Line 882  class ECHO_navigation(Folder):
   
 def manage_addECHO_navigationForm(self):  def manage_addECHO_navigationForm(self):
     """Form for adding"""      """Form for adding"""
     pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_navigation.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'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):

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


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