source: products/qSiloGroup/tags/0.1.3/skins/qSiloGroup/silo_navigation_edit.cpy @ 1

Last change on this file since 1 was 1, checked in by myroslav, 19 years ago

Building directory structure

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1## Controller Python Script "silo_navigation_edit"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind state=state
7##bind subpath=traverse_subpath
8##title=Update Folder Property
9##parameters= menu_ids=''
10#
11
12from Products.CMFCore.utils import getToolByName
13
14silo_items = []
15for id in menu_ids:
16    default_page = ''
17    if getattr(context.aq_explicit, id, None):
18        item = getattr(context.aq_explicit, id)
19    else:
20        continue
21    if item.portal_type in ['Folder', 'Large Plone Folder', 'CMFFolder']:
22        ids = {}
23        for i in item.objectIds():
24                ids[i] = 1
25        pages = item.getProperty('default_page', [])
26        if isinstance(pages, basestring):
27            pages = [pages]
28        for page in pages:
29            if page and ids.has_key(page):
30                default_page = page
31                break
32        if default_page == '':
33            site_properties = getToolByName(context, 'portal_properties').site_properties
34            for page in site_properties.getProperty('default_page', []):
35                if page and ids.has_key(page):
36                    default_page = page
37                    break
38    silo_items.append(id+'|'+default_page+'|'+context.REQUEST.get(id+'_title',''))
39if context.hasProperty('silo_items'):
40    context.manage_changeProperties({'silo_items': silo_items})
41else:
42    context.manage_addProperty('silo_items', silo_items, type='lines')
43
44return state.set(status='success', portal_status_message='Silo Navigation property have been saved.')
Note: See TracBrowser for help on using the repository browser.