* @author Julio Montoya Bug fixing * * @package chamilo.course_progress */ // protect a course script api_protect_course_script(true); $token = Security::get_token(); $url_token = "&sec_token=".$token; $user_info = api_get_user_info(); $params = '&'.api_get_cidreq(); $tpl = new Template(get_lang('ThematicControl')); $toolbar = null; if (api_is_allowed_to_edit(null, true)) { switch ($action) { case 'thematic_add': case 'thematic_import_select': $actionLeft = ''; $actionLeft .= Display::return_icon( 'back.png', get_lang('BackTo').' '.get_lang('ThematicDetails'), '', ICON_SIZE_MEDIUM ); $actionLeft .= ''; break; case 'thematic_list': $actionLeft = ''. Display::return_icon('new_course_progress.png', get_lang('NewThematicSection'), '', ICON_SIZE_MEDIUM).''; break; case 'thematic_details': $actionLeft = ''. Display::return_icon('new_course_progress.png', get_lang('NewThematicSection'), '', ICON_SIZE_MEDIUM).''; $actionLeft .= ''. Display::return_icon('import_csv.png', get_lang('ImportThematic'), '', ICON_SIZE_MEDIUM).''; $actionLeft .= ''. Display::return_icon('export_csv.png', get_lang('ExportThematic'), '', ICON_SIZE_MEDIUM).''; $actionLeft .= ''. Display::return_icon('pdf.png', get_lang('ExportToPDF'), '', ICON_SIZE_MEDIUM).''; $actionLeft .= Display::url( Display::return_icon('export_to_documents.png', get_lang('ExportToDocArea'), [], ICON_SIZE_MEDIUM), api_get_self().'?'.api_get_cidreq().'&'.http_build_query(['action' => 'export_documents']).$url_token ); break; default: $actionLeft = ''. Display::return_icon( 'new_course_progress.png', get_lang('NewThematicSection'), '', ICON_SIZE_MEDIUM ).''; } $toolbar = Display::toolbarAction('thematic-bar', [$actionLeft]); } if ($action == 'thematic_list') { $table = new SortableTable( 'thematic_list', ['Thematic', 'get_number_of_thematics'], ['Thematic', 'get_thematic_data'] ); $parameters['action'] = $action; $table->set_additional_parameters($parameters); $table->set_header(0, '', false, ['style' => 'width:20px;']); $table->set_header(1, get_lang('Title'), false); if (api_is_allowed_to_edit(null, true)) { $table->set_header( 2, get_lang('Actions'), false, ['style' => 'text-align:center;width:40%;'] ); $table->set_form_actions(['thematic_delete_select' => get_lang('DeleteAllThematics')]); } $table->display(); } elseif ($action == 'thematic_details') { if (isset($_GET['thematic_plan_save_message']) && $_GET['thematic_plan_save_message'] == 'ok' ) { Display::addFlash( Display::return_message( get_lang('ThematicSectionHasBeenCreatedSuccessfull'), 'confirmation', false ) ); } if (isset($last_id) && $last_id) { $link_to_thematic_plan = ''. Display::return_icon('lesson_plan.png', get_lang('ThematicPlan'), ['style' => 'vertical-align:middle;float:none;'], ICON_SIZE_SMALL).''; $link_to_thematic_advance = ''. Display::return_icon('lesson_plan_calendar.png', get_lang('ThematicAdvance'), ['style' => 'vertical-align:middle;float:none;'], ICON_SIZE_SMALL).''; Display::addFlash(Display::return_message( get_lang('ThematicSectionHasBeenCreatedSuccessfull').'
'.sprintf(get_lang('NowYouShouldAddThematicPlanXAndThematicAdvanceX'), $link_to_thematic_plan, $link_to_thematic_advance), 'confirmation', false )); } if (empty($thematic_id)) { // display information $text = ''.get_lang('Information').': '; $text .= get_lang('ThematicDetailsDescription'); $message = Display::return_message($text, 'info', false); } $list = []; // Display thematic data if (!empty($thematic_data)) { // display progress foreach ($thematic_data as $thematic) { $list['id'] = $thematic['id']; $list['id_course'] = $thematic['c_id']; $list['id_session'] = $thematic['session_id']; $list['title'] = Security::remove_XSS($thematic['title'], STUDENT); $list['content'] = Security::remove_XSS($thematic['content'], STUDENT); $list['display_orden'] = $thematic['display_order']; $list['active'] = $thematic['active']; $my_thematic_id = $thematic['id']; $session_star = ''; if (api_is_allowed_to_edit(null, true)) { if (api_get_session_id() == $thematic['session_id']) { $session_star = api_get_session_image(api_get_session_id(), $user_info['status']); } } $tpl->assign('session_star', $session_star); //@todo add a validation in order to load or not course thematics in the session thematic $toolbarThematic = ''; if (api_is_allowed_to_edit(null, true)) { // Thematic title $toolbarThematic = Display::url( Display::return_icon( 'cd.png', get_lang('Copy'), null, ICON_SIZE_TINY ), 'index.php?'.api_get_cidreq().'&action=thematic_copy&thematic_id='.$my_thematic_id.$params.$url_token, ['class' => 'btn btn-default'] ); if (api_get_session_id() == 0) { if ($thematic['display_order'] > 1) { $toolbarThematic .= ' '. Display::return_icon('up.png', get_lang('Up'), '', ICON_SIZE_TINY).''; } else { $toolbarThematic .= '
'. Display::return_icon('up_na.png', ' ', '', ICON_SIZE_TINY).'
'; } if (isset($thematic['max_thematic_item']) && $thematic['display_order'] < $thematic['max_thematic_item']) { $toolbarThematic .= ' '. Display::return_icon('down.png', get_lang('Down'), '', ICON_SIZE_TINY).''; } else { $toolbarThematic .= '
'. Display::return_icon('down_na.png', ' ', '', ICON_SIZE_TINY).'
'; } } if (api_get_session_id() == $thematic['session_id']) { $toolbarThematic .= Display::url( Display::return_icon('pdf.png', get_lang('ExportToPDF'), null, ICON_SIZE_TINY), api_get_self().'?'.api_get_cidreq()."$url_token&".http_build_query([ 'action' => 'export_single_thematic', 'thematic_id' => $my_thematic_id, ]), ['class' => 'btn btn-default'] ); $toolbarThematic .= Display::url( Display::return_icon( 'export_to_documents.png', get_lang('ExportToDocArea'), [], ICON_SIZE_TINY ), api_get_self().'?'.api_get_cidreq().$url_token.'&'.http_build_query( ['action' => 'export_single_documents', 'thematic_id' => $my_thematic_id] ), ['class' => 'btn btn-default'] ); $toolbarThematic .= '' .Display::return_icon('edit.png', get_lang('Edit'), '', ICON_SIZE_TINY).''; $toolbarThematic .= '' .Display::return_icon('delete.png', get_lang('Delete'), '', ICON_SIZE_TINY).''; } } if (empty($thematic_plan_div[$thematic['id']])) { $list['thematic_plan'] = null; } else { $list['thematic_plan'] = $thematic_plan_div[$thematic['id']]; } $list['thematic_advance'] = isset($thematic_advance_data[$thematic['id']]) ? $thematic_advance_data[$thematic['id']] : null; $list['last_done'] = $last_done_thematic_advance; $list['toolbar'] = $toolbarThematic; $listThematic[] = $list; $tpl->assign('data', $listThematic); } //End for } $thematicLayout = $tpl->get_template('course_progress/progress.tpl'); } elseif ($action == 'thematic_add' || $action == 'thematic_edit') { // Display form $form = new FormValidator('thematic_add', 'POST', 'index.php?action=thematic_add&'.api_get_cidreq()); if ($action == 'thematic_edit') { $form->addElement('header', '', get_lang('EditThematicSection')); } $form->addElement('hidden', 'sec_token', $token); $form->addElement('hidden', 'action', $action); if (!empty($thematic_id)) { $form->addElement('hidden', 'thematic_id', $thematic_id); } if (api_get_configuration_value('save_titles_as_html')) { $form->addHtmlEditor( 'title', get_lang('Title'), true, false, ['ToolbarSet' => 'TitleAsHtml'] ); } else { $form->addText('title', get_lang('Title'), true, ['size' => '50']); } $form->addHtmlEditor( 'content', get_lang('Content'), false, false, ['ToolbarSet' => 'Basic', 'Height' => '150'] ); $form->addButtonSave(get_lang('Save')); $show_form = true; if (!empty($thematic_data)) { if (api_get_session_id()) { if ($thematic_data['session_id'] != api_get_session_id()) { $show_form = false; echo Display::return_message(get_lang('NotAllowedClickBack'), 'error', false); } } // set default values $default['title'] = $thematic_data['title']; $default['content'] = $thematic_data['content']; $form->setDefaults($default); } // error messages if (isset($error)) { echo Display::return_message(get_lang('FormHasErrorsPleaseComplete'), 'error', false); } if ($show_form) { $html = $form->returnForm(); } } elseif ($action == 'thematic_import_select') { // Create form to upload csv file. $form = new FormValidator( 'thematic_import', 'POST', 'index.php?action=thematic_import&'.api_get_cidreq().$url_token ); $form->addElement('header', get_lang('ImportThematic')); $form->addElement('file', 'file'); $form->addElement('checkbox', 'replace', null, get_lang('DeleteAllThematic')); $form->addButtonImport(get_lang('Import'), 'SubmitImport'); $html = $form->returnForm(); } $tpl->assign('actions', $toolbar); if (!empty($html)) { $tpl->assign('content', $html); $thematicLayout = $tpl->get_template('course_progress/layout.tpl'); } if (!empty($message) && !empty($total_average_of_advances)) { $tpl->assign('message', $message); $tpl->assign('score_progress', $total_average_of_advances); } $tpl->display($thematicLayout);