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