From 000f93c6acc2691a1f8ace7612a07702417713af Mon Sep 17 00:00:00 2001 From: jmontoyaa Date: Mon, 21 May 2018 09:32:20 +0200 Subject: [PATCH] Minor - merge with 1.11.x --- main/admin/course_list.php | 3 + main/admin/user_add.php | 32 -- main/admin/user_import.php | 2 +- main/admin/user_list.php | 12 +- main/admin/user_move_stats.php | 2 +- main/auth/courses.php | 2 +- main/auth/inscription.php | 2 +- main/blog/blog.php | 6 +- .../course_description_controller.php | 56 ++- main/course_description/index.php | 14 +- main/course_description/listing.php | 118 ------- main/course_home/course_home.php | 16 +- main/course_info/infocours.php | 328 ++++++++++++++---- main/dashboard/index.php | 10 +- main/document/document.php | 5 +- main/exercise/Draggable.php | 2 +- main/exercise/MatchingDraggable.php | 4 +- main/exercise/UniqueAnswerImage.php | 2 +- main/exercise/exercise.class.php | 162 +++++---- main/exercise/exercise.php | 4 +- main/exercise/exercise_report.php | 4 +- main/exercise/exercise_submit.php | 57 +-- main/exercise/matching.class.php | 4 +- main/exercise/multiple_answer.class.php | 2 +- .../multiple_answer_combination.class.php | 2 +- .../multiple_answer_true_false.class.php | 2 +- main/exercise/showinframes.php | 27 +- main/exercise/unique_answer.class.php | 2 +- .../unique_answer_no_option.class.php | 2 +- main/group/group.php | 4 +- main/group/member_settings.php | 7 +- main/inc/ajax/lp.ajax.php | 138 +++++--- main/inc/ajax/statistics.ajax.php | 25 +- main/inc/lib/AnnouncementManager.php | 20 +- main/inc/lib/CourseChatUtils.php | 23 +- .../lib/CoursesAndSessionsCatalog.class.php | 3 - main/inc/lib/ScheduledAnnouncement.php | 19 +- main/inc/lib/agenda.lib.php | 82 ++--- main/inc/lib/api.lib.php | 52 ++- main/inc/lib/auth.lib.php | 4 +- main/inc/lib/banner.lib.php | 18 +- main/inc/lib/certificate.lib.php | 5 +- main/inc/lib/course.lib.php | 29 +- main/inc/lib/course_home.lib.php | 35 +- main/inc/lib/database.constants.inc.php | 7 +- main/inc/lib/display.lib.php | 3 +- main/inc/lib/events.lib.php | 2 +- main/inc/lib/exercise.lib.php | 5 +- main/inc/lib/glossary.lib.php | 9 +- main/inc/lib/groupmanager.lib.php | 51 ++- main/inc/lib/message.lib.php | 194 +++++++---- main/inc/lib/online.inc.php | 18 +- main/inc/lib/sessionmanager.lib.php | 179 ++++++---- main/inc/lib/statistics.lib.php | 4 +- main/inc/lib/system_announcements.lib.php | 4 +- main/inc/lib/tracking.lib.php | 20 +- main/inc/lib/usergroup.lib.php | 4 +- main/inc/lib/usermanager.lib.php | 11 +- main/inc/lib/userportal.lib.php | 12 +- main/lp/learnpath.class.php | 201 +++++++---- main/lp/learnpathItem.class.php | 10 +- main/lp/lp_add_item.php | 7 +- main/lp/lp_ajax_save_item.php | 36 +- main/lp/lp_ajax_switch_item.php | 2 +- main/lp/lp_build.php | 2 - main/lp/lp_controller.php | 33 +- main/lp/lp_edit.php | 3 +- main/lp/lp_edit_item.php | 9 +- main/messages/new_message.php | 21 +- main/mySpace/myStudents.php | 2 +- main/portfolio/share.php | 14 - main/session/about.php | 2 +- main/session/add_users_to_session.php | 4 +- main/session/resume_session.php | 2 +- main/session/session_user_import.php | 2 +- main/social/my_skills_report.php | 12 +- main/survey/fillsurvey.php | 56 ++- main/tracking/courseLog.php | 21 +- main/user/add_users_to_session.php | 2 +- main/user/user.php | 8 + main/webservices/http-auth.php | 2 +- main/webservices/registration.soap.php | 6 +- main/webservices/webservice_session.php | 2 +- 83 files changed, 1372 insertions(+), 958 deletions(-) delete mode 100755 main/course_description/listing.php delete mode 100755 main/portfolio/share.php diff --git a/main/admin/course_list.php b/main/admin/course_list.php index f3fa604d6d..4ac1bdfcde 100755 --- a/main/admin/course_list.php +++ b/main/admin/course_list.php @@ -342,6 +342,8 @@ if (isset($_POST['action'])) { $obj_cat->update_category_delete($course_code); } } + + Display::addFlash(Display::return_message(get_lang('Deleted'))); break; } } @@ -409,6 +411,7 @@ if (isset($_GET['search']) && $_GET['search'] === 'advanced') { CourseManager::delete_course($_GET['delete_course']); $obj_cat = new Category(); $obj_cat->update_category_delete($_GET['delete_course']); + Display::addFlash(Display::return_message(get_lang('Deleted'))); } // Create a search-box $form = new FormValidator( diff --git a/main/admin/user_add.php b/main/admin/user_add.php index 82ac24e5be..2d59c47fd0 100755 --- a/main/admin/user_add.php +++ b/main/admin/user_add.php @@ -19,29 +19,6 @@ $is_platform_admin = api_is_platform_admin() ? 1 : 0; $message = null; $htmlHeadXtra[] = api_get_password_checker_js('#username', '#password'); - -$checkPass = api_get_setting('allow_strength_pass_checker'); -if ($checkPass == 'true') { - $htmlHeadXtra[] = ' - '; -} //$htmlHeadXtra[] = api_get_css_asset('cropper/dist/cropper.min.css'); //$htmlHeadXtra[] = api_get_asset('cropper/dist/cropper.min.js'); $htmlHeadXtra[] = ' @@ -247,15 +224,6 @@ $form->addGroup($group, 'password', get_lang('Password')); $form->addPasswordRule('password', 'password'); $form->addGroupRule('password', get_lang('EnterPassword'), 'required', null, 1); -if ($checkPass) { - $strengthLabels = ' -
-
- - '; - $form->addElement('label', null, $strengthLabels); -} - // Status $status = []; $status[COURSEMANAGER] = get_lang('Teacher'); diff --git a/main/admin/user_import.php b/main/admin/user_import.php index 6a73897eb1..241b3c28dd 100644 --- a/main/admin/user_import.php +++ b/main/admin/user_import.php @@ -223,7 +223,7 @@ function save_data($users) foreach ($user['Sessions'] as $sessionId) { $sessionInfo = api_get_session_info($sessionId); if (!empty($sessionInfo)) { - SessionManager::subscribe_users_to_session( + SessionManager::subscribeUsersToSession( $sessionId, [$user_id], SESSION_VISIBLE_READ_ONLY, diff --git a/main/admin/user_list.php b/main/admin/user_list.php index 714dffbd01..d6145bf894 100755 --- a/main/admin/user_list.php +++ b/main/admin/user_list.php @@ -208,17 +208,17 @@ function trimVariables() * Prepares the shared SQL query for the user table. * See get_user_data() and get_number_of_users(). * - * @param bool $is_count Whether to count, or get data + * @param bool $getCount Whether to count, or get data * * @return string SQL query */ -function prepare_user_sql_query($is_count) +function prepare_user_sql_query($getCount) { $sql = ''; $user_table = Database::get_main_table(TABLE_MAIN_USER); $admin_table = Database::get_main_table(TABLE_MAIN_ADMIN); - if ($is_count) { + if ($getCount) { $sql .= "SELECT COUNT(u.id) AS total_number_of_items FROM $user_table u"; } else { $sql .= "SELECT u.id AS col0, u.official_code AS col2, "; @@ -325,6 +325,7 @@ function prepare_user_sql_query($is_count) if (!empty($keywordListValues['keyword_officialcode'])) { $sql .= " AND u.official_code LIKE '".Database::escape_string("%".$keywordListValues['keyword_officialcode']."%")."' "; } + $sql .= " $keyword_admin $keyword_extra_value @@ -342,6 +343,11 @@ function prepare_user_sql_query($is_count) $sql .= " ) "; } + $preventSessionAdminsToManageAllUsers = api_get_setting('prevent_session_admins_to_manage_all_users'); + if (api_is_session_admin() && $preventSessionAdminsToManageAllUsers === 'true') { + $sql .= " AND u.creator_id = ".api_get_user_id(); + } + $variables = Session::read('variables_to_show', []); if (!empty($variables)) { $extraField = new ExtraField('user'); diff --git a/main/admin/user_move_stats.php b/main/admin/user_move_stats.php index 49d139ae66..32298feb1d 100755 --- a/main/admin/user_move_stats.php +++ b/main/admin/user_move_stats.php @@ -115,7 +115,7 @@ if (isset($_REQUEST['load_ajax'])) { echo 'User added to the session'; } //Registering user to the new session - SessionManager::subscribe_users_to_session( + SessionManager::subscribeUsersToSession( $new_session_id, [$user_id], false diff --git a/main/auth/courses.php b/main/auth/courses.php index 421bef4cee..26f14feac3 100755 --- a/main/auth/courses.php +++ b/main/auth/courses.php @@ -302,7 +302,7 @@ switch ($action) { } } - SessionManager::subscribe_users_to_session( + SessionManager::subscribeUsersToSession( $_GET['session_id'], [$userId], SESSION_VISIBLE_READ_ONLY, diff --git a/main/auth/inscription.php b/main/auth/inscription.php index 719bf7e849..53563cd53c 100755 --- a/main/auth/inscription.php +++ b/main/auth/inscription.php @@ -710,7 +710,7 @@ if ($form->validate()) { if (!empty($sessionToRedirect) && !$sessionPremiumChecker) { $sessionInfo = api_get_session_info($sessionToRedirect); if (!empty($sessionInfo)) { - SessionManager::subscribe_users_to_session( + SessionManager::subscribeUsersToSession( $sessionToRedirect, [$user_id], SESSION_VISIBLE_READ_ONLY, diff --git a/main/blog/blog.php b/main/blog/blog.php index 3c911b4c09..331e2832ce 100755 --- a/main/blog/blog.php +++ b/main/blog/blog.php @@ -431,13 +431,13 @@ switch ($action) { break; } -$content = Display::return_introduction_section(TOOL_BLOGS); -$content .= $tpl->fetch($blogLayout); +$content = $tpl->fetch($blogLayout); if ($actionsLeft) { $tpl->assign( 'actions', - Display::toolbarAction('toolbar', [$actionsLeft]) + Display::return_introduction_section(TOOL_BLOGS) + .Display::toolbarAction('toolbar', [$actionsLeft]) ); } diff --git a/main/course_description/course_description_controller.php b/main/course_description/course_description_controller.php index 41a08ef157..e56d007d1d 100644 --- a/main/course_description/course_description_controller.php +++ b/main/course_description/course_description_controller.php @@ -33,10 +33,11 @@ class CourseDescriptionController */ public function listing($history = false, $messages = []) { + $is_allowed_to_edit = api_is_allowed_to_edit(null, true); $course_description = new CourseDescription(); $session_id = api_get_session_id(); - $course_description->set_session_id($session_id); $data = []; + $course_description->set_session_id($session_id); $course_description_data = $course_description->get_description_data(); $data['descriptions'] = isset($course_description_data['descriptions']) ? $course_description_data['descriptions'] : ''; $data['default_description_titles'] = $course_description->get_default_description_title(); @@ -45,6 +46,8 @@ class CourseDescriptionController $data['messages'] = $messages; $browser = api_get_navigator(); + api_protect_course_script(true); + if (!is_array($data['descriptions'])) { $data['descriptions'] = [$data['descriptions']]; } @@ -57,12 +60,53 @@ class CourseDescriptionController header("X-XSS-Protection: 0"); } } + $actions = null; + $actionLeft = null; + // display actions menu + if ($is_allowed_to_edit) { + $categories = []; + foreach ($data['default_description_titles'] as $id => $title) { + $categories[$id] = $title; + } + $categories[ADD_BLOCK] = get_lang('NewBloc'); + $i = 1; + + ksort($categories); + foreach ($categories as $id => $title) { + if ($i == ADD_BLOCK) { + $actionLeft .= ''. + Display::return_icon( + $data['default_description_icon'][$id], + $title, + '', + ICON_SIZE_MEDIUM + ). + ''; + break; + } else { + $actionLeft .= ''. + Display::return_icon( + $data['default_description_icon'][$id], + $title, + '', + ICON_SIZE_MEDIUM + ). + ''; + $i++; + } + } + $actions = Display::toolbarAction('toolbar', [0 => $actionLeft]); + } - // render to the view - $this->view->set_data($data); - $this->view->set_layout('layout'); - $this->view->set_template('listing'); - $this->view->render(); + $tpl = new Template(get_lang('CourseProgram')); + $tpl->assign('listing', $data); + $tpl->assign('is_allowed_to_edit', $is_allowed_to_edit); + $tpl->assign('actions', $actions); + $tpl->assign('session_id', $session_id); + $templateName = $tpl->get_template('course_description/index.tpl'); + $content = $tpl->fetch($templateName); + $tpl->assign('content', $content); + $tpl->display_one_col_template(); } /** diff --git a/main/course_description/index.php b/main/course_description/index.php index 87c06b16ad..30c7443276 100755 --- a/main/course_description/index.php +++ b/main/course_description/index.php @@ -73,7 +73,7 @@ if ($description_type >= 9) { } // course description controller object -$course_description_controller = new CourseDescriptionController(); +$descriptionController = new CourseDescriptionController(); // block access if (in_array($action, ['add', 'edit', 'delete']) && @@ -85,20 +85,20 @@ if (in_array($action, ['add', 'edit', 'delete']) && // Actions to controller switch ($action) { case 'listing': - $course_description_controller->listing(); + $descriptionController->listing(); break; case 'history': - $course_description_controller->listing(true); + $descriptionController->listing(true); break; case 'add': - $course_description_controller->add(); + $descriptionController->add(); break; case 'edit': - $course_description_controller->edit($id, $description_type); + $descriptionController->edit($id, $description_type); break; case 'delete': - $course_description_controller->destroy($id); + $descriptionController->destroy($id); break; default: - $course_description_controller->listing(); + $descriptionController->listing(); } diff --git a/main/course_description/listing.php b/main/course_description/listing.php deleted file mode 100755 index 778d148efc..0000000000 --- a/main/course_description/listing.php +++ /dev/null @@ -1,118 +0,0 @@ - - * - * @package chamilo.course_description - */ - -// protect a course script -api_protect_course_script(true); - -// display actions menu -if (api_is_allowed_to_edit(null, true)) { - $categories = []; - foreach ($default_description_titles as $id => $title) { - $categories[$id] = $title; - } - $categories[ADD_BLOCK] = get_lang('NewBloc'); - - $i = 1; - echo '
'; - ksort($categories); - foreach ($categories as $id => $title) { - if ($i == ADD_BLOCK) { - echo ''. - Display::return_icon( - $default_description_icon[$id], - $title, - '', - ICON_SIZE_MEDIUM - ). - ''; - break; - } else { - echo ''. - Display::return_icon( - $default_description_icon[$id], - $title, - '', - ICON_SIZE_MEDIUM - ). - ''; - $i++; - } - } - echo '
'; -} -$history = isset($history) ? $history : null; - -// display course description list -if ($history) { - echo '
- - - -

'.get_lang('ThematicAdvanceHistory').'

'; - echo Display::return_icon( - 'info.png', - get_lang('BackToCourseDesriptionList'), - ['style' => 'vertical-align:middle;'], - ICON_SIZE_SMALL - ); - echo ' '.get_lang('BackToCourseDesriptionList').'
'; -} - -$user_info = api_get_user_info(); - -if (isset($descriptions) && count($descriptions) > 0) { - foreach ($descriptions as $id => $description) { - if (!empty($description)) { - $actions = ''; - if (api_is_allowed_to_edit(null, true) && !$history) { - if (api_get_session_id() == $description['session_id']) { - $description['title'] = $description['title'].' '.api_get_session_image(api_get_session_id(), $user_info['status']); - - // delete - $actions .= ''; - $actions .= Display::return_icon( - 'delete.png', - get_lang('Delete'), - ['style' => 'vertical-align:middle;float:right;'], - ICON_SIZE_SMALL - ); - $actions .= ' '; - - // edit - $actions .= ''; - $actions .= Display::return_icon( - 'edit.png', - get_lang('Edit'), - ['style' => 'vertical-align:middle;float:right; padding-right:4px;'], - ICON_SIZE_SMALL - ); - $actions .= ' '; - } else { - $actions .= Display::return_icon( - 'edit_na.png', - get_lang('EditionNotAvailableFromSession'), - ['style' => 'vertical-align:middle;float:right;'], - ICON_SIZE_SMALL - ); - } - } - - echo Display::panel( - Security::remove_XSS($description['content']), - "
$actions
{$description['title']}", - '', - 'info' - ); - } - } -} else { - echo ''.get_lang('ThisCourseDescriptionIsEmpty').''; -} diff --git a/main/course_home/course_home.php b/main/course_home/course_home.php index 528cdb603a..91836eeec0 100755 --- a/main/course_home/course_home.php +++ b/main/course_home/course_home.php @@ -269,9 +269,21 @@ if (api_get_configuration_value('allow_exercise_auto_launch')) { } else { // Redirecting to an exercise $table = Database::get_course_table(TABLE_QUIZ_TEST); - $sessionCondition = api_get_session_condition($session_id, true); + $condition = ''; + if (!empty($session_id)) { + $condition = api_get_session_condition($session_id); + $sql = "SELECT iid FROM $table + WHERE c_id = $course_id AND autolaunch = 1 $condition + LIMIT 1"; + $result = Database::query($sql); + // If we found nothing in the session we just called the session_id = 0 autolaunch + if (Database::num_rows($result) == 0) { + $condition = ''; + } + } + $sql = "SELECT iid FROM $table - WHERE c_id = $course_id AND autolaunch = 1 $sessionCondition + WHERE c_id = $course_id AND autolaunch = 1 $condition LIMIT 1"; $result = Database::query($sql); if (Database::num_rows($result) > 0) { diff --git a/main/course_info/infocours.php b/main/course_info/infocours.php index 26400b2d1b..1a751cc3a1 100755 --- a/main/course_info/infocours.php +++ b/main/course_info/infocours.php @@ -70,7 +70,8 @@ $form->addHtml('
'); $form->addHtml(' '); $form->addHtml(' -
+
'); @@ -195,7 +197,8 @@ $form->addHtml('
'); $form->addHtml('