subsite_navigation::get_pageflow_struct (public)
subsite_navigation::get_pageflow_struct [ -subsite_id subsite_id ] \ [ -initial_pageflow initial_pageflow ] \ [ -show_applications_p show_applications_p ] \ [ -no_tab_application_list no_tab_application_list ]
Defined in packages/acs-subsite/tcl/subsite-navigation-procs.tcl
Defines the page flow structure.
- Switches:
- -subsite_id
(optional)- The package id of the subsite we're interested in (defaults to current)
- -initial_pageflow
(optional)- Add these subsections before computing the rest of the page flow
- -show_applications_p
(defaults to"1"
) (optional)- If true, autogenerate tabs for applications (not declared boolean because the tabbed master takes this from a package parameter)
- -no_tab_application_list
(optional)- A list of application package keys to ignore when autogenerating tabs for applications
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Source code: if { ![string is list $initial_pageflow]} { ns_log Warning "subsite_navigation: ignoring invalid initial_pageflow: $initial_pageflow" set initial_pageflow "" } if { ![string is list $no_tab_application_list]} { ns_log Warning "subsite_navigation: ignoring invalid no_tab_application_list: $no_tab_application_list" set no_tab_application_list "" } if {$subsite_id eq ""} { set subsite_id [ad_conn subsite_id] } set pageflow $initial_pageflow set subsite_node_id [site_node::get_node_id_from_object_id -object_id $subsite_id] set subsite_url [site_node::get_element -node_id $subsite_node_id -element url] set user_id [ad_conn user_id] set admin_p [permission::permission_p -object_id [site_node::closest_ancestor_package -include_self -node_id $subsite_node_id -package_key [subsite::package_keys] -url [ad_conn url]] -privilege admin -party_id [ad_conn untrusted_user_id]] set show_member_list_to [parameter::get -parameter "ShowMembersListTo" -package_id $subsite_id -default 2] if { $admin_p || ($user_id != 0 && $show_member_list_to == 1) || $show_member_list_to == 0 } { lappend pageflow {*}[subsite_navigation::get_pageflow_from_parameter -subsite_id $subsite_id -parameter MembersViewNavbarTabsList] } if { $show_applications_p } { set index_redirect_url [parameter::get -parameter "IndexRedirectUrl" -package_id $subsite_id] set index_internal_redirect_url [parameter::get -parameter "IndexInternalRedirectUrl" -package_id $subsite_id] regsub {(.*)/packages} $index_internal_redirect_url "" index_internal_redirect_url regexp {(/[-[:alnum:]]+/)(.*)$} $index_internal_redirect_url dummy index_internal_redirect_url set child_urls [lsort -ascii [site_node::get_children -node_id $subsite_node_id -package_type apm_application]] foreach child_url $child_urls { array set child_node [site_node::get_from_url -exact -url $child_url] if { $child_url ne $index_redirect_url && $child_url ne $index_internal_redirect_url && $child_node(package_key) ni $no_tab_application_list } { lappend pageflow $child_node(name) [list label $child_node(instance_name) folder $child_node(name) url {} selected_patterns *] } } } if { $admin_p } { lappend pageflow {*}[subsite_navigation::get_pageflow_from_parameter -subsite_id $subsite_id -parameter AdminNavbarTabsList] } return $pageflowXQL Not present: Generic, PostgreSQL, Oracle