*/ use \ChamiloSession as Session; $this_section = SECTION_COURSES; //@todo who turns on $lp_controller_touched? if (empty($lp_controller_touched) || $lp_controller_touched != 1) { header('location: lp_controller.php?action=list'); } require_once 'back_compat.inc.php'; $courseDir = api_get_course_path().'/scorm'; $baseWordDir = $courseDir; require_once 'learnpathList.class.php'; require_once 'learnpath.class.php'; require_once 'learnpathItem.class.php'; /** * Display initialisation and security checks */ // Extra javascript functions for in html head: $htmlHeadXtra[] = ""; $nameTools = get_lang('LearningPaths'); event_access_tool(TOOL_LEARNPATH); api_protect_course_script(); //if (!$is_allowed_in_course) api_not_allowed(); /** * Display */ /* Require the search widget and prepare the header with its stuff. */ if (api_get_setting('search_enabled') == 'true') { require api_get_path(LIBRARY_PATH).'search/search_widget.php'; search_widget_prepare($htmlHeadXtra); } Display::display_header($nameTools, 'Path'); $current_session = api_get_session_id(); /* Introduction section (editable by course admins) */ Display::display_introduction_section(TOOL_LEARNPATH, array( 'CreateDocumentWebDir' => api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/', 'CreateDocumentDir' => '../../courses/'.api_get_course_path().'/document/', 'BaseHref' => api_get_path(WEB_COURSE_PATH).api_get_course_path().'/' )); $is_allowed_to_edit = api_is_allowed_to_edit(null, true); if ($is_allowed_to_edit) { /* DIALOG BOX SECTION */ if (!empty($dialog_box)) { switch ($_GET['dialogtype']) { case 'confirmation': Display::display_confirmation_message($dialog_box); break; case 'error': Display::display_error_message($dialog_box); break; case 'warning': Display::display_warning_message($dialog_box); break; default: Display::display_normal_message($dialog_box); break; } } if (api_failure::get_last_failure()) { Display::display_normal_message(api_failure::get_last_failure()); } echo '
'.get_lang('Title').' | '; echo ''.get_lang('PublicationDate').' | '; echo ''.get_lang('ExpirationDate').' | '; echo ''.get_lang('Progress')." | "; echo ''.get_lang('AuthoringOptions')." | "; } else { echo ''.get_lang('Title').' | '; echo ''.get_lang('Progress')." | "; echo ''.get_lang('Actions')." | "; } echo '
---|---|---|---|---|---|---|---|
'.Display::return_icon('learnpath.png', get_lang('LPName'), '', ICON_SIZE_SMALL).' '.$my_title.''.$session_img.$extra." | "; $dsp_desc = ''; $dsp_export = ''; $dsp_build = ''; $dsp_delete = ''; $dsp_visible = ''; $dsp_default_view = ''; $dsp_debug = ''; $dsp_order = ''; $progress = learnpath::get_db_progress($id, api_get_user_id(), '%', '', false, api_get_session_id()); if ($is_allowed_to_edit) { $dsp_progress = ''.$progress.' | '; } else { $dsp_progress = ''.learnpath::get_progress_bar('%', learnpath::get_db_progress($id, api_get_user_id(), '%', '', false, api_get_session_id())).' | '; } $dsp_edit = ''; $dsp_edit_close = ' | '; $token_parameter = "&sec_token=$token"; if ($is_allowed_to_edit) { // EDIT LP if ($current_session == $details['lp_session']) { $dsp_edit_lp = ''.Display::return_icon('settings.png', get_lang('CourseSettings'), '', ICON_SIZE_SMALL).''; } else { $dsp_edit_lp = Display::return_icon('settings_na.png', get_lang('CourseSettings'), '', ICON_SIZE_SMALL); } // BUILD if ($current_session == $details['lp_session']) { if ($details['lp_type'] == 1 || $details['lp_type'] == 2) { $dsp_build = ''.Display::return_icon('edit.png', get_lang('LearnpathEditLearnpath'), '', ICON_SIZE_SMALL).''; } else { $dsp_build = Display::return_icon('edit_na.png', get_lang('LearnpathEditLearnpath'), '', ICON_SIZE_SMALL); } } else { $dsp_build = Display::return_icon('edit_na.png', get_lang('LearnpathEditLearnpath'), '', ICON_SIZE_SMALL); } /* VISIBILITY COMMAND */ // Session test not necessary if we want to show base course learning paths inside the session (see http://support.chamilo.org/projects/chamilo-18/wiki/Tools_and_sessions). //if ($current_session == $details['lp_session']) { if ($details['lp_visibility'] == 0) { $dsp_visible = "".Display::return_icon('invisible.png', get_lang('Show'), '', ICON_SIZE_SMALL).""; } else { $dsp_visible = "".Display::return_icon('visible.png', get_lang('Hide'), '', ICON_SIZE_SMALL).""; } //} else { // $dsp_visible = ''; //} /* PUBLISH COMMAND */ if ($current_session == $details['lp_session']) { if ($details['lp_published'] == "i") { $dsp_publish = "". Display::return_icon('lp_publish_na.png', get_lang('LearnpathPublish'), '', ICON_SIZE_SMALL).""; } else { $dsp_publish = "".Display::return_icon('lp_publish.png', get_lang('LearnpathDoNotPublish'), '', ICON_SIZE_SMALL).""; } } else { $dsp_publish = Display::return_icon('lp_publish_na.png', get_lang('LearnpathDoNotPublish'), '', ICON_SIZE_SMALL); } /* MULTIPLE ATTEMPTS OR SERIOUS GAME MODE SERIOUSGAME MODE is a special mode where : * If a user exits the learning path before finishing it, he comes back where he left next time he tries * When lp status is completed, user can still modify the attempt (adds/time change score, and browse it) * It is thus a mix betwenn multiple attempt and mono attempt */ if ($current_session == $details['lp_session']) { if ($details['seriousgame_mode'] == 1 && $details['lp_prevent_reinit'] == 1) { //seriousgame mode | next = single $dsp_reinit = ''. Display::return_icon('reload.png', get_lang('PreventMultipleAttempts'), '', ICON_SIZE_SMALL). ''; } if ($details['seriousgame_mode'] == 0 && $details['lp_prevent_reinit'] == 1) { //single mode | next = multiple $dsp_reinit = ''. Display::return_icon('reload_na.png', get_lang('AllowMultipleAttempts'), '', ICON_SIZE_SMALL). ''; } if ($details['seriousgame_mode'] == 0 && $details['lp_prevent_reinit'] == 0) { //multiple mode | next = seriousgame $dsp_reinit = ''.Display::return_icon('reload.png', get_lang('AllowMultipleAttempts'), '', ICON_SIZE_SMALL). ''; } } else { $dsp_reinit = Display::return_icon('reload_na.png', get_lang('AllowMultipleAttempts'), '', ICON_SIZE_SMALL); } /* SCREEN LP VIEW */ if ($current_session == $details['lp_session']) { switch ($details['lp_view_mode']) { case 'fullscreen': $dsp_default_view = ''. Display::return_icon('view_fullscreen.png', get_lang('ViewModeFullScreen'), '', ICON_SIZE_SMALL).''; break; case 'embedded': $dsp_default_view = ''. Display::return_icon('view_left_right.png', get_lang('ViewModeEmbedded'), '', ICON_SIZE_SMALL).''; break; case 'embedframe': $dsp_default_view = ''. Display::return_icon('view_nofullscreen.png', get_lang('ViewModeEmbedFrame'), '', ICON_SIZE_SMALL).''; break; case 'impress': $dsp_default_view = ''. Display::return_icon('window_list_slide.png', get_lang('ViewModeImpress'), '', ICON_SIZE_SMALL).''; break; } } else { if ($details['lp_view_mode'] == 'fullscreen') { $dsp_default_view = Display::return_icon('view_fullscreen_na.png', get_lang('ViewModeEmbedded'), '', ICON_SIZE_SMALL); } else { $dsp_default_view = Display::return_icon('view_left_right_na.png', get_lang('ViewModeEmbedded'), '', ICON_SIZE_SMALL); } } /* DEBUG */ if ($test_mode == 'test' or api_is_platform_admin()) { if ($details['lp_scorm_debug'] == 1) { $dsp_debug = ''. Display::return_icon('bug.png', get_lang('HideDebug'), '', ICON_SIZE_SMALL).''; } else { $dsp_debug = ''. Display::return_icon('bug_na.png', get_lang('ShowDebug'), '', ICON_SIZE_SMALL).''; } } /* Export */ if ($details['lp_type'] == 1) { $dsp_disk = Display::url(Display::return_icon('cd.gif', get_lang('Export'), array(), ICON_SIZE_SMALL), api_get_self()."?".api_get_cidreq()."&action=export&lp_id=$id"); } elseif ($details['lp_type'] == 2) { $dsp_disk = Display::url(Display::return_icon('cd.gif', get_lang('Export'), array(), ICON_SIZE_SMALL), api_get_self()."?".api_get_cidreq()."&action=export&lp_id=$id&export_name=".replace_dangerous_char($name, 'strict').".zip"); } else { $dsp_disk = Display::return_icon('cd_gray.gif', get_lang('Export'), array(), ICON_SIZE_SMALL); } //Copy $copy = Display::url(Display::return_icon('cd_copy.png', get_lang('Copy'), array(), ICON_SIZE_SMALL), api_get_self()."?".api_get_cidreq()."&action=copy&lp_id=$id"); /* Auto Lunch LP code */ $lp_auto_lunch_icon = ''; if (api_get_course_setting('enable_lp_auto_launch') == 1) { if ($details['autolaunch'] == 1 && $autolunch_exists == false) { $autolunch_exists = true; $lp_auto_lunch_icon = ' '; } else { $lp_auto_lunch_icon = ' '; } } //if (api_get_setting('pdf_export_watermark_enable') == 'true') { //Export to PDF $export_icon = ' '.Display::return_icon('pdf.png', get_lang('ExportToPDFOnlyHTMLAndImages'), '', ICON_SIZE_SMALL).''; //} /* DELETE COMMAND */ if ($current_session == $details['lp_session']) { $dsp_delete = "". Display::return_icon('delete.png', get_lang('LearnpathDeleteLearnpath'), '', ICON_SIZE_SMALL).''; } else { $dsp_delete = Display::return_icon('delete_na.png', get_lang('LearnpathDeleteLearnpath'), '', ICON_SIZE_SMALL); } /* COLUMN ORDER */ // Only active while session mode is not active if ($current_session == 0) { if ($details['lp_display_order'] == 1 && $max != 1) { $dsp_order .= ' '.Display::return_icon('down.png', get_lang('MoveDown'), '', ICON_SIZE_SMALL).' '; } elseif ($current == $max - 1 && $max != 1) { $dsp_order .= ' '.Display::return_icon('up.png', get_lang('MoveUp'), '', ICON_SIZE_SMALL).''; } elseif ($max == 1) { $dsp_order = ''; } else { $dsp_order .= ''. Display::return_icon('down.png', get_lang('MoveDown'), '', ICON_SIZE_SMALL).''; $dsp_order .= ''. Display::return_icon('up.png', get_lang('MoveUp'), '', ICON_SIZE_SMALL).''; } } if ($is_allowed_to_edit) { $start_time = Display::tag('td', Display::div($start_time, array('class' => 'small'))); $end_time = Display::tag('td', Display::div($end_time, array('class' => 'small'))); } else { $start_time = $end_time = ''; } } else { // end if ($is_allowedToEdit) //Student $export_icon = ' '.Display::return_icon('pdf.png', get_lang('ExportToPDF'), '', ICON_SIZE_SMALL).''; } echo $dsp_line.$start_time.$end_time.$dsp_progress.$dsp_desc.$dsp_export.$dsp_edit.$dsp_build.$dsp_edit_lp.$dsp_visible.$dsp_publish.$dsp_reinit. $dsp_default_view.$dsp_debug.$dsp_disk.$copy.$lp_auto_lunch_icon.$export_icon.$dsp_delete.$dsp_order.$dsp_edit_close; echo "