From 5e4dd333982f58a8e025f3db6ed679ec41a1877e Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Mon, 21 Oct 2019 11:03:08 +0200 Subject: [PATCH] Minor - update from 1.11.x --- main/admin/career_diagram.php | 19 +- main/admin/careers.php | 14 +- main/admin/configure_plugin.php | 2 +- main/admin/special_exports.php | 15 +- main/admin/user_information.php | 33 +++- main/admin/user_update_import.php | 24 ++- main/admin/usergroup_users.php | 1 - main/announcements/announcements.php | 9 +- main/auth/courses.php | 9 - main/auth/courses_controller.php | 47 +---- main/auth/inscription.php | 1 - main/auth/my_progress.php | 39 ++++- main/badge/assign.php | 1 - main/badge/issued_all.php | 1 - .../course_description_controller.php | 2 +- main/cron/import_csv.php | 124 +++++++++++-- main/document/document.php | 2 +- main/exercise/exercise_report.php | 44 +++-- main/glossary/glossary_ajax_request.php | 14 +- main/gradebook/lib/GradebookUtils.php | 31 ++++ main/gradebook/lib/fe/catform.class.php | 8 +- .../gradebook/lib/fe/gradebooktable.class.php | 4 + main/inc/ajax/model.ajax.php | 46 ++--- main/inc/ajax/survey.ajax.php | 37 +++- .../lib/CoursesAndSessionsCatalog.class.php | 74 ++++---- main/inc/lib/api.lib.php | 28 ++- main/inc/lib/career.lib.php | 151 +++++++++++++--- main/inc/lib/course.lib.php | 30 +++- main/inc/lib/course_home.lib.php | 5 +- main/inc/lib/database.constants.inc.php | 2 + main/inc/lib/events.lib.php | 2 + main/inc/lib/exercise_show_functions.lib.php | 7 +- main/inc/lib/extra_field.lib.php | 6 +- main/inc/lib/extra_field_value.lib.php | 6 +- main/inc/lib/glossary.lib.php | 8 +- .../ckeditor/plugins/oembed/plugin.js | 27 +-- .../ckeditor/plugins/video/dialogs/video.js | 112 ++++++++---- .../ckeditor/plugins/video/plugin.js | 24 ++- main/inc/lib/sessionmanager.lib.php | 83 ++++----- main/inc/lib/skill.lib.php | 4 +- main/inc/lib/statistics.lib.php | 67 +++++++ main/inc/lib/tracking.lib.php | 163 ++++++++++++------ main/inc/lib/usermanager.lib.php | 143 ++++++++++++++- main/inc/lib/userportal.lib.php | 4 +- main/lp/learnpath.class.php | 29 +++- main/lp/lp_add_audio.php | 5 +- main/lp/lp_add_item.php | 11 +- main/lp/lp_subscribe_users.php | 20 ++- main/lp/lp_view.php | 8 +- main/mySpace/myStudents.php | 3 +- main/survey/ch_multiplechoice.php | 9 - main/survey/ch_personality.php | 2 - main/survey/ch_score.php | 2 +- main/survey/create_new_survey.php | 6 - main/survey/edit_meeting.php | 14 +- main/survey/fillsurvey.php | 31 +--- main/survey/generate_link.php | 2 +- main/survey/meeting.php | 4 - main/survey/preview.php | 9 +- main/survey/question.php | 14 +- main/survey/reporting.php | 2 +- main/survey/survey.lib.php | 4 +- main/survey/survey.php | 15 +- main/survey/surveyUtil.class.php | 21 +-- main/survey/survey_invitation.php | 7 - main/survey/survey_invite.php | 12 -- main/survey/survey_list.php | 8 +- main/survey/survey_question.php | 83 +++++++++ main/tracking/courseLog.php | 1 - main/user/class.php | 4 +- .../Component/Editor/CkEditor/CkEditor.php | 56 +++++- .../Component/CourseCopy/CourseBuilder.php | 2 +- .../Component/CourseCopy/CourseRestorer.php | 30 +++- src/SkillBundle/Entity/Level.php | 1 - src/SkillBundle/Entity/SkillRelCourse.php | 2 +- src/SkillBundle/Entity/SkillRelItem.php | 2 +- 76 files changed, 1302 insertions(+), 590 deletions(-) diff --git a/main/admin/career_diagram.php b/main/admin/career_diagram.php index 11f2693bba..8684060680 100644 --- a/main/admin/career_diagram.php +++ b/main/admin/career_diagram.php @@ -1,8 +1,6 @@ 'careers.php', 'name' => get_lang('Careers')]; @@ -72,13 +68,6 @@ if ($action == 'add') { } $extraFieldValue = new ExtraFieldValue('career'); -$item = $extraFieldValue->get_values_by_handler_and_field_variable( - $careerId, - 'career_diagram', - false, - false, - false -); // Check urls $itemUrls = $extraFieldValue->get_values_by_handler_and_field_variable( @@ -107,10 +96,10 @@ if (!empty($itemUrls) && !empty($itemUrls['value'])) { $tpl = new Template(get_lang('Diagram')); $html = Display::page_subheader2($careerInfo['name'].$urlToString); -if (!empty($item) && isset($item['value']) && !empty($item['value'])) { - /** @var Graph $graph */ - $graph = UnserializeApi::unserialize('career', $item['value']); - $html .= Career::renderDiagramByColumn($graph, $tpl); +$diagram = Career::renderDiagramByColumn($careerInfo, $tpl); + +if (!empty($diagram)) { + $html .= $diagram; } else { Display::addFlash( Display::return_message( diff --git a/main/admin/careers.php b/main/admin/careers.php index 269613380b..a39575c3fc 100755 --- a/main/admin/careers.php +++ b/main/admin/careers.php @@ -75,7 +75,6 @@ $column_model = [ ]; //Autowidth $extra_params['autowidth'] = 'true'; -//height auto $extra_params['height'] = 'auto'; $diagramLink = ''; @@ -144,8 +143,13 @@ switch ($action) { break; case 'edit': api_protect_admin_script(); + $id = isset($_GET['id']) ? (int) $_GET['id'] : null; + $careerInfo = $career->get($id); + if (empty($careerInfo)) { + api_not_allowed(true); + } // Action handling: Editing - $url = api_get_self().'?action='.Security::remove_XSS($_GET['action']).'&id='.intval($_GET['id']); + $url = api_get_self().'?action=edit&id='.$id; $form = $career->return_form($url, 'edit'); // The validation or display @@ -155,6 +159,11 @@ switch ($action) { $career->update_all_promotion_status_by_career_id($values['id'], $values['status']); $old_status = $career->get_status($values['id']); $res = $career->update($values); + + $values['item_id'] = $values['id']; + $sessionFieldValue = new ExtraFieldValue('career'); + $sessionFieldValue->saveFieldValues($values); + if ($res) { Display::addFlash( Display::return_message(get_lang('CareerUpdated'), 'confirmation') @@ -224,7 +233,6 @@ switch ($action) { $content = $career->display(); break; } - // The header. Display::display_header($tool_name); diff --git a/main/admin/configure_plugin.php b/main/admin/configure_plugin.php index c13a7f0343..218015f1b6 100755 --- a/main/admin/configure_plugin.php +++ b/main/admin/configure_plugin.php @@ -15,7 +15,7 @@ api_protect_admin_script(); $pluginName = $_GET['name']; $appPlugin = new AppPlugin(); -$installedPlugins = $appPlugin->get_installed_plugins(); +$installedPlugins = $appPlugin->getInstalledPlugins(); $pluginInfo = $appPlugin->getPluginInfo($pluginName, true); if (!in_array($pluginName, $installedPlugins) || empty($pluginInfo)) { diff --git a/main/admin/special_exports.php b/main/admin/special_exports.php index fe51299980..27f39b0984 100755 --- a/main/admin/special_exports.php +++ b/main/admin/special_exports.php @@ -9,27 +9,21 @@ use Chamilo\CourseBundle\Component\CourseCopy\CourseSelectForm; * * @author Jhon Hinojosa * @author Julio Montoya Fixing pclzip folder + some clean - * - * @package chamilo.include.export */ - -// including the global file $cidReset = true; require_once __DIR__.'/../inc/global.inc.php'; +api_protect_admin_script(true); +api_set_more_memory_and_time_limits(); + $this_section = SECTION_PLATFORM_ADMIN; -$interbreadcrumb[] = ["url" => 'index.php', "name" => get_lang('PlatformAdmin')]; +$interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('PlatformAdmin')]; // Access restrictions -api_protect_admin_script(true); $nameTools = get_lang('SpecialExports'); $export = ''; $querypath = ''; - -api_set_more_memory_and_time_limits(); - // Displaying the header Display::display_header($nameTools); - // Display the tool title echo Display::page_header($nameTools); @@ -146,7 +140,6 @@ if ($export && $name) { } } -/* FOOTER */ Display::display_footer(); function form_special_export() diff --git a/main/admin/user_information.php b/main/admin/user_information.php index 090ee44106..6a6b0e03df 100755 --- a/main/admin/user_information.php +++ b/main/admin/user_information.php @@ -251,26 +251,26 @@ foreach ($data as $label => $item) { * Show social activity. */ if (api_get_setting('allow_social_tool') === 'true') { - $userObject = api_get_user_entity($user['user_id']); + $userObject = api_get_user_entity($userId); $data = []; // Calculate values if (api_get_setting('allow_message_tool') === 'true') { - $messagesSent = SocialManager::getCountMessagesSent($user['user_id']); + $messagesSent = SocialManager::getCountMessagesSent($userId); $data[] = [get_lang('MessagesSent'), $messagesSent]; - $messagesReceived = SocialManager::getCountMessagesReceived($user['user_id']); + $messagesReceived = SocialManager::getCountMessagesReceived($userId); $data[] = [get_lang('MessagesReceived'), $messagesReceived]; } - $wallMessagesPosted = SocialManager::getCountWallPostedMessages($user['user_id']); + $wallMessagesPosted = SocialManager::getCountWallPostedMessages($userId); $data[] = [get_lang('WallMessagesPosted'), $wallMessagesPosted]; - $friends = SocialManager::getCountFriends($user['user_id']); + $friends = SocialManager::getCountFriends($userId); $data[] = [get_lang('Friends'), $friends]; - $countSent = SocialManager::getCountInvitationSent($user['user_id']); + $countSent = SocialManager::getCountInvitationSent($userId); $data[] = [get_lang('InvitationSent'), $countSent]; - $countReceived = SocialManager::get_message_number_invitation_by_user_id($user['user_id']); + $countReceived = SocialManager::get_message_number_invitation_by_user_id($userId); $data[] = [get_lang('InvitationReceived'), $countReceived]; $userInfo['social'] = [ @@ -600,7 +600,7 @@ if (isset($_GET['action'])) { case 'export': Export::arrayToCsv( $csvContent, - 'user_information_'.$user['user_id'] + 'user_information_'.$userId ); exit; break; @@ -700,9 +700,24 @@ echo $courseInformation; echo $urlInformation; echo Tracking::displayUserSkills( - $user['user_id'], + $userId, 0, 0 ); +if (api_get_configuration_value('allow_career_users')) { + $careers = UserManager::getUserCareers($userId); + if (!empty($careers)) { + echo Display::page_subheader(get_lang('Careers'), null, 'h3', ['class' => 'section-title']); + $table = new HTML_Table(['class' => 'data_table']); + $table->setHeaderContents(0, 0, get_lang('Career')); + $row = 1; + foreach ($careers as $carerData) { + $table->setCellContents($row, 0, $carerData['name']); + $row++; + } + echo $table->toHtml(); + } +} + Display::display_footer(); diff --git a/main/admin/user_update_import.php b/main/admin/user_update_import.php index afedaac943..b0a89b0fd4 100644 --- a/main/admin/user_update_import.php +++ b/main/admin/user_update_import.php @@ -144,7 +144,7 @@ function updateUsers($users) $inserted_in_course = []; } $usergroup = new UserGroup(); - $send_mail = $_POST['sendMail'] ? true : false; + $send_mail = !empty($_POST['sendMail']) ? true : false; if (is_array($users)) { foreach ($users as $user) { $user = complete_missing_data($user); @@ -158,8 +158,15 @@ function updateUsers($users) $firstName = isset($user['FirstName']) ? $user['FirstName'] : $userInfo['firstname']; $lastName = isset($user['LastName']) ? $user['LastName'] : $userInfo['lastname']; $userName = isset($user['NewUserName']) ? $user['NewUserName'] : $userInfo['username']; - $password = isset($user['Password']) ? $user['Password'] : $userInfo['password']; - $authSource = isset($user['AuthSource']) ? $user['AuthSource'] : $userInfo['auth_source']; + $changePassMethod = 0; + $password = isset($user['Password']) ? $user['Password'] : ''; + if (!empty($password)) { + $changePassMethod = 2; + } + $authSource = isset($user['AuthSource']) ? $user['AuthSource'] : ''; + if ($changePassMethod === 2 && !empty($authSource) && $authSource != $userInfo['auth_source']) { + $changePassMethod = 3; + } $email = isset($user['Email']) ? $user['Email'] : $userInfo['email']; $status = isset($user['Status']) ? $user['Status'] : $userInfo['status']; $officialCode = isset($user['OfficialCode']) ? $user['OfficialCode'] : $userInfo['official_code']; @@ -191,12 +198,12 @@ function updateUsers($users) $language, '', '', - '' + $changePassMethod ); - if (!is_array($user['Courses']) && !empty($user['Courses'])) { + if (!empty($user['Courses']) && !is_array($user['Courses'])) { $user['Courses'] = [$user['Courses']]; } - if (is_array($user['Courses'])) { + if (!empty($user['Courses']) && is_array($user['Courses'])) { foreach ($user['Courses'] as $course) { if (CourseManager::course_exists($course)) { CourseManager::subscribeUser($user_id, $course, $user['Status']); @@ -347,6 +354,7 @@ if (isset($_POST['formSent']) && $_POST['formSent'] && $_FILES['import_file']['s $see_message_import = get_lang('FileImported'); } + $warning_message = ''; if (count($errors) != 0) { $warning_message = '