Index: openacs-4/packages/theme-zen/tcl/navigation-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/theme-zen/tcl/navigation-procs.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/theme-zen/tcl/navigation-procs.tcl 15 May 2007 20:14:56 -0000 1.2
+++ openacs-4/packages/theme-zen/tcl/navigation-procs.tcl 7 Oct 2007 22:37:05 -0000 1.3
@@ -30,60 +30,68 @@
namespace eval zen {
ad_proc -public portal_navbar {
-
+
} {
- A helper procedure that generates the Navbar, ie the tabs,
- for dotlrn. It is called from the zen-master template.
+ A helper procedure that generates the Navbar, ie the tabs,
+ for dotlrn. It is called from the zen-master template.
} {
- set current_url [ad_conn url]
+ set current_url [ad_conn url]
set dotlrn_url [dotlrn::get_url]
- # Set up some basic stuff
- set community_id [dotlrn_community::get_community_id]
+ # Set up some basic stuff
+ set community_id [dotlrn_community::get_community_id]
- # Get user information
- set sw_admin_p 0
- set user_id [ad_conn user_id]
- set untrusted_user_id [ad_conn untrusted_user_id]
- if { $untrusted_user_id != 0 } {
- set user_name [person::name -person_id $untrusted_user_id]
- set pvt_home_url [ad_pvt_home]
- set pvt_home_name [_ acs-subsite.Your_Account]
- set logout_url [ad_get_logout_url]
-
- # Site-wide admin link
- set admin_url {}
-
- set sw_admin_p [acs_user::site_wide_admin_p -user_id $untrusted_user_id]
-
- if { $sw_admin_p } {
- set admin_url "/acs-admin/"
- set locale_admin_url "/acs-lang/admin"
- set dotlrn_admin_url "${dotlrn_url}/admin/"
- } else {
- set subsite_admin_p [permission::permission_p \
- -object_id [subsite::get_element -element object_id] \
- -privilege admin \
- -party_id $untrusted_user_id]
-
- if { $subsite_admin_p } {
- set admin_url "[subsite::get_element -element url]admin/"
- }
- }
- } else {
- set login_url [ad_get_login_url -return]
- set user_name {}
- }
-
- set navbar "
"
+ # Get user information
+ set sw_admin_p 0
+ set dotlrn_admin_p 0
+ set user_id [ad_conn user_id]
+ set untrusted_user_id [ad_conn untrusted_user_id]
+ if { $untrusted_user_id != 0 } {
+ set user_name [person::name -person_id $untrusted_user_id]
+ set pvt_home_url [ad_pvt_home]
+ set pvt_home_name [_ acs-subsite.Your_Account]
+ set logout_url [ad_get_logout_url]
+
+ # Site-wide admin link
+ set admin_url {}
+ set dotlrn_admin_url ""
+
+ set sw_admin_p [acs_user::site_wide_admin_p -user_id $untrusted_user_id]
+ set dotlrn_admin_p [permission::permission_p \
+ -party_id $user_id \
+ -object_id [dotlrn::get_package_id] \
+ -privilege admin]
+ if { $dotlrn_admin_p } {
+ set dotlrn_admin_url "${dotlrn_url}/admin/"
+ }
+
+ if { $sw_admin_p } {
+ set admin_url "/acs-admin/"
+ set locale_admin_url "/acs-lang/admin"
+ } else {
+ set subsite_admin_p [permission::permission_p \
+ -object_id [subsite::get_element -element object_id] \
+ -privilege admin \
+ -party_id $untrusted_user_id]
+
+ if { $subsite_admin_p } {
+ set admin_url "[subsite::get_element -element url]admin/"
+ }
+ }
+ } else {
+ set login_url [ad_get_login_url -return]
+ set user_name {}
+ }
+
+ set navbar ""
- set tabs_list [list]
+ set tabs_list [list]
set which_tab_selected -1
set which_tab 0
set home_tab -1
- foreach {url name accesskey} [parameter::get_from_package_key -package_key "theme-zen" -parameter "AdditionalNavbarTabs" -default ""] {
- lappend tabs_list [list $url $name $accesskey]
+ foreach {url name accesskey} [parameter::get_from_package_key -package_key "theme-zen" -parameter "AdditionalNavbarTabs" -default ""] {
+ lappend tabs_list [list $url $name $accesskey]
if { $current_url == $url ||
$current_url == "$dotlrn_url/index" && $name eq "#dotlrn.Home#" } {
set which_tab_selected $which_tab
@@ -92,17 +100,17 @@
set home_tab $which_tab
}
incr which_tab
- }
+ }
- if { $sw_admin_p } {
- lappend tabs_list [list $dotlrn_admin_url #dotlrn.Administration# #dotlrn.Administration_Accesskey#]
+ if { $dotlrn_admin_p } {
+ lappend tabs_list [list $dotlrn_admin_url #dotlrn.Administration# #dotlrn.Administration_Accesskey#]
if { [string first $dotlrn_admin_url $current_url] != -1 } {
set which_tab_selected $which_tab
}
incr which_tab
- }
+ }
- if { [exists_and_not_null community_id] } {
+ if { [exists_and_not_null community_id] } {
set type [dotlrn_community::get_community_type_from_community_id $community_id]
if { $type eq "dotlrn_community" || $type eq "dotlrn_pers_community" } {
set community_message_key "#dotlrn.subcommunities_pretty_name#"
@@ -115,16 +123,16 @@
set community_access_key #dotlrn.dotlrn_class_instance_access_key#
}
- if { ![parameter::get_from_package_key -package_key "theme-zen" -parameter "GenericCommunityTab" -default "0"] } {
- # show title of the community instead of community type
- # pretty name
- set community_message_key [dotlrn_community::get_community_name $community_id]
- }
+ if { ![parameter::get_from_package_key -package_key "theme-zen" -parameter "GenericCommunityTab" -default "0"] } {
+ # show title of the community instead of community type
+ # pretty name
+ set community_message_key [dotlrn_community::get_community_name $community_id]
+ }
- lappend tabs_list [list [dotlrn_community::get_community_url $community_id] $community_message_key $community_access_key]
+ lappend tabs_list [list [dotlrn_community::get_community_url $community_id] $community_message_key $community_access_key]
set which_tab_selected $which_tab
incr which_tab
- }
+ }
# DRB: If we haven't found a tab to select, use the previous value if one
# exists, otherwise don't select any tab. Don't write to the database for
@@ -133,37 +141,37 @@
if { $which_tab_selected == -1 } {
set which_tab_selected [ad_get_client_property dotlrn which_tab_selected]
} else {
- ad_set_client_property -persistent f dotlrn which_tab_selected $which_tab_selected
+ ad_set_client_property -persistent f dotlrn which_tab_selected $which_tab_selected
}
# DRB: Let the subnavbar proc know whether or not the home tab has been selected.
- ad_set_client_property -persistent f dotlrn home_tab_selected_p \
+ ad_set_client_property -persistent f dotlrn home_tab_selected_p \
[expr { $which_tab_selected == $home_tab }]
- ns_log Debug "TABS" $tabs_list
+ ns_log Debug "TABS" $tabs_list
# DRB: don't understand how the access keys were named in mark's template...
set which_tab 0
- foreach tab_entry $tabs_list {
+ foreach tab_entry $tabs_list {
foreach {url name accesskey} $tab_entry {}
- if { $which_tab == $which_tab_selected } {
- append navbar "\n- [lang::util::localize $name]
"
- } else {
- append navbar "\n- [lang::util::localize $name]
"
- }
- incr which_tab
- }
-
- append navbar "\n
"
+ if { $which_tab == $which_tab_selected } {
+ append navbar "\n- [lang::util::localize $name]
"
+ } else {
+ append navbar "\n- [lang::util::localize $name]
"
+ }
+ incr which_tab
+ }
+
+ append navbar "\n
"
}
ad_proc -public portal_subnavbar {
{-user_id:required}
{-control_panel_text:required}
- {-link_all 0}
+ {-link_all 0}
{-pre_html ""}
{-post_html ""}
} {
@@ -175,7 +183,7 @@
set dotlrn_url [dotlrn::get_url]
set community_id [dotlrn_community::get_community_id]
set control_panel_name control-panel
- set control_panel_url "$dotlrn_url/$control_panel_name"
+ set control_panel_url "$dotlrn_url/$control_panel_name"
if { $community_id eq "" } {
# We are not under a dotlrn community. However we could be
@@ -184,7 +192,7 @@
set link "[dotlrn::get_url]/"
if {[dotlrn::user_p -user_id $user_id] &&
- [ad_get_client_property dotlrn home_tab_selected_p] } {
+ [ad_get_client_property dotlrn home_tab_selected_p] } {
# this user is a dotlrn user, we've selected the home tab,
# show their personal portal subnavbar, including the control panel link
set portal_id [dotlrn::get_portal_id -user_id $user_id]
@@ -203,9 +211,9 @@
# some defaults
set text [dotlrn_community::get_community_header_name $community_id]
set control_panel_name one-community-admin
- # link is important : it sets the options_set value, which will be used later to select the current page
+ # link is important : it sets the options_set value, which will be used later to select the current page
set link [dotlrn_community::get_community_url $community_id]
- set control_panel_url "$link/$control_panel_name"
+ set control_panel_url "$link/$control_panel_name"
# figure out what this privs this user has on the community
set admin_p [dotlrn::user_can_admin_community_p \
@@ -238,37 +246,37 @@
}
#AG: This code belongs in the portal package, near portal::subnavbar. For display reasons we need to do this
- #as a ul instead of a table, which portal::subnavbar returns. Obviously we shouldn't be letting display-level
- #stuff decide where we put our code, but first we'll need to mod the portal package accordingly.
+ #as a ul instead of a table, which portal::subnavbar returns. Obviously we shouldn't be letting display-level
+ #stuff decide where we put our code, but first we'll need to mod the portal package accordingly.
# DRB: the portal navbar stuff should return multirows which are then formatted by
# the appropriate template, rather than include HTML as it does now.
- if { [catch {set page_num [ad_get_client_property dotlrn page_num]}] || $page_num eq "" || ![string is integer $page_num] } {
- set page_num [ns_queryget page_num]
- #Strip out extra anchors and other crud.
- #page_num will be empty_string for special pages like
- #My Space and Control Panel
- regsub -all {[^0-9]} $page_num {} page_num
- }
-
-
+ if { [catch {set page_num [ad_get_client_property dotlrn page_num]}] || $page_num eq "" || ![string is integer $page_num] } {
+ set page_num [ns_queryget page_num]
+ #Strip out extra anchors and other crud.
+ #page_num will be empty_string for special pages like
+ #My Space and Control Panel
+ regsub -all {[^0-9]} $page_num {} page_num
+ }
+
+
set subnavbar ""
- db_foreach list_page_nums_select {} {
- if {[string equal $page_num $sort_key]} {
- append subnavbar "\n$pretty_name "
- } else {
- append subnavbar "\n$pretty_name "
- }
- }
+ db_foreach list_page_nums_select {} {
+ if {[string equal $page_num $sort_key]} {
+ append subnavbar "\n$pretty_name "
+ } else {
+ append subnavbar "\n$pretty_name "
+ }
+ }
- if { $community_id ne "" && $admin_p } {
- if {[string match "*/one-community-admin*" [ad_conn url]]} {
- append subnavbar "\n[_ theme-zen.admin]"
- } else {
- append subnavbar "\n[_ theme-zen.admin]"
- }
- }
+ if { $community_id ne "" && $admin_p } {
+ if {[string match "*/one-community-admin*" [ad_conn url]]} {
+ append subnavbar "\n[_ theme-zen.admin]"
+ } else {
+ append subnavbar "\n[_ theme-zen.admin]"
+ }
+ }
if { $subnavbar eq "" } {
return ""