Index: openacs-4/packages/lorsm/www/delivery/delivery-progress-bar.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/delivery/delivery-progress-bar.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/lorsm/www/delivery/delivery-progress-bar.tcl 4 Dec 2006 18:43:23 -0000 1.6
+++ openacs-4/packages/lorsm/www/delivery/delivery-progress-bar.tcl 6 Apr 2007 19:30:21 -0000 1.7
@@ -6,10 +6,14 @@
{__include ""}
{__include_vars ""}
{next_item_id ""}
+ track_id:optional
} -properties {
} -validate {
} -errors {
}
+
+set track_id [ad_get_client_property lorsm studenttrack]
+ns_log notice "DAVEB LORSM BEFORE TRACK_ID='${track_id}'"
if {![info exists man_id] || $man_id eq ""} {
set man_id [ad_get_client_property lorsm man_id]
}
@@ -21,17 +25,7 @@
set user_id [ad_conn user_id]
set lorsm_url [dotlrn_community::get_community_url $community_id]lorsm/delivery
-# Student tracking
-set package_id [ad_conn package_id]
-#if {[lorsm::track::istrackable -course_id $man_id -package_id $package_id]} {
-
-# set track_id [lorsm::track::new \
-\# -user_id $user_id \
-\# -community_id $community_id \
-\# -course_id $man_id]
-#} else {
- set track_id 0
-#}
+set package_id [site_node::get_element -url $lorsm_url -element package_id]
# return_url
set return_url [dotlrn_community::get_community_url [dotlrn_community::get_community_id]]
@@ -51,45 +45,84 @@
limit 1
} -default ""]
-
set first_item_id [lindex $item_list 0]
set first_item_url ""
-#if {$item_id eq ""} {
-# set item_id $first_item_id
-# ad_returnredirect [export_vars -base ${lorsm_url}/record-view {man_id item_id}]
-# ad_script_abort
-#}
-#set curr_index [expr [lsearch -exact $item_list $last_item_viewed]]
set curr_index [expr [lsearch -exact $item_list $item_id]]
+set next_link_text [_ lorsm.Next]
+set track_p 1
+
if {$curr_index < 0} {
# start course
# we want the next_url to be the first item
set curr_index -1
- set __include "/packages/lorsm/lib/start"
+ # do we have a custom start page?
+ set item_id [lorsm::get_custom_page_ims_item_id -man_id $man_id -type start]
+ if {$item_id eq ""} {
+ set __include "/packages/lorsm/lib/start"
+ set page_title [lorsm::get_course_name -manifest_id $man_id]
+ } else {
+ ad_set_client_property lorsm ims_id $item_id
+ set __include /packages/lorsm/lib/default
+ set page_title [db_string get_title "select item_title from ims_cp_items where ims_item_id=:item_id" -default ""]
+ }
+ set next_link_text [_ lorsm.Begin]
+ set track_p 0
}
-
+# Student tracking
+if {[lorsm::track::istrackable -course_id $man_id -package_id $package_id] \
+ && $track_p && ($track_id == 0 || $track_id eq "")} {
+
+ set track_id [lorsm::track::new \
+ -user_id $user_id \
+ -community_id $community_id \
+ -course_id $man_id]
+ ad_set_client_property lorsm studenttrack $track_id
+} elseif {$track_id eq ""} {
+ set track_id 0
+}
+ns_log notice "DAVEB LORSM AFTER TRACK_ID='${track_id}'"
set prev_item_id [lindex $item_list [expr $curr_index - 1]]
set next_item_id [lindex $item_list [expr $curr_index + 1]]
set prev_url ""
-set next_url [export_vars -base "${lorsm_url}/record-view" -url {{item_id $next_item_id} man_id}]
+set next_url [export_vars -base "${lorsm_url}/record-view" -url {{item_id $next_item_id} track_id man_id}]
set prev_title [db_string get_title "select item_title from ims_cp_items where ims_item_id=:prev_item_id" -default ""]
set next_title [db_string get_title "select item_title from ims_cp_items where ims_item_id=:next_item_id" -default ""]
set current_title [db_string get_title "select item_title from ims_cp_items where ims_item_id=:item_id" -default ""]
-set progress_list [template::util::number_list [llength $item_list] 1]
-set progress_index [expr {$curr_index + 1}]
+set progress_total_pages [llength $item_list]
+set progress_current_page [expr {$curr_index + 1}]
set last_item_p [expr {$curr_index == [expr {[llength $item_list] - 1}]}]
if {[string match "*assessment*" $__include] && ![string match "*assessment/lib/session*" $__include]} {
set show_next 0
+ set header_stuff {
+ }
} else {
if { $next_item_id eq "" } {
- set next_url [dotlrn_community::get_community_url [dotlrn_community::get_community_id]]
+ # check for end page
+ set next_url ${lorsm_url}/end
+ set last_item_p 0
}
-
+ set header_stuff ""
set show_next 1
}
+if {$__include eq "/packages/lorsm/lib/end"} {
+ set item_id [lorsm::get_custom_page_ims_item_id -man_id $man_id -type end]
+ if {$item_id ne ""} {
+ ad_set_client_property lorsm ims_id $item_id
+ set __include /packages/lorsm/lib/default
+ set page_title [db_string get_title "select item_title from ims_cp_items where ims_item_id=:item_id" -default ""]
+ }
+ set next_url [export_vars -base exit {man_id track_id return_url}]
+ set last_item_p 1
+
+}
+
set include_content [template::adp_include $__include $__include_vars]
-regsub -all {} $include_content {} include_content
\ No newline at end of file
+regsub -all {} $include_content {} include_content
+
+if {$current_title ne ""} {
+ set page_title $current_title
+}
\ No newline at end of file