Settings: Move complex settings from configuration.php to .env or to the Database - refs #2682

pull/4613/head
Christian 2 years ago
parent 93bad6fbc6
commit 052e0b54f4
  1. 4
      public/main/admin/gradebook_dependency.php
  2. 2
      public/main/admin/gradebook_list.php
  3. 2
      public/main/admin/index.php
  4. 2
      public/main/admin/system_announcements.php
  5. 2
      public/main/admin/user_add.php
  6. 4
      public/main/admin/user_edit.php
  7. 2
      public/main/admin/user_import.php
  8. 2
      public/main/admin/user_information.php
  9. 2
      public/main/admin/user_list.php
  10. 2
      public/main/auth/courses.php
  11. 10
      public/main/auth/inscription.php
  12. 2
      public/main/auth/my_progress.php
  13. 2
      public/main/auth/profile.php
  14. 6
      public/main/calendar/agenda_js.php
  15. 4
      public/main/cron/import_csv.php
  16. 2
      public/main/exercise/UniqueAnswerImage.php
  17. 2
      public/main/exercise/category.php
  18. 16
      public/main/exercise/exercise.class.php
  19. 6
      public/main/exercise/exercise.php
  20. 4
      public/main/exercise/exercise_submit.php
  21. 10
      public/main/exercise/question.class.php
  22. 2
      public/main/forum/forumfunction.inc.php
  23. 4
      public/main/gradebook/gradebook_display_summary.php
  24. 2
      public/main/gradebook/gradebook_edit_result.php
  25. 2
      public/main/gradebook/gradebook_view_result.php
  26. 2
      public/main/gradebook/index.php
  27. 8
      public/main/gradebook/lib/GradebookUtils.php
  28. 2
      public/main/gradebook/lib/be/abstractlink.class.php
  29. 2
      public/main/gradebook/lib/be/category.class.php
  30. 6
      public/main/gradebook/lib/be/evaluation.class.php
  31. 2
      public/main/gradebook/lib/be/exerciselink.class.php
  32. 2
      public/main/gradebook/lib/be/result.class.php
  33. 2
      public/main/gradebook/lib/fe/displaygradebook.php
  34. 2
      public/main/gradebook/lib/fe/evalform.class.php
  35. 4
      public/main/gradebook/lib/fe/gradebooktable.class.php
  36. 2
      public/main/gradebook/lib/fe/resulttable.class.php
  37. 4
      public/main/gradebook/lib/flatview_data_generator.class.php
  38. 2
      public/main/gradebook/lib/gradebook_data_generator.class.php
  39. 2
      public/main/gradebook/skill_rel_user.php
  40. 2
      public/main/group/group_category.php
  41. 2
      public/main/group/settings.php
  42. 6
      public/main/inc/ajax/exercise.ajax.php
  43. 2
      public/main/inc/ajax/gradebook.ajax.php
  44. 12
      public/main/inc/ajax/model.ajax.php
  45. 4
      public/main/inc/ajax/skill.ajax.php
  46. 2
      public/main/inc/ajax/statistics.ajax.php
  47. 2
      public/main/inc/lib/AnnouncementManager.php
  48. 8
      public/main/inc/lib/Compilatio.php
  49. 2
      public/main/inc/lib/CoursesAndSessionsCatalog.class.php
  50. 16
      public/main/inc/lib/SkillModel.php
  51. 2
      public/main/inc/lib/agenda.lib.php
  52. 18
      public/main/inc/lib/api.lib.php
  53. 2
      public/main/inc/lib/banner.lib.php
  54. 4
      public/main/inc/lib/display.lib.php
  55. 4
      public/main/inc/lib/events.lib.php
  56. 8
      public/main/inc/lib/exercise.lib.php
  57. 2
      public/main/inc/lib/extra_field.lib.php
  58. 4
      public/main/inc/lib/groupmanager.lib.php
  59. 2
      public/main/inc/lib/link.lib.php
  60. 2
      public/main/inc/lib/message.lib.php
  61. 2
      public/main/inc/lib/security.lib.php
  62. 14
      public/main/inc/lib/sessionmanager.lib.php
  63. 4
      public/main/inc/lib/social.lib.php
  64. 2
      public/main/inc/lib/sortable_table.class.php
  65. 4
      public/main/inc/lib/system_announcements.lib.php
  66. 4
      public/main/inc/lib/template.lib.php
  67. 10
      public/main/inc/lib/tracking.lib.php
  68. 2
      public/main/inc/lib/usergroup.lib.php
  69. 11
      public/main/inc/lib/usermanager.lib.php
  70. 8
      public/main/inc/lib/userportal.lib.php
  71. 8
      public/main/lp/learnpath.class.php
  72. 6
      public/main/lp/lp_list.php
  73. 2
      public/main/lp/lp_report.php
  74. 2
      public/main/lp/lp_subscribe_users.php
  75. 2
      public/main/lp/lp_subscribe_users_to_category.php
  76. 4
      public/main/lp/lp_view.php
  77. 2
      public/main/my_space/exercise_category_report.php
  78. 2
      public/main/my_space/myStudents.php
  79. 2
      public/main/portfolio/index.php
  80. 2
      public/main/session/resume_session.php
  81. 2
      public/main/session/session_import.php
  82. 2
      public/main/skills/assign.php
  83. 2
      public/main/skills/skill_rel_course.php
  84. 2
      public/main/social/map.php
  85. 2
      public/main/survey/survey.php
  86. 16
      public/main/survey/surveyUtil.class.php
  87. 2
      public/main/survey/survey_invitation.php
  88. 4
      public/main/template/default/exercise/partials/result_exercise.html.twig
  89. 2
      public/main/template/default/social/home.html.twig
  90. 2
      public/main/ticket/ticket_details.php
  91. 4
      public/main/tracking/courseLog.php
  92. 2
      public/main/tracking/total_time.php
  93. 2
      public/main/user/user.php
  94. 2
      public/main/work/work.lib.php
  95. 2
      public/main/work/work_list_all.php
  96. 203
      src/CoreBundle/Entity/NotificationEvent.php
  97. 46
      src/CoreBundle/Entity/Ticket.php
  98. 191
      src/CoreBundle/Migrations/Schema/V200/Version20230216122900.php
  99. 72
      src/CoreBundle/Migrations/Schema/V200/Version20230216122950.php
  100. 73
      src/CoreBundle/Settings/AgendaSettingsSchema.php
  101. Some files were not shown because too many files have changed in this diff Show More

@ -8,7 +8,7 @@ require_once __DIR__.'/../inc/global.inc.php';
api_protect_admin_script();
$allow = api_get_configuration_value('gradebook_dependency');
$allow = ('true' === api_get_setting('gradebook.gradebook_dependency'));
if (false == $allow) {
api_not_allowed(true);
}
@ -52,7 +52,7 @@ if (empty($dependencies)) {
$content = '';
$courseList = [];
$mandatoryList = api_get_configuration_value('gradebook_dependency_mandatory_courses');
$mandatoryList = api_get_setting('gradebook.gradebook_dependency_mandatory_courses', true);
$mandatoryList = isset($mandatoryList['courses']) ? $mandatoryList['courses'] : [];
$mandatoryListCompleteList = [];
foreach ($mandatoryList as $courseMandatoryId) {

@ -11,7 +11,7 @@ require_once __DIR__.'/../inc/global.inc.php';
api_protect_admin_script();
$allow = api_get_configuration_value('gradebook_dependency');
$allow = ('true' === api_get_setting('gradebook.gradebook_dependency'));
if (false == $allow) {
api_not_allowed(true);
}

@ -299,7 +299,7 @@ if (api_is_platform_admin()) {
'url' => api_get_path(WEB_CODE_PATH).'skills/skill_badge.php',
'label' => get_lang('Badges')
);*/
$allow = api_get_configuration_value('gradebook_dependency');
$allow = ('true' === api_get_setting('gradebook.gradebook_dependency'));
if (!$allow) {
$items[] = [
'url' => 'gradebook_list.php',

@ -23,7 +23,7 @@ $action_todo = false;
api_protect_admin_script(true);
$allowCareers = api_get_configuration_value('allow_careers_in_global_announcements');
$allowCareers = ('true' === api_get_setting('announcement.allow_careers_in_global_announcements'));
// Setting breadcrumbs.
$interbreadcrumb[] = [

@ -296,7 +296,7 @@ $returnParams = $extraField->addElements(
true
);
$allowEmailTemplate = api_get_configuration_value('mail_template_system');
$allowEmailTemplate = ('true' === api_get_setting('mail.mail_template_system'));
if ($allowEmailTemplate) {
$form->addEmailTemplate(
[

@ -340,7 +340,7 @@ $returnParams = $extraField->addElements(
);
$jqueryReadyContent = $returnParams['jquery_ready_content'];
$allowEmailTemplate = api_get_configuration_value('mail_template_system');
$allowEmailTemplate = ('true' === api_get_setting('mail.mail_template_system'));
if ($allowEmailTemplate) {
$form->addEmailTemplate(['user_edit_content.tpl']);
}
@ -353,7 +353,7 @@ $(function () {
</script>';
// Freeze user conditions, admin cannot updated them
$extraConditions = api_get_configuration_value('show_conditions_to_user');
$extraConditions = api_get_setting('profile.show_conditions_to_user', true);
if ($extraConditions && isset($extraConditions['conditions'])) {
$extraConditions = $extraConditions['conditions'];

@ -705,7 +705,7 @@ $defaults['formSent'] = 1;
$defaults['sendMail'] = 0;
$defaults['file_type'] = 'csv';
$extraSettings = api_get_configuration_value('user_import_settings');
$extraSettings = api_get_setting('profile.user_import_settings', true);
if (!empty($extraSettings) && isset($extraSettings['options']) &&
isset($extraSettings['options']['send_mail_default_option'])
) {

@ -672,7 +672,7 @@ echo Tracking::displayUserSkills(
0,
0
);
if (api_get_configuration_value('allow_career_users')) {
if ('true' === api_get_setting('profile.allow_career_users')) {
$careers = UserManager::getUserCareers($userId);
if (!empty($careers)) {
echo Display::page_subheader(get_lang('Careers'), null, 'h3', ['class' => 'section-title']);

@ -329,7 +329,7 @@ function prepare_user_sql_query($getCount)
$sql .= $extraConditions;
$variables = Session::read('variables_to_show', []);
$extraFields = api_get_configuration_value('user_search_on_extra_fields');
$extraFields = api_get_setting('profile.user_search_on_extra_fields', true);
if (!empty($extraFields) && isset($extraFields['extra_fields']) && isset($_GET['keyword'])) {
$extraFieldList = $extraFields['extra_fields'];

@ -69,7 +69,7 @@ $courseCatalogSettings = [
];
$redirectAfterSubscription = 'course_home';
$settings = api_get_configuration_value('course_catalog_settings');
$settings = api_get_setting('course.course_catalog_settings', true);
// By default all extra fields are shown (visible and filterable)
$extraFieldsInSearchForm = [];
$extraFieldsInCourseBlock = [];

@ -26,7 +26,7 @@ $allowedFields = [
'address',
];
$allowedFieldsConfiguration = api_get_configuration_value('allow_fields_inscription');
$allowedFieldsConfiguration = api_get_setting('profile.allow_fields_inscription', true);
if (false !== $allowedFieldsConfiguration) {
$allowedFields = isset($allowedFieldsConfiguration['fields']) ? $allowedFieldsConfiguration['fields'] : [];
$allowedFields['extra_fields'] = isset($allowedFieldsConfiguration['extra_fields']) ? $allowedFieldsConfiguration['extra_fields'] : [];
@ -105,14 +105,12 @@ $extraFieldsLoaded = false;
$htmlHeadXtra[] = api_get_password_checker_js('#username', '#pass1');
// User is not allowed if Terms and Conditions are disabled and
// registration is disabled too.
//$isNotAllowedHere = 'false' === api_get_setting('allow_terms_conditions') &&
// 'false' === api_get_setting('allow_registration');
$isNotAllowedHere = false;
$isNotAllowedHere = ('false' === api_get_setting('allow_terms_conditions') && 'false' === api_get_setting('allow_registration'));
if ($isNotAllowedHere) {
api_not_allowed(true, get_lang('Sorry, you are trying to access the registration page for this portal, but registration is currently disabled. Please contact the administrator (see contact information in the footer). If you already have an account on this site.'));
}
$extraConditions = api_get_configuration_value('show_conditions_to_user');
$extraConditions = api_get_setting('profile.show_conditions_to_user', true);
if ($extraConditions && isset($extraConditions['conditions'])) {
// Create user extra fields for the conditions
$userExtraField = new ExtraField('user');
@ -453,7 +451,7 @@ if (false === $userAlreadyRegisteredShowTerms &&
if (isset($allowedFields['extra_fields']) && is_array($allowedFields['extra_fields'])) {
$extraFieldList = $allowedFields['extra_fields'];
}
$requiredFields = api_get_configuration_value('required_extra_fields_in_inscription');
$requiredFields = api_get_setting('profile.required_extra_fields_in_inscription', true);
if (!empty($requiredFields) && $requiredFields['options']) {
$requiredFields = $requiredFields['options'];
}

@ -115,7 +115,7 @@ if (empty($content)) {
$message = Display::return_message(get_lang('No data available'), 'warning');
}
$show = api_get_configuration_value('allow_career_users');
$show = ('true' === api_get_setting('profile.allow_career_users'));
if ($show) {
$careers = UserManager::getUserCareers($user_id);

@ -353,7 +353,7 @@ if ('true' === api_get_setting('profile.is_editable')) {
}
// Student cannot modified their user conditions
$extraConditions = api_get_configuration_value('show_conditions_to_user');
$extraConditions = api_get_setting('profile.show_conditions_to_user', true);
if ($extraConditions && isset($extraConditions['conditions'])) {
$extraConditions = $extraConditions['conditions'];
foreach ($extraConditions as $condition) {

@ -182,7 +182,7 @@ $agendaColors = array_merge(
'personal' => 'steel blue', //steel blue
'student_publication' => '#FF8C00', //DarkOrange
],
api_get_configuration_value('agenda_colors') ?: []
api_get_setting('agenda.agenda_colors', true) ?: []
);
switch ($type_event_class) {
@ -279,9 +279,9 @@ $form->addLabel(get_lang('Attachment'), '<div id="attachment_text" style="displa
$form->addHtml('</div>');
$tpl->assign('form_add', $form->returnForm());
$tpl->assign('legend_list', api_get_configuration_value('agenda_legend'));
$tpl->assign('legend_list', api_get_setting('agenda.agenda_legend', true));
$onHoverInfo = api_get_configuration_value('agenda_on_hover_info');
$onHoverInfo = api_get_setting('agenda.agenda_on_hover_info', true);
if (!empty($onHoverInfo)) {
$options = $onHoverInfo['options'];
} else {

@ -851,7 +851,7 @@ class ImportCsv
$value = $extraFieldValue['value'];
}
if (!empty($user_id) && $value != $user_id) {
$emails = api_get_configuration_value('cron_notification_help_desk');
$emails = api_get_setting('mail.cron_notification_help_desk', true);
if (!empty($emails)) {
$this->logger->addInfo('Preparing email to users in configuration: "cron_notification_help_desk"');
$subject = 'User not added due to same username';
@ -3201,7 +3201,7 @@ class ImportCsv
}
$logger = new Logger('cron');
$emails = isset($_configuration['cron_notification_mails']) ? $_configuration['cron_notification_mails'] : null;
$emails = api_get_setting('mail.cron_notification_mails', true);
$minLevel = Logger::DEBUG;

@ -57,7 +57,7 @@ class UniqueAnswerImage extends UniqueAnswer
get_lang('Images will be resized (up or down) to 200x150 pixels. For a better rendering of the question, we recommend you upload only images of this size.')
.'</div>';
$zoomOptions = api_get_configuration_value('quiz_image_zoom');
$zoomOptions = api_get_setting('exercise.quiz_image_zoom', true);
if (isset($zoomOptions['options'])) {
$finderFolder = api_get_path(WEB_PATH).'vendor/studio-42/elfinder/';
$html .= '<!-- elFinder CSS (REQUIRED) -->';

@ -4,7 +4,7 @@
require_once __DIR__.'/../inc/global.inc.php';
if (false === api_get_configuration_value('allow_exercise_categories')) {
if ('true' !== api_get_setting('exercise.allow_exercise_categories')) {
api_not_allowed(true);
}

@ -866,7 +866,7 @@ class Exercise
);
$questionsByCategoryMandatory = [];
if (EX_Q_SELECTION_CATEGORIES_ORDERED_QUESTIONS_RANDOM == $this->getQuestionSelectionType() &&
api_get_configuration_value('allow_mandatory_question_in_category')
('true' === api_get_setting('exercise.allow_mandatory_question_in_category'))
) {
$questionsByCategoryMandatory = TestCategory::getQuestionsByCat(
$this->id,
@ -1608,7 +1608,7 @@ class Exercise
->setHideQuestionNumber((int) $this->hideQuestionNumber)
;
$allow = api_get_configuration_value('allow_exercise_categories');
$allow = ('true' === api_get_setting('exercise.allow_exercise_categories'));
if (true === $allow && !empty($this->getExerciseCategoryId())) {
$exercise->setExerciseCategory($repoCategory->find($this->getExerciseCategoryId()));
}
@ -1858,7 +1858,7 @@ class Exercise
$form->addElement('advanced_settings', 'advanced_params', get_lang('Advanced settings'));
$form->addElement('html', '<div id="advanced_params_options" style="display:none">');
if (api_get_configuration_value('allow_exercise_categories')) {
if ('true' === api_get_setting('exercise.allow_exercise_categories')) {
$categoryManager = new ExerciseCategoryManager();
$categories = $categoryManager->getCategories(api_get_course_int_id());
$options = [];
@ -6385,7 +6385,7 @@ class Exercise
$data['number_of_answers_saved'] = $savedAnswersCount;
$exeId = $trackExerciseInfo['exe_id'];
if (false !== api_get_configuration_value('quiz_confirm_saved_answers')) {
if ('true' === api_get_setting('exercise.quiz_confirm_saved_answers')) {
$em = Database::getManager();
if ($saveUserResult) {
@ -8299,7 +8299,7 @@ class Exercise
public function setPageResultConfiguration(array $values)
{
$pageConfig = api_get_configuration_value('allow_quiz_results_page_config');
$pageConfig = ('true' === api_get_setting('exercise.allow_quiz_results_page_config'));
if ($pageConfig) {
$params = [
'hide_expected_answer' => $values['hide_expected_answer'] ?? '',
@ -8328,7 +8328,7 @@ class Exercise
*/
public function getPageResultConfiguration()
{
$pageConfig = api_get_configuration_value('allow_quiz_results_page_config');
$pageConfig = ('true' === api_get_setting('exercise.allow_quiz_results_page_config'));
if ($pageConfig) {
return $this->pageResultConfiguration;
}
@ -8548,7 +8548,7 @@ class Exercise
*/
public function generateStats($exerciseId, $courseInfo, $sessionId)
{
$allowStats = api_get_configuration_value('allow_gradebook_stats');
$allowStats = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if (!$allowStats) {
return false;
}
@ -8778,7 +8778,7 @@ class Exercise
$from = $limit * ($page - 1);
$categoryCondition = '';
if (api_get_configuration_value('allow_exercise_categories')) {
if ('true' === api_get_setting('exercise.allow_exercise_categories')) {
if (!empty($categoryId)) {
$categoryCondition = " AND exercise_category_id = $categoryId ";
} else {

@ -321,7 +321,7 @@ if ($is_allowedToEdit && 'learnpath' !== $origin) {
$actionsLeft .= '<a href="'.api_get_path(WEB_CODE_PATH).'exercise/question_create.php?'.api_get_cidreq().'">'.
Display::return_icon('new_question.png', get_lang('Add a question'), '', ICON_SIZE_MEDIUM).'</a>';
if (api_get_configuration_value('allow_exercise_categories')) {
if ('true' === api_get_setting('exercise.allow_exercise_categories')) {
$actionsLeft .= '<a href="'.api_get_path(WEB_CODE_PATH).'exercise/category.php?'.api_get_cidreq().'">';
$actionsLeft .= Display::return_icon('folder.png', get_lang('Category'), '', ICON_SIZE_MEDIUM);
$actionsLeft .= '</a>';
@ -376,7 +376,7 @@ if ($is_allowedToEdit && 'learnpath' !== $origin) {
$form = new FormValidator('search_simple', 'get', $currentUrl, null, null, FormValidator::LAYOUT_INLINE);
$form->addCourseHiddenParams();
if (api_get_configuration_value('allow_exercise_categories')) {
if ('true' === api_get_setting('exercise.allow_exercise_categories')) {
$manager = new ExerciseCategoryManager();
$options = $manager->getCategoriesForSelect(api_get_course_int_id());
if (!empty($options)) {
@ -408,7 +408,7 @@ if ($is_allowedToEdit) {
);
}
if (false === api_get_configuration_value('allow_exercise_categories')) {
if ('true' !== api_get_setting('exercise.allow_exercise_categories')) {
echo Exercise::exerciseGridResource(0, $keyword);
} else {
if (empty($categoryId)) {

@ -40,7 +40,7 @@ $is_allowedToEdit = api_is_allowed_to_edit(null, true);
$courseId = api_get_course_int_id();
$sessionId = api_get_session_id();
$glossaryExtraTools = api_get_setting('show_glossary_in_extra_tools');
$allowTimePerQuestion = api_get_configuration_value('allow_time_per_question');
$allowTimePerQuestion = ('true' === api_get_setting('exercise.allow_time_per_question'));
if ($allowTimePerQuestion) {
$htmlHeadXtra[] = api_get_asset('easytimer/easytimer.min.js');
}
@ -80,7 +80,7 @@ if ('true' === api_get_setting('enable_record_audio')) {
$htmlHeadXtra[] = api_get_js('record_audio/record_audio.js');
}
$zoomOptions = api_get_configuration_value('quiz_image_zoom');
$zoomOptions = api_get_setting('exercise.quiz_image_zoom', true);
if (isset($zoomOptions['options']) && !in_array($origin, ['embeddable', 'mobileapp'])) {
$options = $zoomOptions['options'];
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_JS_PATH).'jquery.elevatezoom.js"></script>';

@ -184,7 +184,7 @@ abstract class Question
$objQuestion->category = (int) $categoryInfo['category_id'];
}
if (api_get_configuration_value('allow_mandatory_question_in_category') &&
if (('true' === api_get_setting('exercise.allow_mandatory_question_in_category')) &&
isset($categoryInfo['mandatory'])
) {
$objQuestion->mandatory = (int) $categoryInfo['mandatory'];
@ -228,7 +228,7 @@ abstract class Question
*/
public function selectTitle()
{
if (!('true' === api_get_setting('editor.save_titles_as_html'))) {
if ('true' !== api_get_setting('editor.save_titles_as_html')) {
return $this->question;
}
@ -376,7 +376,7 @@ abstract class Question
";
$res = Database::query($sql);
$row = Database::fetch_array($res);
$allowMandatory = api_get_configuration_value('allow_mandatory_question_in_category');
$allowMandatory = ('true' === api_get_setting('exercise.allow_mandatory_question_in_category'));
if ($row['nb'] > 0) {
$extraMandatoryCondition = '';
if ($allowMandatory) {
@ -1153,7 +1153,7 @@ abstract class Question
*/
public function createForm(&$form, $exercise)
{
$zoomOptions = api_get_configuration_value('quiz_image_zoom');
$zoomOptions = api_get_setting('exercise.quiz_image_zoom', true);
if (isset($zoomOptions['options'])) {
$finderFolder = api_get_path(WEB_PATH).'vendor/studio-42/elfinder/';
echo '<!-- elFinder CSS (REQUIRED) -->';
@ -1269,7 +1269,7 @@ abstract class Question
TestCategory::getCategoriesIdAndName()
);
if (EX_Q_SELECTION_CATEGORIES_ORDERED_QUESTIONS_RANDOM == $exercise->getQuestionSelectionType() &&
api_get_configuration_value('allow_mandatory_question_in_category')
('true' === api_get_setting('exercise.allow_mandatory_question_in_category'))
) {
$form->addCheckBox('mandatory', get_lang('IsMandatory'));
}

@ -5450,7 +5450,7 @@ function getReportRecipients()
break;
case 'community_managers':
$managers = api_get_configuration_value('community_managers_user_list');
$managers = api_get_setting('profile.community_managers_user_list', true);
if (!empty($managers) && isset($managers['users'])) {
$users = array_merge($users, $managers['users']);
}

@ -210,7 +210,7 @@ if (count($userList) > 0) {
}
echo '</div>';
$allowSkillRelItem = api_get_configuration_value('allow_skill_rel_items');
$allowSkillRelItem = ('true' === api_get_setting('skill.allow_skill_rel_items'));
if (0 == count($userList)) {
echo Display::return_message(get_lang('No results available'), 'warning');
@ -223,7 +223,7 @@ if (0 == count($userList)) {
echo '<th>';
echo get_lang('Action');
echo '</th></tr>';
$allowComments = api_get_configuration_value('allow_gradebook_comments');
$allowComments = ('true' === api_get_setting('gradebook.allow_gradebook_comments'));
foreach ($userList as $index => $value) {
$userData = api_get_person_name($value['firstname'], $value['lastname']).' ('.$value['username'].')';
echo '<tr>

@ -48,7 +48,7 @@ if ($edit_result_form->validate()) {
$result->set_score($score);
$result->save();
$allowMultipleAttempts = api_get_configuration_value('gradebook_multiple_evaluation_attempts');
$allowMultipleAttempts = ('true' === api_get_setting('gradebook.gradebook_multiple_evaluation_attempts'));
if ($allowMultipleAttempts) {
$table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_RESULT_ATTEMPT);
$now = api_get_utc_datetime();

@ -52,7 +52,7 @@ if (isset($_GET['selecteval'])) {
$iscourse = !empty(api_get_course_id());
}
$allowMultipleAttempts = api_get_configuration_value('gradebook_multiple_evaluation_attempts');
$allowMultipleAttempts = ('true' === api_get_setting('gradebook.gradebook_multiple_evaluation_attempts'));
if (isset($_GET['action'])) {
switch ($_GET['action']) {

@ -936,7 +936,7 @@ if (isset($first_time) && 1 == $first_time && api_is_allowed_to_edit(null, true)
$allowGraph = ('false' === api_get_setting('gradebook.gradebook_hide_graph'));
$isAllow = api_is_allowed_to_edit(null, true);
$settings = api_get_configuration_value('gradebook_pdf_export_settings');
$settings = api_get_setting('gradebook.gradebook_pdf_export_settings', true);
$showFeedBack = true;
if (isset($settings['hide_feedback_textarea']) && $settings['hide_feedback_textarea']) {
$showFeedBack = false;

@ -402,7 +402,7 @@ class GradebookUtils
).
'</a>';
$allowStats = api_get_configuration_value('allow_gradebook_stats');
$allowStats = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if ($allowStats) {
$modify_icons .= Display::url(
Display::return_icon('reload.png', get_lang('Generate statistics')),
@ -493,7 +493,7 @@ class GradebookUtils
).
'</a>';
$allowStats = api_get_configuration_value('allow_gradebook_stats');
$allowStats = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if ($allowStats && LINK_EXERCISE == $link->get_type()) {
$modify_icons .= Display::url(
Display::return_icon('reload.png', get_lang('Generate statistics')),
@ -1631,7 +1631,7 @@ class GradebookUtils
$pdf->params['student_info'] = $userInfo;
$extraRows = [];
if (api_get_configuration_value('allow_gradebook_comments')) {
if ('true' === api_get_setting('gradebook.allow_gradebook_comments')) {
$commentInfo = self::getComment($cat->get_id(), $userId);
if ($commentInfo) {
$extraRows[] = [
@ -1643,7 +1643,7 @@ class GradebookUtils
$file = api_get_path(SYS_ARCHIVE_PATH).uniqid().'.html';
$settings = api_get_configuration_value('gradebook_pdf_export_settings');
$settings = api_get_setting('gradebook.gradebook_pdf_export_settings', true);
$showFeedBack = true;
if (isset($settings['hide_feedback_textarea']) && $settings['hide_feedback_textarea']) {
$showFeedBack = false;

@ -757,7 +757,7 @@ abstract class AbstractLink implements GradebookItem
private static function create_objects_from_sql_result($result)
{
$links = [];
$allow = api_get_configuration_value('allow_gradebook_stats');
$allow = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if ($allow) {
$em = Database::getManager();
$repo = $em->getRepository(GradebookLink::class);

@ -2545,7 +2545,7 @@ class Category implements GradebookItem
private static function create_category_objects_from_sql_result($result)
{
$categories = [];
$allow = api_get_configuration_value('allow_gradebook_stats');
$allow = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if ($allow) {
$em = Database::getManager();
$repo = $em->getRepository(GradebookCategory::class);

@ -537,7 +537,7 @@ class Evaluation implements GradebookItem
*/
public function calc_score($studentId = null, $type = null)
{
$allowStats = api_get_configuration_value('allow_gradebook_stats');
$allowStats = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if ($allowStats) {
$evaluation = $this->entity;
@ -879,7 +879,7 @@ class Evaluation implements GradebookItem
*/
public static function generateStats($evaluationId)
{
$allowStats = api_get_configuration_value('allow_gradebook_stats');
$allowStats = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if ($allowStats) {
$evaluation = self::load($evaluationId);
@ -937,7 +937,7 @@ class Evaluation implements GradebookItem
private static function create_evaluation_objects_from_sql_result($result)
{
$alleval = [];
$allow = api_get_configuration_value('allow_gradebook_stats');
$allow = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if ($allow) {
$em = Database::getManager();
$repo = $em->getRepository(GradebookEvaluation::class);

@ -126,7 +126,7 @@ class ExerciseLink extends AbstractLink
*/
public function calc_score($studentId = null, $type = null)
{
$allowStats = api_get_configuration_value('allow_gradebook_stats');
$allowStats = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if ($allowStats) {
$link = $this->entity;
if (!empty($link)) {

@ -290,7 +290,7 @@ class Result
$table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_RESULT);
$sql = 'DELETE FROM '.$table.' WHERE id = '.$this->id;
Database::query($sql);
$allowMultipleAttempts = api_get_configuration_value('gradebook_multiple_evaluation_attempts');
$allowMultipleAttempts = ('true' === api_get_setting('gradebook.gradebook_multiple_evaluation_attempts'));
if ($allowMultipleAttempts) {
$table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_RESULT_ATTEMPT);
$sql = "DELETE FROM $table WHERE result_id = ".$this->id;

@ -67,7 +67,7 @@ class DisplayGradebook
get_lang('Score').': '.$scoredisplay->display_score($student_score, SCORE_DIV_PERCENT)
);
$allowMultipleAttempts = api_get_configuration_value('gradebook_multiple_evaluation_attempts');
$allowMultipleAttempts = ('true' === api_get_setting('gradebook.gradebook_multiple_evaluation_attempts'));
if ($allowMultipleAttempts) {
$results = Result::load(null, api_get_user_id(), $evalobj->get_id());
if (!empty($results)) {

@ -447,7 +447,7 @@ class EvalForm extends FormValidator
$select->updateSelectWithSelectedOption($this);
}
$allowMultipleAttempts = api_get_configuration_value('gradebook_multiple_evaluation_attempts');
$allowMultipleAttempts = ('true' === api_get_setting('gradebook.gradebook_multiple_evaluation_attempts'));
if ($allowMultipleAttempts) {
$this->addTextarea('comment', get_lang('Comment'));
}

@ -105,7 +105,7 @@ class GradebookTable extends SortableTable
}
$model = ExerciseLib::getCourseScoreModel();
$settings = api_get_configuration_value('gradebook_pdf_export_settings');
$settings = api_get_setting('gradebook.gradebook_pdf_export_settings', true);
$showWeight = true;
if ($this->exportToPdf && isset($settings['hide_score_weight']) && $settings['hide_score_weight']) {
$showWeight = false;
@ -393,7 +393,7 @@ class GradebookTable extends SortableTable
$course_code = api_get_course_id();
$session_id = api_get_session_id();
$defaultData = Session::read($this->getPreloadDataKey());
$settings = api_get_configuration_value('gradebook_pdf_export_settings');
$settings = api_get_setting('gradebook.gradebook_pdf_export_settings', true);
$showWeight = true;
if ($this->exportToPdf && isset($settings['hide_score_weight']) && $settings['hide_score_weight']) {
$showWeight = false;

@ -227,7 +227,7 @@ class ResultTable extends SortableTable
private function build_edit_column($item)
{
$locked_status = $this->evaluation->get_locked();
$allowMultipleAttempts = api_get_configuration_value('gradebook_multiple_evaluation_attempts');
$allowMultipleAttempts = ('true' === api_get_setting('gradebook.gradebook_multiple_evaluation_attempts'));
$baseUrl = api_get_self().'?selecteval='.$this->evaluation->get_id().'&'.api_get_cidreq();
$editColumn = '';
if (api_is_allowed_to_edit(null, true) && 0 == $locked_status) {

@ -1042,7 +1042,7 @@ class FlatViewDataGenerator
*/
private function addExtraFieldColumnsHeaders(array &$headers)
{
$extraFieldColumns = api_get_configuration_value('gradebook_flatview_extrafields_columns');
$extraFieldColumns = api_get_setting('gradebook.gradebook_flatview_extrafields_columns', true);
if (!$extraFieldColumns || !is_array($extraFieldColumns)) {
return;
@ -1063,7 +1063,7 @@ class FlatViewDataGenerator
*/
private function addExtraFieldColumnsData(array &$row, $userId)
{
$extraFieldColumns = api_get_configuration_value('gradebook_flatview_extrafields_columns');
$extraFieldColumns = api_get_setting('gradebook.gradebook_flatview_extrafields_columns', true);
if (!$extraFieldColumns || !is_array($extraFieldColumns)) {
return;

@ -114,7 +114,7 @@ class GradebookDataGenerator
$userCount = !empty($studentList) ? count($studentList) : 0;
// Generate the data to display
$data = [];
$allowStats = api_get_configuration_value('allow_gradebook_stats');
$allowStats = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
$scoreDisplay = ScoreDisplay::instance();
$defaultData = Session::read($this->preLoadDataKey);
$model = ExerciseLib::getCourseScoreModel();

@ -7,7 +7,7 @@ use Chamilo\CoreBundle\Entity\SkillRelItemRelUser;
require_once __DIR__.'/../inc/global.inc.php';
if (false == api_get_configuration_value('allow_skill_rel_items')) {
if ('true' !== api_get_setting('skill.allow_skill_rel_items')) {
api_not_allowed(true);
}

@ -203,7 +203,7 @@ $form->addGroup(
false
);
$allowDocumentGroupAccess = api_get_configuration_value('group_category_document_access');
$allowDocumentGroupAccess = ('true' === api_get_setting('document.group_category_document_access'));
if ($allowDocumentGroupAccess) {
$form->addElement('html', '</div>');
$form->addElement('html', '<div class="col-md-6">');

@ -151,7 +151,7 @@ $form->addGroup(
false
);
$allowDocumentGroupAccess = api_get_configuration_value('group_document_access');
$allowDocumentGroupAccess = ('true' === api_get_setting('document.group_document_access'));
if ($allowDocumentGroupAccess) {
$form->addElement('html', '</div>');
$form->addElement('html', '<div class="col-md-6">');

@ -689,7 +689,7 @@ switch ($action) {
}
$questionDuration = 0;
if (api_get_configuration_value('allow_time_per_question')) {
if ('true' === api_get_setting('exercise.allow_time_per_question')) {
$extraFieldValue = new ExtraFieldValue('question');
$value = $extraFieldValue->get_values_by_handler_and_field_variable($objQuestionTmp->iid, 'time');
if (!empty($value) && isset($value['value']) && !empty($value['value'])) {
@ -827,7 +827,7 @@ switch ($action) {
$remind_list
);
if (api_get_configuration_value('allow_time_per_question')) {
if ('true' === api_get_setting('exercise.allow_time_per_question')) {
$questionStart = Session::read('question_start', []);
if (!empty($questionStart)) {
if (isset($questionStart[$my_question_id])) {
@ -994,7 +994,7 @@ switch ($action) {
break;
case 'quiz_confirm_saved_answers':
if (false === api_get_configuration_value('quiz_confirm_saved_answers')) {
if ('true' !== api_get_setting('exercise.quiz_confirm_saved_answers')) {
break;
}

@ -11,7 +11,7 @@ $action = $_REQUEST['a'];
switch ($action) {
case 'add_gradebook_comment':
if (true !== api_get_configuration_value('allow_gradebook_comments')) {
if ('true' !== api_get_setting('gradebook.allow_gradebook_comments')) {
exit;
}
if (api_is_allowed_to_edit(null, true)) {

@ -816,7 +816,7 @@ switch ($action) {
}
}
if ('custom' === $listType && api_get_configuration_value('allow_session_status')) {
if ('custom' === $listType && 'true' === api_get_setting('session.allow_session_status')) {
$whereCondition .= ' AND (s.status IN ("'.SessionManager::STATUS_PLANNED.'", "'.SessionManager::STATUS_PROGRESS.'") ) ';
}
@ -1439,7 +1439,7 @@ switch ($action) {
break;
case 'get_work_user_list_all':
$plagiarismColumns = [];
if (api_get_configuration_value('allow_compilatio_tool')) {
if (('true' === api_get_setting('document.allow_compilatio_tool'))) {
$plagiarismColumns = ['compilatio'];
}
if (isset($_GET['type']) && 'simple' === $_GET['type']) {
@ -1484,7 +1484,7 @@ switch ($action) {
exit;
}
$plagiarismColumns = [];
if (api_get_configuration_value('allow_compilatio_tool')) {
if (('true' === api_get_setting('document.allow_compilatio_tool'))) {
$plagiarismColumns = ['compilatio'];
}
$columns = [
@ -1513,7 +1513,7 @@ switch ($action) {
break;
case 'get_work_user_list_others':
$plagiarismColumns = [];
if (api_get_configuration_value('allow_compilatio_tool')) {
if (('true' === api_get_setting('document.allow_compilatio_tool'))) {
$plagiarismColumns = ['compilatio'];
}
@ -1553,7 +1553,7 @@ switch ($action) {
break;
case 'get_work_user_list':
$plagiarismColumns = [];
if (api_get_configuration_value('allow_compilatio_tool') && api_is_allowed_to_edit()) {
if (('true' === api_get_setting('document.allow_compilatio_tool')) && api_is_allowed_to_edit()) {
$plagiarismColumns = ['compilatio'];
}
if (isset($_GET['type']) && 'simple' == $_GET['type']) {
@ -1687,7 +1687,7 @@ switch ($action) {
'username',
];
$extraFieldsToAdd = [];
$extraFields = api_get_configuration_value('exercise_category_report_user_extra_fields');
$extraFields = api_get_setting('exercise.exercise_category_report_user_extra_fields', true);
$roundValues = ('true' === api_get_setting('exercise.exercise_category_round_score_in_export'));
if (!empty($extraFields) && isset($extraFields['fields'])) {

@ -395,7 +395,7 @@ switch ($action) {
]);
break;
case 'update_skill_rel_user':
$allowSkillInTools = api_get_configuration_value('allow_skill_rel_items');
$allowSkillInTools = ('true' === api_get_setting('skill.allow_skill_rel_items'));
if (empty($allowSkillInTools)) {
exit;
}
@ -458,7 +458,7 @@ switch ($action) {
}
break;
case 'assign_user_to_skill':
$allowSkillInTools = api_get_configuration_value('allow_skill_rel_items');
$allowSkillInTools = ('true' === api_get_setting('skill.allow_skill_rel_items'));
if (empty($allowSkillInTools)) {
exit;
}

@ -621,7 +621,7 @@ switch ($action) {
$table = $table['table'];
break;
case 'status':
$sessionStatusAllowed = api_get_configuration_value('allow_session_status');
$sessionStatusAllowed = ('true' === api_get_setting('session.allow_session_status'));
if (!$sessionStatusAllowed) {
exit;
}

@ -539,7 +539,7 @@ class AnnouncementManager
$html .= Display::dateToStringAgoAndLongDate($lastEdit);
$html .= "</td></tr>";
$allow = !('true' === api_get_setting('announcement.hide_announcement_sent_to_users_info'));
$allow = ('true' !== api_get_setting('announcement.hide_announcement_sent_to_users_info'));
if ($allow && api_is_allowed_to_edit(false, true)) {
$sentTo = $announcement->getUsersAndGroupSubscribedToResource();
$sentToForm = self::sent_to_form($sentTo);

@ -27,13 +27,13 @@ class Compilatio
*/
public function __construct()
{
if (empty(api_get_configuration_value('allow_compilatio_tool')) ||
empty(api_get_configuration_value('compilatio_tool'))
if (('true' !== api_get_setting('document.allow_compilatio_tool')) ||
empty(api_get_setting('document.compilatio_tool', true))
) {
throw new Exception('Compilatio not available');
}
$settings = api_get_configuration_value('compilatio_tool');
$settings = api_get_setting('document.compilatio_tool', true);
if (isset($settings['settings'])) {
$settings = $settings['settings'];
@ -474,7 +474,7 @@ class Compilatio
*/
public static function plagiarismDeleteDoc($courseId, $itemId)
{
if (false === api_get_configuration_value('allow_compilatio_tool')) {
if ('true' !== api_get_setting('document.allow_compilatio_tool')) {
return false;
}

@ -1444,7 +1444,7 @@ class CoursesAndSessionsCatalog
public static function getCatalogSearchSettings()
{
$settings = api_get_configuration_value('catalog_settings');
$settings = api_get_setting('session.catalog_settings', true);
if (empty($settings)) {
// Default everything is visible
$settings = [

@ -819,7 +819,7 @@ class SkillModel extends Model
}
$isHierarchicalTable = ('true' === api_get_setting('skill.table_of_hierarchical_skill_presentation'));
$allowLevels = api_get_configuration_value('skill_levels_names');
$allowLevels = api_get_setting('skill.skill_levels_names', true);
$tableResult = '<div id="skillList">';
if ($isHierarchicalTable) {
@ -1885,7 +1885,7 @@ class SkillModel extends Model
$resultId = 0,
$addHeader = false
) {
$allowSkillInTools = api_get_configuration_value('allow_skill_rel_items');
$allowSkillInTools = ('true' === api_get_setting('skill.allow_skill_rel_items'));
if ($allowSkillInTools && !empty($typeId) && !empty($itemId) && !empty($userId)) {
$em = Database::getManager();
$items = $em->getRepository(SkillRelItem::class)->findBy(
@ -1963,7 +1963,7 @@ class SkillModel extends Model
*/
public static function addSkillsToForm(FormValidator $form, $typeId, $itemId = 0)
{
$allowSkillInTools = api_get_configuration_value('allow_skill_rel_items');
$allowSkillInTools = ('true' === api_get_setting('skill.allow_skill_rel_items'));
if (!$allowSkillInTools) {
return [];
}
@ -2006,7 +2006,7 @@ class SkillModel extends Model
*/
public static function getSkillRelItemsPerCourse($courseId, $sessionId = null)
{
$allowSkillInTools = api_get_configuration_value('allow_skill_rel_items');
$allowSkillInTools = ('true' === api_get_setting('skill.allow_skill_rel_items'));
$skills = [];
if (empty($sessionId)) {
@ -2104,7 +2104,7 @@ class SkillModel extends Model
*/
public static function getSkillRelItems($typeId, $itemId)
{
$allowSkillInTools = api_get_configuration_value('allow_skill_rel_items');
$allowSkillInTools = ('true' === api_get_setting('skill.allow_skill_rel_items'));
$skills = [];
if ($allowSkillInTools) {
$em = Database::getManager();
@ -2144,7 +2144,7 @@ class SkillModel extends Model
*/
public static function deleteSkillsFromItem($itemId, $typeId)
{
$allowSkillInTools = api_get_configuration_value('allow_skill_rel_items');
$allowSkillInTools = ('true' === api_get_setting('skill.allow_skill_rel_items'));
if ($allowSkillInTools) {
$itemId = (int) $itemId;
$typeId = (int) $typeId;
@ -2174,7 +2174,7 @@ class SkillModel extends Model
*/
public static function saveSkills($form, $typeId, $itemId)
{
$allowSkillInTools = api_get_configuration_value('allow_skill_rel_items');
$allowSkillInTools = ('true' === api_get_setting('skill.allow_skill_rel_items'));
if ($allowSkillInTools) {
$userId = api_get_user_id();
$courseId = api_get_course_int_id();
@ -2254,7 +2254,7 @@ class SkillModel extends Model
*/
public static function saveSkillsToCourse($skills, $courseId, $sessionId)
{
$allowSkillInTools = api_get_configuration_value('allow_skill_rel_items');
$allowSkillInTools = ('true' === api_get_setting('skill.allow_skill_rel_items'));
if (!$allowSkillInTools) {
return false;
}

@ -134,7 +134,7 @@ class Agenda
'personal' => 'steel blue', //steel blue
'student_publication' => '#FF8C00', //DarkOrange
],
api_get_configuration_value('agenda_colors') ?: []
api_get_setting('agenda.agenda_colors', true) ?: []
);
// Event colors

@ -2230,7 +2230,7 @@ function api_generate_password($length = 8)
$minUpperCase = $length - $minLowerCase;
$password = '';
$passwordRequirements = api_get_configuration_value('password_requirements');
$passwordRequirements = api_get_setting('security.password_requirements', true);
$factory = new RandomLib\Factory();
$generator = $factory->getGenerator(new SecurityLib\Strength(SecurityLib\Strength::MEDIUM));
@ -2595,7 +2595,7 @@ function api_get_session_condition(
*
* @return string|array
*/
function api_get_setting($variable)
function api_get_setting($variable, $isArray = false)
{
$settingsManager = Container::getSettingsManager();
if (empty($settingsManager)) {
@ -2631,7 +2631,15 @@ function api_get_setting($variable)
return $newResult;
break;
default:
return $settingsManager->getSetting($variable);
$settingValue = $settingsManager->getSetting($variable);
if ($isArray && !empty($settingValue)) {
$strArrayValue = rtrim($settingValue, ';');
$value = eval("return $strArrayValue;");
if (is_array($value)) {
return $value;
}
}
return $settingValue;
break;
}
}
@ -3237,7 +3245,7 @@ function api_is_allowed_to_edit(
$sessionId = api_get_session_id();
if ($sessionId && api_get_configuration_value('session_courses_read_only_mode')) {
if ($sessionId && 'true' === api_get_setting('session.session_courses_read_only_mode')) {
$efv = new ExtraFieldValue('course');
$lockExrafieldField = $efv->get_values_by_handler_and_field_variable(
api_get_course_int_id(),
@ -7027,7 +7035,7 @@ function api_mail_html(
$message = new TemplatedEmail();
$message->subject($subject);
$list = api_get_configuration_value('send_all_emails_to');
$list = api_get_setting('announcement.send_all_emails_to', true);
if (!empty($list) && isset($list['emails'])) {
foreach ($list['emails'] as $email) {
$message->cc($email);

@ -85,7 +85,7 @@ function accessToWhoIsOnline()
}
if (true === $access) {
$profileList = api_get_configuration_value('allow_online_users_by_status');
$profileList = api_get_setting('security.allow_online_users_by_status', true);
if (!empty($profileList) && isset($profileList['status'])) {
$userInfo = api_get_user_info();
if ($userInfo['is_admin']) {

@ -1196,7 +1196,7 @@ class Display
// Default row quantity
if (!isset($extra_params['rowList'])) {
$extra_params['rowList'] = [20, 50, 100, 500, 1000, $all_value];
$rowList = api_get_configuration_value('table_row_list');
$rowList = api_get_setting('platform.table_row_list', true);
if (!empty($rowList) && isset($rowList['options'])) {
$rowList = $rowList['options'];
$rowList[] = $all_value;
@ -1316,7 +1316,7 @@ class Display
$json_encode = str_replace('"formatter":"extra_formatter"', 'formatter:extra_formatter', $json_encode);
$json_encode = str_replace(['{"first":"first",', '"end":"end"}'], '', $json_encode);
if (api_get_configuration_value('allow_compilatio_tool') &&
if (('true' === api_get_setting('document.allow_compilatio_tool')) &&
(false !== strpos($_SERVER['REQUEST_URI'], 'work/work.php') ||
false != strpos($_SERVER['REQUEST_URI'], 'work/work_list_all.php')
)

@ -516,7 +516,7 @@ class Event
$position = (int) $position;
$course_id = (int) $course_id;
$now = api_get_utc_datetime();
$recording = api_get_configuration_value('quiz_answer_extra_recording');
$recording = ('true' === api_get_setting('exercise.quiz_answer_extra_recording'));
// check user_id or get from context
if (empty($user_id)) {
@ -630,7 +630,7 @@ class Event
$em->flush();
}
} else {
if (api_get_configuration_value('allow_time_per_question')) {
if ('true' === api_get_setting('exercise.allow_time_per_question')) {
$attempt['seconds_spent'] = $questionDuration + (int) $attemptData['seconds_spent'];
}
Database::update(

@ -2805,7 +2805,7 @@ HOTSPOT;
*/
public static function getScoreModels()
{
return api_get_configuration_value('score_grade_model');
return api_get_setting('exercise.score_grade_model', true);
}
/**
@ -4687,7 +4687,7 @@ EOT;
$question_list
);
$allowStats = api_get_configuration_value('allow_gradebook_stats');
$allowStats = ('true' === api_get_setting('gradebook.allow_gradebook_stats'));
if ($allowStats) {
$objExercise->generateStats(
$objExercise->getId(),
@ -5166,7 +5166,7 @@ EOT;
*/
public static function getAdditionalTeacherActions($exerciseId, $iconSize = ICON_SIZE_SMALL)
{
$additionalActions = api_get_configuration_value('exercise_additional_teacher_modify_actions') ?: [];
$additionalActions = api_get_setting('exercise.exercise_additional_teacher_modify_actions', true) ?: [];
$actions = [];
foreach ($additionalActions as $additionalAction) {
@ -5304,7 +5304,7 @@ EOT;
$courseId,
$sessionId = 0
) {
if (!('true' === api_get_setting('exercise.quiz_generate_certificate_ending')) ||
if (('true' !== api_get_setting('exercise.quiz_generate_certificate_ending')) ||
!self::isSuccessExerciseResult($totalScore, $totalWeight, $objExercise->selectPassPercentage())
) {
return '';

@ -181,7 +181,7 @@ class ExtraField extends Model
if ('true' === api_get_setting('announcement.allow_scheduled_announcements')) {
$result[] = 'scheduled_announcement';
}
if (api_get_configuration_value('allow_portfolio_tool')) {
if ('true' === api_get_setting('platform.allow_portfolio_tool')) {
$result[] = 'portfolio';
}
sort($result);

@ -994,7 +994,7 @@ class GroupManager
$table = Database::get_course_table(TABLE_GROUP_CATEGORY);
$id = (int) $id;
$allowDocumentAccess = api_get_configuration_value('group_category_document_access');
$allowDocumentAccess = ('true' === api_get_setting('document.group_category_document_access'));
$documentCondition = '';
if ($allowDocumentAccess) {
$documentAccess = (int) $documentAccess;
@ -2932,7 +2932,7 @@ class GroupManager
}*/
// Check group document access
$allow = api_get_configuration_value('group_document_access');
$allow = ('true' === api_get_setting('document.group_document_access'));
if ($allow) {
$documentAccess = $group->getDocumentAccess();
}

@ -1728,7 +1728,7 @@ Do you really want to delete this category and its links ?')."')) return false;\
CURLOPT_TIMEOUT => 4,
];
$proxySettings = api_get_configuration_value('proxy_settings');
$proxySettings = api_get_setting('platform.proxy_settings', true);
if (!empty($proxySettings) &&
isset($proxySettings['curl_setopt_array'])

@ -1409,7 +1409,7 @@ class MessageManager
);
$layoutContent = '';
$emailbody = '';
if (true == api_get_configuration_value('mail_template_system')) {
if ('true' === api_get_setting('mail.mail_template_system')) {
$mailTemplateManager = new MailTemplateManager();
$templateText = $mailTemplateManager->getTemplateByType('new_user_mail_to_admin_approval.tpl');
if (empty($templateText)) {

@ -547,7 +547,7 @@ class Security
],
];
$passwordRequirements = api_get_configuration_value('password_requirements');
$passwordRequirements = api_get_setting('security.password_requirements', true);
if (!empty($passwordRequirements)) {
$requirements = $passwordRequirements;
}

@ -258,7 +258,7 @@ class SessionManager
//$values['session_category_id'] = $sessionCategoryId;
}
if (api_get_configuration_value('allow_session_status')) {
if ('true' === api_get_setting('session.allow_session_status')) {
$session->setStatus($status);
}
@ -521,7 +521,7 @@ class SessionManager
$select = "SELECT DISTINCT s.* ";
}
if (api_get_configuration_value('allow_session_status')) {
if ('true' === api_get_setting('session.allow_session_status')) {
$select .= ', status';
}
@ -1845,7 +1845,7 @@ class SessionManager
$sessionEntity->setCategory(null);
}
if (api_get_configuration_value('allow_session_status')) {
if ('true' === api_get_setting('session.allow_session_status')) {
$sessionEntity->setStatus($status);
}
@ -7948,7 +7948,7 @@ class SessionManager
]
);
if (api_get_configuration_value('allow_session_status')) {
if ('true' === api_get_setting('session.allow_session_status')) {
$statusList = self::getStatusList();
$form->addSelect(
'status',
@ -8364,7 +8364,7 @@ class SessionManager
];
}
if (api_get_configuration_value('allow_session_status')) {
if ('true' === api_get_setting('session.allow_session_status')) {
$columns[] = get_lang('SessionStatus');
$list = self::getStatusList();
$listToString = '';
@ -8473,7 +8473,7 @@ class SessionManager
];
}
if (api_get_configuration_value('allow_session_status')) {
if ('true' === api_get_setting('session.allow_session_status')) {
$columns[] = get_lang('SessionStatus');
$list = self::getStatusList();
$listToString = '';
@ -8655,7 +8655,7 @@ class SessionManager
];
}
if (api_get_configuration_value('allow_session_status')) {
if ('true' === api_get_setting('session.allow_session_status')) {
$columns[] = get_lang('SessionStatus');
$list = self::getStatusList();
$listToString = '';

@ -1037,7 +1037,7 @@ class SocialManager extends UserManager
$userRelationType = self::get_relation_between_contacts($currentUserId, $userId);
}
$options = api_get_configuration_value('profile_fields_visibility');
$options = api_get_setting('profile.profile_fields_visibility', true);
if (isset($options['options'])) {
$options = $options['options'];
}
@ -1318,7 +1318,7 @@ class SocialManager extends UserManager
*/
public static function getExtraFieldBlock($user_id, $isArray = false)
{
$fieldVisibility = api_get_configuration_value('profile_fields_visibility');
$fieldVisibility = api_get_setting('profile.profile_fields_visibility', true);
$fieldVisibilityKeys = [];
if (isset($fieldVisibility['options'])) {
$fieldVisibility = $fieldVisibility['options'];

@ -778,7 +778,7 @@ class SortableTable extends HTML_Table
.'per_page" onchange="javascript: this.form.submit();">';
$list = [10, 20, 50, 100, 500, 1000];
$rowList = api_get_configuration_value('table_row_list');
$rowList = api_get_setting('platform.table_row_list', true);
if (!empty($rowList) && isset($rowList['options'])) {
$list = $rowList['options'];
}

@ -107,7 +107,7 @@ class SystemAnnouncementManager
->setUrl(api_get_url_entity())
->setRoles($visibility);
if (api_get_configuration_value('allow_careers_in_global_announcements') && !empty($careerId)) {
if (('true' === api_get_setting('announcement.allow_careers_in_global_announcements')) && !empty($careerId)) {
$careerRepo = Container::getCareerRepository();
$sysAnnouncement->setCareer($careerRepo->find($careerId));
@ -409,7 +409,7 @@ class SystemAnnouncementManager
//$list = self::getVisibilityList();
$table = Database::get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
if (api_get_configuration_value('allow_careers_in_global_announcements') && !empty($careerId)) {
if (('true' === api_get_setting('announcement.allow_careers_in_global_announcements')) && !empty($careerId)) {
$params = [];
$params['career_id'] = (int) $careerId;
$params['promotion_id'] = (int) $promotionId;

@ -444,7 +444,7 @@ class Template
'mediaelement/plugins/vrview/vrview.css',
];
$features = api_get_configuration_value('video_features');
$features = api_get_setting('platform.video_features', true);
$defaultFeatures = ['playpause', 'current', 'progress', 'duration', 'tracks', 'volume', 'fullscreen', 'vrview'];
if (!empty($features) && isset($features['features'])) {
@ -596,7 +596,7 @@ class Template
'mediaelement/plugins/vrview/vrview.js',
];
$features = api_get_configuration_value('video_features');
$features = api_get_setting('platform.video_features', true);
if (!empty($features) && isset($features['features'])) {
foreach ($features['features'] as $feature) {
if ('vrview' === $feature) {

@ -1782,7 +1782,7 @@ class Tracking
*/
public static function minimumTimeAvailable($sessionId, $courseId)
{
if (!('true' === api_get_setting('lp.lp_minimum_time'))) {
if ('true' !== api_get_setting('lp.lp_minimum_time')) {
return false;
}
@ -4521,7 +4521,7 @@ class Tracking
],
];
$trackingColumnsConfig = api_get_configuration_value('tracking_columns');
$trackingColumnsConfig = api_get_setting('session.tracking_columns', true);
if (!empty($trackingColumnsConfig)) {
$trackingColumns = $trackingColumnsConfig;
}
@ -5558,7 +5558,7 @@ class Tracking
];
$headers = '';
$trackingColumns = api_get_configuration_value('tracking_columns');
$trackingColumns = api_get_setting('session.tracking_columns', true);
if (isset($trackingColumns['my_progress_lp'])) {
foreach ($columnHeaders as $key => $value) {
if (!isset($trackingColumns['my_progress_lp'][$key]) ||
@ -7718,7 +7718,7 @@ class Tracking
'last_connection' => get_lang('LastConnexion'),
];
$trackingColumns = api_get_configuration_value('tracking_columns');
$trackingColumns = api_get_setting('session.tracking_columns', true);
if (isset($trackingColumns['my_progress_lp'])) {
$columnHeaders = array_filter(
@ -8651,7 +8651,7 @@ class TrackingCourseLog
$sortByFirstName = api_sort_by_first_name();
Session::write('user_id_list', []);
$userIdList = [];
$addExerciseOption = api_get_configuration_value('add_exercise_best_attempt_in_report');
$addExerciseOption = api_get_setting('exercise.add_exercise_best_attempt_in_report', true);
$exerciseResultsToCheck = [];
if (!empty($addExerciseOption) && isset($addExerciseOption['courses']) &&
isset($addExerciseOption['courses'][$courseCode])

@ -1312,7 +1312,7 @@ class UserGroupModel extends Model
*/
public function allowTeachers()
{
return true === api_get_configuration_value('allow_teachers_to_classes');
return 'true' === api_get_setting('profile.allow_teachers_to_classes');
}
/**

@ -518,7 +518,7 @@ class UserManager
}
}
$notification = api_get_configuration_value('send_notification_when_user_added');
$notification = api_get_setting('profile.send_notification_when_user_added', true);
if (!empty($notification) && isset($notification['admins']) && is_array($notification['admins'])) {
foreach ($notification['admins'] as $adminId) {
$emailSubjectToAdmin = get_lang('The user has been added').': '.
@ -2571,7 +2571,7 @@ class UserManager
}
// Order by dates according to settings
$orderBySettings = api_get_configuration_value('my_courses_session_order');
$orderBySettings = api_get_setting('session.my_courses_session_order', true);
if (!empty($orderBySettings) && isset($orderBySettings['field']) && isset($orderBySettings['order'])) {
$field = $orderBySettings['field'];
$orderSetting = $orderBySettings['order'];
@ -2634,6 +2634,9 @@ class UserManager
}
$collapsable = ('true' === api_get_setting('session.allow_user_session_collapsable'));
$extraField = new ExtraFieldValue('session');
$collapsableLink = api_get_path(WEB_PATH).'user_portal.php?action=collapse_session';
@ -6001,7 +6004,7 @@ SQL;
*/
public static function addUserCareer($userId, $careerId)
{
if (!api_get_configuration_value('allow_career_users')) {
if ('true' !== api_get_setting('profile.allow_career_users')) {
return false;
}
@ -6022,7 +6025,7 @@ SQL;
*/
public static function updateUserCareer($userCareerId, $data)
{
if (!api_get_configuration_value('allow_career_users')) {
if ('true' !== api_get_setting('profile.allow_career_users')) {
return false;
}

@ -904,7 +904,7 @@ class IndexManager
// Student info code check (shows student progress information on
// courses list
$studentInfo = api_get_configuration_value('course_student_info');
$studentInfo = api_get_setting('course.course_student_info', true);
$studentInfoProgress = !empty($studentInfo['progress']) && true === $studentInfo['progress'];
$studentInfoScore = !empty($studentInfo['score']) && true === $studentInfo['score'];
@ -1704,7 +1704,7 @@ class IndexManager
*/
public function setGradeBookDependencyBar($userId)
{
$allow = api_get_configuration_value('gradebook_dependency');
$allow = ('true' === api_get_setting('gradebook.gradebook_dependency'));
if (api_is_anonymous()) {
return false;
@ -1719,7 +1719,7 @@ class IndexManager
false
);
$courseList = api_get_configuration_value('gradebook_dependency_mandatory_courses');
$courseList = api_get_setting('gradebook.gradebook_dependency_mandatory_courses', true);
$courseList = $courseList['courses'] ?? [];
$mandatoryCourse = [];
if (!empty($courseList)) {
@ -1769,7 +1769,7 @@ class IndexManager
$finalResult = $result20 + $result80;
$gradeBookList = api_get_configuration_value('gradebook_badge_sidebar');
$gradeBookList = api_get_setting('gradebook.gradebook_badge_sidebar', true);
$gradeBookList = isset($gradeBookList['gradebooks']) ? $gradeBookList['gradebooks'] : [];
$badgeList = [];
foreach ($gradeBookList as $id) {

@ -1323,7 +1323,7 @@ class learnpath
$nextText = get_lang('Next');
$fullScreenText = get_lang('Back to normal screen');
$settings = api_get_configuration_value('lp_view_settings');
$settings = api_get_setting('lp.lp_view_settings', true);
$display = $settings['display'] ?? false;
$icon = Display::getMdiIcon('information');
@ -7154,7 +7154,7 @@ class learnpath
public static function getCategorySessionId($id)
{
if (false === api_get_configuration_value('allow_session_lp_category')) {
if ('true' !== api_get_setting('lp.allow_session_lp_category')) {
return 0;
}
@ -7544,7 +7544,7 @@ class learnpath
CURLOPT_MAXREDIRS => 10,
];
$proxySettings = api_get_configuration_value('proxy_settings');
$proxySettings = api_get_setting('platform.proxy_settings', true);
if (!empty($proxySettings) &&
isset($proxySettings['curl_setopt_array'])
) {
@ -8053,7 +8053,7 @@ class learnpath
*/
public static function getSubscriptionSettings()
{
$subscriptionSettings = api_get_configuration_value('lp_subscription_settings');
$subscriptionSettings = api_get_setting('lp.lp_subscription_settings', true);
if (empty($subscriptionSettings)) {
// By default, allow both settings
$subscriptionSettings = [

@ -56,7 +56,7 @@ $actions = '';
$allowCategory = true;
if (!empty($sessionId)) {
$allowCategory = false;
if (api_get_configuration_value('allow_session_lp_category')) {
if ('true' === api_get_setting('lp.allow_session_lp_category')) {
$allowCategory = true;
}
}
@ -870,8 +870,8 @@ learnpath::generate_learning_path_folder($courseInfo);
//DocumentManager::removeGeneratedAudioTempFile();
$downloadFileAfterFinish = '';
if ($ending && $allLpTimeValid && api_get_configuration_value('download_files_after_all_lp_finished')) {
$downloadFilesSetting = api_get_configuration_value('download_files_after_all_lp_finished');
if ($ending && $allLpTimeValid && api_get_setting('lp.download_files_after_all_lp_finished', true)) {
$downloadFilesSetting = api_get_setting('lp.download_files_after_all_lp_finished', true);
$courseCode = $courseInfo['code'];
$downloadFinishId = isset($_REQUEST['download_finished']) ? (int) $_REQUEST['download_finished'] : 0;
if (isset($downloadFilesSetting['courses'][$courseCode])) {

@ -51,7 +51,7 @@ if (empty($lp)) {
$urlBase = api_get_path(WEB_CODE_PATH).'lp/lp_controller.php?'.api_get_cidreq().'&action=report&lp_id='.$lpId;
$url = $urlBase.'&group_filter='.$groupFilter;
$allowUserGroups = api_get_configuration_value('allow_lp_subscription_to_usergroups');
$allowUserGroups = ('true' === api_get_setting('lp.allow_lp_subscription_to_usergroups'));
$course = api_get_course_entity($courseId);
$session = api_get_session_entity($sessionId);

@ -28,7 +28,7 @@ if (empty($lpId)) {
api_not_allowed(true);
}
$allowUserGroups = api_get_configuration_value('allow_lp_subscription_to_usergroups');
$allowUserGroups = ('true' === api_get_setting('lp.allow_lp_subscription_to_usergroups'));
$currentUser = api_get_user_entity(api_get_user_id());
$repo = Container::getLpRepository();
/** @var CLp $entity */

@ -29,7 +29,7 @@ if (false == $subscriptionSettings['allow_add_users_to_lp_category']) {
api_not_allowed(true);
}
$allowUserGroups = api_get_configuration_value('allow_lp_subscription_to_usergroups');
$allowUserGroups = ('true' === api_get_setting('lp.allow_lp_subscription_to_usergroups'));
$courseId = api_get_course_int_id();
$courseCode = api_get_course_id();
$sessionId = api_get_session_id();

@ -94,7 +94,7 @@ $(function() {
var chamilo_xajax_handler = window.oxajax;
</script>';
$zoomOptions = api_get_configuration_value('quiz_image_zoom');
$zoomOptions = api_get_setting('exercise.quiz_image_zoom', true);
if (isset($zoomOptions['options']) && !in_array($origin, ['embeddable', 'noheader'])) {
$options = $zoomOptions['options'];
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_JS_PATH).'jquery.elevatezoom.js"></script>';
@ -472,7 +472,7 @@ $template->assign('navigation_bar_bottom', $navigation_bar_bottom);
$template->assign('show_left_column', !$lp->getHideTocFrame());
$showMenu = 0;
$settings = api_get_configuration_value('lp_view_settings');
$settings = api_get_setting('lp.lp_view_settings', true);
$display = $settings['display'] ?? false;
$navigationInTheMiddle = false;
if (!empty($display)) {

@ -87,7 +87,7 @@ $form->addButtonSearch(get_lang('Search'));
Display::display_header($nameTools);
$form->display();
$extraFields = api_get_configuration_value('exercise_category_report_user_extra_fields');
$extraFields = api_get_setting('exercise.exercise_category_report_user_extra_fields', true);
if ($form->validate() && !empty($courseInfo)) {
$values = $form->getSubmitValues();

@ -1573,7 +1573,7 @@ if (empty($details)) {
if (INVITEE != $user->getStatus()) {
$csv_content[] = [];
$csv_content[] = [str_replace('&nbsp;', '', strip_tags($completeName))];
$trackingColumns = api_get_configuration_value('tracking_columns');
$trackingColumns = api_get_setting('session.tracking_columns', true);
if (isset($trackingColumns['my_students_lp'])) {
foreach ($columnHeaders as $key => $value) {
if (!isset($trackingColumns['my_progress_lp'][$key]) ||

@ -15,7 +15,7 @@ require_once __DIR__.'/../inc/global.inc.php';
api_block_anonymous_users();
if (false === api_get_configuration_value('allow_portfolio_tool')) {
if ('true' !== api_get_setting('platform.allow_portfolio_tool')) {
api_not_allowed(true);
}

@ -152,7 +152,7 @@ if (0 === $session->getNbrCourses()) {
$courseItem = '';
$courses = $session->getCourses();
$allowSkills = api_get_configuration_value('allow_skill_rel_items');
$allowSkills = ('true' === api_get_setting('skill.allow_skill_rel_items'));
/** @var SessionRelCourse $sessionRelCourse */
foreach ($courses as $sessionRelCourse) {

@ -586,7 +586,7 @@ $form->addButtonImport(get_lang('Import session(s)'));
$defaults = ['sendMail' => 'true', 'file_type' => 'csv'];
$options = api_get_configuration_value('session_import_settings');
$options = api_get_setting('session.session_import_settings', true);
if (!empty($options) && isset($options['options'])) {
if (isset($options['options']['session_exists_default_option'])) {
$defaults['overwrite'] = $options['options']['session_exists_default_option'];

@ -32,7 +32,7 @@ $skillRelSkill = $entityManager->getRepository(\Chamilo\CoreBundle\Entity\SkillR
$skillLevelRepo = $entityManager->getRepository(\Chamilo\CoreBundle\Entity\Level::class);
$skillUserRepo = $entityManager->getRepository(\Chamilo\CoreBundle\Entity\SkillRelUser::class);
$skillLevels = api_get_configuration_value('skill_levels_names');
$skillLevels = api_get_setting('skill.skill_levels_names', true);
$skillsOptions = ['' => get_lang('Select')];
$acquiredLevel = ['' => get_lang('none')];

@ -6,7 +6,7 @@ use Chamilo\CoreBundle\Entity\SkillRelCourse;
$cidReset = true;
require_once __DIR__.'/../inc/global.inc.php';
if (false == api_get_configuration_value('allow_skill_rel_items')) {
if ('true' !== api_get_setting('skill.allow_skill_rel_items')) {
api_not_allowed(true);
}

@ -11,7 +11,7 @@ require_once __DIR__.'/../inc/global.inc.php';
api_block_anonymous_users();
$fields = api_get_configuration_value('allow_social_map_fields');
$fields = api_get_setting('profile.allow_social_map_fields', true);
if (!$fields) {
api_not_allowed(true);

@ -161,7 +161,7 @@ $survey_actions .= '<a href="'.api_get_path(WEB_CODE_PATH).'survey/survey_invite
Display::return_icon('mail_send.png', get_lang('Publish'), '', ICON_SIZE_MEDIUM).'</a>';
if (3 != $survey_data['survey_type']) {
if (!('true' === api_get_setting('survey.hide_survey_reporting_button'))) {
if ('true' !== api_get_setting('survey.hide_survey_reporting_button')) {
$survey_actions .= Display::url(
Display::return_icon('statistics.png', get_lang('Reporting'), [], ICON_SIZE_MEDIUM),
api_get_path(WEB_CODE_PATH).'survey/reporting.php?'.api_get_cidreq().'&survey_id='.$survey_id

@ -2809,7 +2809,7 @@ class SurveyUtil
$table->set_header(7, get_lang('Invite'));
$table->set_header(8, get_lang('Anonymous'));
if (api_get_configuration_value('allow_mandatory_survey')) {
if ('true' === api_get_setting('survey.allow_mandatory_survey')) {
$table->set_header(9, get_lang('Mandatory?'));
$table->set_header(10, get_lang('Edit'), false, 'width="150"');
$table->set_column_filter(9, 'anonymous_filter');
@ -2858,7 +2858,7 @@ class SurveyUtil
$table->set_header(7, get_lang('Invite'));
$table->set_header(8, get_lang('Anonymous'));
if (api_get_configuration_value('allow_mandatory_survey')) {
if ('true' === api_get_setting('survey.allow_mandatory_survey')) {
$table->set_header(9, get_lang('Mandatory?'));
$table->set_header(10, get_lang('Edit'), false, 'width="150"');
$table->set_column_filter(8, 'anonymous_filter');
@ -2911,7 +2911,7 @@ class SurveyUtil
$table->set_header(7, get_lang('Invite'));
$table->set_header(8, get_lang('Anonymous'));
if (api_get_configuration_value('allow_mandatory_survey')) {
if ('true' === api_get_setting('survey.allow_mandatory_survey')) {
$table->set_header(9, get_lang('Edit'), false, 'width="130"');
$table->set_header(10, get_lang('Edit'), false, 'width="130"');
$table->set_column_filter(8, 'anonymous_filter');
@ -2934,7 +2934,7 @@ class SurveyUtil
*/
public static function checkHideEditionToolsByCode($surveyCode)
{
$hideSurveyEdition = api_get_configuration_value('hide_survey_edition');
$hideSurveyEdition = api_get_setting('survey.hide_survey_edition', true);
if (false === $hideSurveyEdition) {
return false;
@ -3114,7 +3114,7 @@ class SurveyUtil
*/
public static function getAdditionalTeacherActions($surveyId, $iconSize = ICON_SIZE_SMALL)
{
$additionalActions = api_get_configuration_value('survey_additional_teacher_modify_actions') ?: [];
$additionalActions = api_get_setting('survey.survey_additional_teacher_modify_actions', true) ?: [];
if (empty($additionalActions)) {
return '';
@ -3276,7 +3276,7 @@ class SurveyUtil
$table_survey = Database::get_course_table(TABLE_SURVEY);
$table_user = Database::get_main_table(TABLE_MAIN_USER);
$table_survey_question = Database::get_course_table(TABLE_SURVEY_QUESTION);
$mandatoryAllowed = api_get_configuration_value('allow_mandatory_survey');
$mandatoryAllowed = ('true' === api_get_setting('survey.allow_mandatory_survey'));
$allowSurveyAvailabilityDatetime = ('true' === api_get_setting('survey.allow_survey_availability_datetime'));
// Searching
@ -3426,7 +3426,7 @@ class SurveyUtil
*/
public static function get_survey_data_for_coach($from, $number_of_items, $column, $direction)
{
$mandatoryAllowed = api_get_configuration_value('allow_mandatory_survey');
$mandatoryAllowed = ('true' === api_get_setting('survey.allow_mandatory_survey'));
$allowSurveyAvailabilityDatetime = ('true' === api_get_setting('survey.allow_survey_availability_datetime'));
$repo = Container::getSurveyRepository();
$qb = $repo->findAllByCourse(
@ -3528,7 +3528,7 @@ class SurveyUtil
$course_id = $_course['real_id'];
$user_id = (int) $user_id;
$sessionId = api_get_session_id();
$mandatoryAllowed = api_get_configuration_value('allow_mandatory_survey');
$mandatoryAllowed = ('true' === api_get_setting('survey.allow_mandatory_survey'));
$allowSurveyAvailabilityDatetime = ('true' === api_get_setting('survey.allow_survey_availability_datetime'));
// Database table definitions

@ -58,7 +58,7 @@ $invitationsCount = count($sentInvitations);
$answeredCount = count($answered_data);
$unAnsweredCount = count($sentInvitations) - count($answered_data);
if (1 == $survey->getAnonymous() && !('true' === api_get_setting('survey.survey_anonymous_show_answered'))) {
if (1 == $survey->getAnonymous() && ('true' !== api_get_setting('survey.survey_anonymous_show_answered'))) {
echo Display::return_message(
get_lang('This survey is anonymous. You can\'t see who answered.').' '.$answeredCount.' '.get_lang(
'people answered'

@ -86,7 +86,7 @@
</span>
{% endif %}
{% if 'quiz_confirm_saved_answers'|api_get_configuration_value %}
{% if 'exercise.quiz_confirm_saved_answers'|api_get_setting == 'true' %}
{% set enable_form = data.track_confirmation.updatedAt is empty and data.track_confirmation.userId == _u.id %}
<form class="form-horizontal" action="#" id="quiz_confirm_saved_answers_form">
<div class="form-group">
@ -127,7 +127,7 @@
</div>
</div>
{% if 'quiz_confirm_saved_answers'|api_get_configuration_value %}
{% if 'exercise.quiz_confirm_saved_answers'|api_get_setting == 'true' %}
{% set enable_form = data.track_confirmation.updatedAt is empty and data.track_confirmation.userId == _u.id %}
{% if enable_form %}
<script>

@ -60,7 +60,7 @@
{{ social_friend_block }}
{% if 'allow_social_map_fields'|api_get_configuration_value %}
{% if 'profile.allow_social_map_fields'|api_get_setting == 'true' %}
<div class="geolocalization">
<a class="btn btn-maps" id="profile-tab" href="{{ _p.web }}main/social/map.php" >
{{ "geolocalization.png"|icon(32) }}

@ -399,7 +399,7 @@ if (null != $ticket['ticket']['course_url']) {
<td></td>
<td colspan="2"></td>
</tr>';
if (api_get_configuration_value('ticket_lp_quiz_info_add')) {
if ('true' === api_get_setting('lp.ticket_lp_quiz_info_add')) {
if (!empty($ticket['ticket']['exercise_url'])) {
echo '<tr>
<td><b>'.get_lang('Exercise').':</b> '.$ticket['ticket']['exercise_url'].' </td>

@ -83,7 +83,7 @@ if ($export_csv) {
}
ob_start();
}
$columnsToHideFromSetting = api_get_configuration_value('course_log_hide_columns');
$columnsToHideFromSetting = api_get_setting('course.course_log_hide_columns', true);
$columnsToHide = [0, 8, 9, 10, 11];
if (!empty($columnsToHideFromSetting) && isset($columnsToHideFromSetting['columns'])) {
$columnsToHide = $columnsToHideFromSetting['columns'];
@ -693,7 +693,7 @@ if ($nbStudents > 0) {
);
$headers['score_best'] = $bestScoreLabel;
$addExerciseOption = api_get_configuration_value('add_exercise_best_attempt_in_report');
$addExerciseOption = api_get_setting('exercise.add_exercise_best_attempt_in_report', true);
$exerciseResultHeaders = [];
if (!empty($addExerciseOption) && isset($addExerciseOption['courses']) &&
isset($addExerciseOption['courses'][$courseCode])

@ -77,7 +77,7 @@ if ($export_csv) {
}
ob_start();
}
$columnsToHideFromSetting = api_get_configuration_value('course_log_hide_columns');
$columnsToHideFromSetting = api_get_setting('course.course_log_hide_columns', true);
$columnsToHide = empty($columnsToHideFromSetting) ? [0, 8, 9, 10, 11] : $columnsToHideFromSetting;
$columnsToHide = json_encode($columnsToHide);

@ -524,7 +524,7 @@ $table->set_header($header_nr++, get_lang('Login'));
$indexList['groups'] = $header_nr;
$table->set_header($header_nr++, get_lang('Group'), false);
$hideFields = api_get_configuration_value('hide_user_field_from_list');
$hideFields = api_get_setting('profile.hide_user_field_from_list', true);
if (!empty($hideFields)) {
$hideFields = $hideFields['fields'];

@ -2006,7 +2006,7 @@ function get_work_user_list(
$column = !empty($column) ? Database::escape_string($column) : 'sent_date';
$compilation = null;
if (api_get_configuration_value('allow_compilatio_tool')) {
if ('true' === api_get_setting('document.allow_compilatio_tool')) {
$compilation = new Compilatio();
}

@ -238,7 +238,7 @@ echo Display::toolbarAction('toolbar-worklist', [$actionsLeft]);
$plagiarismListJqgridColumn = [];
$plagiarismListJqgridLine = [];
$allowAntiPlagiarism = api_get_configuration_value('allow_compilatio_tool');
$allowAntiPlagiarism = ('true' === api_get_setting('document.allow_compilatio_tool'));
if ($allowAntiPlagiarism) {
$plagiarismListJqgridColumn = ['Compilatio'];
$plagiarismListJqgridLine = [

@ -0,0 +1,203 @@
<?php
declare(strict_types=1);
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Table(name="notification_event")
* @ORM\Entity
*/
class NotificationEvent
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/
protected int $id;
/**
* @ORM\Column(name="title", type="string", length=255, nullable=false)
*/
protected string $title;
/**
* @ORM\Column(name="content", type="text", nullable=true)
*/
protected string $content;
/**
* @ORM\Column(name="link", type="text", nullable=true)
*/
protected string $link;
/**
* @ORM\Column(name="persistent", type="integer", nullable=true)
*/
protected int $persistent;
/**
* @ORM\Column(name="day_diff", type="integer", nullable=true)
*/
protected int $dayDiff;
/**
* @ORM\Column(name="event_type", type="string", length=255, nullable=false)
*/
protected string $eventType;
/**
* @ORM\Column(name="event_id", type="integer", nullable=true)
*/
protected int $eventId;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): self
{
$this->id = $id;
return $this;
}
/**
* @return string
*/
public function getTitle(): string
{
return $this->title;
}
/**
* @param string $title
*/
public function setTitle(string $title): self
{
$this->title = $title;
return $this;
}
/**
* @return string
*/
public function getContent(): string
{
return $this->content;
}
/**
* @param string $content
*/
public function setContent(string $content): self
{
$this->content = $content;
return $this;
}
/**
* @return string
*/
public function getLink(): string
{
return $this->link;
}
/**
* @param string $link
*/
public function setLink(string $link): self
{
$this->link = $link;
return $this;
}
/**
* @return int
*/
public function getPersistent(): int
{
return $this->persistent;
}
/**
* @param int $persistent
*/
public function setPersistent(int $persistent): self
{
$this->persistent = $persistent;
return $this;
}
/**
* @return int
*/
public function getDayDiff(): int
{
return $this->dayDiff;
}
/**
* @param int $dayDiff
*/
public function setDayDiff(int $dayDiff): self
{
$this->dayDiff = $dayDiff;
return $this;
}
/**
* @return string
*/
public function getEventType(): string
{
return $this->eventType;
}
/**
* @param string $eventType
*/
public function setEventType(string $eventType): self
{
$this->eventType = $eventType;
return $this;
}
/**
* @return int
*/
public function getEventId(): int
{
return $this->eventId;
}
/**
* @param int $eventId
*/
public function setEventId(int $eventId): self
{
$this->eventId = $eventId;
return $this;
}
}

@ -134,6 +134,16 @@ class Ticket
*/
protected DateTime $lastEditDateTime;
/**
* @ORM\Column(name="exercise_id", type="integer", nullable=true, unique=false)
*/
protected int $exerciseId;
/**
* @ORM\Column(name="lp_id", type="integer", nullable=true, unique=false)
*/
protected int $lpId;
public function __construct()
{
$this->totalMessages = 0;
@ -240,4 +250,40 @@ class Ticket
return $this;
}
/**
* @return int
*/
public function getExerciseId(): int
{
return $this->exerciseId;
}
/**
* @param int $exerciseId
*/
public function setExerciseId(int $exerciseId): self
{
$this->exerciseId = $exerciseId;
return $this;
}
/**
* @return int
*/
public function getLpId(): int
{
return $this->lpId;
}
/**
* @param int $lpId
*/
public function setLpId(int $lpId): self
{
$this->lpId = $lpId;
return $this;
}
}

@ -40,8 +40,16 @@ class Version20230216122900 extends AbstractMigrationChamilo
'default_session_list_view',
'session_automatic_creation_user_id',
'user_s_session_duration',
'my_courses_session_order',
'session_courses_read_only_mode',
'session_import_settings',
'catalog_settings',
'allow_session_status',
'tracking_columns',
],
'Security' => [
'allow_online_users_by_status',
'password_requirements',
'security_strict_transport',
'security_content_policy',
'security_content_policy_report_only',
@ -70,12 +78,18 @@ class Version20230216122900 extends AbstractMigrationChamilo
'course_creation_donate_link',
'courses_list_session_title_link',
'hide_course_rating',
'course_log_hide_columns',
'course_student_info',
'course_catalog_settings',
],
'Language' => [
'show_language_selector_in_menu',
'language_flags_by_country',
],
'Platform' => [
'table_row_list',
'video_features',
'proxy_settings',
'theme_fallback',
'unoconv_binaries',
'packager',
@ -89,6 +103,7 @@ class Version20230216122900 extends AbstractMigrationChamilo
'block_my_progress_page',
'generate_random_login',
'timepicker_increment',
'allow_portfolio_tool',
],
'Profile' => [
'allow_career_diagram',
@ -102,6 +117,18 @@ class Version20230216122900 extends AbstractMigrationChamilo
'data_protection_officer_name',
'data_protection_officer_role',
'data_protection_officer_email',
'hide_user_field_from_list',
'allow_fields_inscription',
'send_notification_when_user_added',
'show_conditions_to_user',
'allow_teachers_to_classes',
'profile_fields_visibility',
'user_import_settings',
'user_search_on_extra_fields',
'allow_career_users',
'required_extra_fields_in_inscription',
'community_managers_user_list',
'allow_social_map_fields',
],
'Admin' => [
'show_link_request_hrm_user',
@ -112,6 +139,9 @@ class Version20230216122900 extends AbstractMigrationChamilo
'Agenda' => [
'personal_agenda_show_all_session_events',
'allow_agenda_edit_for_hrm',
'agenda_legend',
'agenda_colors',
'agenda_on_hover_info',
],
'Lp' => [
'add_all_files_in_lp_export',
@ -134,6 +164,12 @@ class Version20230216122900 extends AbstractMigrationChamilo
'scorm_api_extrafield_to_use_as_student_id',
'allow_import_scorm_package_in_course_builder',
'allow_htaccess_import_from_scorm',
'allow_session_lp_category',
'ticket_lp_quiz_info_add',
'lp_subscription_settings',
'lp_view_settings',
'download_files_after_all_lp_finished',
'allow_lp_subscription_to_usergroups',
],
'Gradebook' => [
'gradebook_enable_best_score',
@ -145,6 +181,14 @@ class Version20230216122900 extends AbstractMigrationChamilo
'gradebook_report_score_style',
'gradebook_score_display_custom_standalone',
'gradebook_use_exercise_score_settings_in_total',
'gradebook_dependency',
'gradebook_dependency_mandatory_courses',
'gradebook_badge_sidebar',
'gradebook_multiple_evaluation_attempts',
'allow_gradebook_stats',
'gradebook_flatview_extrafields_columns',
'gradebook_pdf_export_settings',
'allow_gradebook_comments',
],
'Exercise' => [
'block_quiz_mail_notification_general_coach',
@ -175,6 +219,17 @@ class Version20230216122900 extends AbstractMigrationChamilo
'limit_exercise_teacher_access',
'block_category_questions',
'exercise_score_format',
'exercise_additional_teacher_modify_actions',
'quiz_confirm_saved_answers',
'allow_exercise_categories',
'allow_quiz_results_page_config',
'quiz_image_zoom',
'quiz_answer_extra_recording',
'allow_mandatory_question_in_category',
'add_exercise_best_attempt_in_report',
'exercise_category_report_user_extra_fields',
'score_grade_model',
'allow_time_per_question',
],
'Glossary' => [
'default_glossary_view',
@ -218,12 +273,19 @@ class Version20230216122900 extends AbstractMigrationChamilo
'survey_allow_answered_question_edit',
'survey_duplicate_order_by_name',
'survey_backwards_enable',
'allow_mandatory_survey',
'hide_survey_edition',
'survey_additional_teacher_modify_actions',
],
'Document' => [
'send_notification_when_document_added',
'thematic_pdf_orientation',
'certificate_pdf_orientation',
'allow_general_certificate',
'group_document_access',
'group_category_document_access',
'allow_compilatio_tool',
'compilatio_tool',
],
'Announcement' => [
'disable_announcement_attachment',
@ -231,6 +293,8 @@ class Version20230216122900 extends AbstractMigrationChamilo
'allow_scheduled_announcements',
'disable_delete_all_announcements',
'hide_announcement_sent_to_users_info',
'send_all_emails_to',
'allow_careers_in_global_announcements',
],
'Skill' => [
'allow_private_skills',
@ -238,6 +302,8 @@ class Version20230216122900 extends AbstractMigrationChamilo
'skills_teachers_can_assign_skills',
'hide_skill_levels',
'table_of_hierarchical_skill_presentation',
'skill_levels_names',
'allow_skill_rel_items',
],
'Mail' => [
'update_users_email_to_dummy_except_admins',
@ -251,6 +317,9 @@ class Version20230216122900 extends AbstractMigrationChamilo
'send_two_inscription_confirmation_mail',
'show_user_email_in_notification',
'send_notification_score_in_percentage',
'mail_template_system',
'cron_notification_mails',
'cron_notification_help_desk',
],
'Work' => [
'block_student_publication_edition',
@ -280,6 +349,35 @@ class Version20230216122900 extends AbstractMigrationChamilo
}
}
}
// Insert extra fields required.
$result = $connection
->executeQuery(
"SELECT COUNT(1) FROM extra_field WHERE variable = 'session_courses_read_only_mode' AND item_type = 2 AND value_type = 13"
)
;
$count = $result->fetchNumeric()[0];
if (empty($count)) {
$this->addSql(
"INSERT INTO extra_field (item_type, value_type, variable, display_text, visible_to_self, changeable, filter, created_at) VALUES (2, 13, 'session_courses_read_only_mode', 'Lock Course In Session', 1, 1, 1, NOW())"
);
}
// Insert extra fields required.
$result = $connection
->executeQuery(
"SELECT COUNT(1) FROM extra_field WHERE variable = 'is_mandatory' AND item_type = 12 AND value_type = 13"
)
;
$count = $result->fetchNumeric()[0];
if (empty($count)) {
$this->addSql(
"INSERT INTO extra_field (item_type, value_type, variable, display_text, visible_to_self, changeable, filter, created_at) VALUES (12, 13, 'is_mandatory', 'IsMandatory', 1, 1, 1, NOW())"
);
}
// Alter tables required.
}
public function down(Schema $schema): void
@ -298,6 +396,9 @@ class Version20230216122900 extends AbstractMigrationChamilo
'block_student_publication_edition',
],
'Mail' => [
'cron_notification_help_desk',
'cron_notification_mails',
'mail_template_system',
'send_notification_score_in_percentage',
'show_user_email_in_notification',
'send_two_inscription_confirmation_mail',
@ -311,6 +412,8 @@ class Version20230216122900 extends AbstractMigrationChamilo
'update_users_email_to_dummy_except_admins',
],
'Skill' => [
'allow_skill_rel_items',
'skill_levels_names',
'table_of_hierarchical_skill_presentation',
'hide_skill_levels',
'skills_teachers_can_assign_skills',
@ -318,6 +421,8 @@ class Version20230216122900 extends AbstractMigrationChamilo
'allow_private_skills',
],
'Announcement' => [
'allow_careers_in_global_announcements',
'send_all_emails_to',
'hide_announcement_sent_to_users_info',
'allow_scheduled_announcements',
'admin_chamilo_announcements_disable',
@ -325,12 +430,19 @@ class Version20230216122900 extends AbstractMigrationChamilo
'disable_delete_all_announcements'
],
'Document' => [
'compilatio_tool',
'allow_compilatio_tool',
'group_category_document_access',
'group_document_access',
'allow_general_certificate',
'certificate_pdf_orientation',
'thematic_pdf_orientation',
'send_notification_when_document_added',
],
'Survey' => [
'survey_additional_teacher_modify_actions',
'hide_survey_edition',
'allow_mandatory_survey',
'survey_backwards_enable',
'survey_duplicate_order_by_name',
'survey_allow_answered_question_edit',
@ -374,6 +486,17 @@ class Version20230216122900 extends AbstractMigrationChamilo
'default_glossary_view',
],
'Exercise' => [
'allow_time_per_question',
'score_grade_model',
'exercise_category_report_user_extra_fields',
'add_exercise_best_attempt_in_report',
'allow_mandatory_question_in_category',
'quiz_answer_extra_recording',
'quiz_image_zoom',
'allow_quiz_results_page_config',
'allow_exercise_categories',
'quiz_confirm_saved_answers',
'exercise_additional_teacher_modify_actions',
'exercise_score_format',
'block_category_questions',
'limit_exercise_teacher_access',
@ -404,6 +527,14 @@ class Version20230216122900 extends AbstractMigrationChamilo
'block_quiz_mail_notification_general_coach',
],
'Gradebook' => [
'allow_gradebook_comments',
'gradebook_pdf_export_settings',
'gradebook_flatview_extrafields_columns',
'allow_gradebook_stats',
'gradebook_multiple_evaluation_attempts',
'gradebook_badge_sidebar',
'gradebook_dependency_mandatory_courses',
'gradebook_dependency',
'gradebook_use_exercise_score_settings_in_total',
'gradebook_score_display_custom_standalone',
'gradebook_report_score_style',
@ -415,6 +546,12 @@ class Version20230216122900 extends AbstractMigrationChamilo
'gradebook_enable_best_score',
],
'Lp' => [
'allow_lp_subscription_to_usergroups',
'download_files_after_all_lp_finished',
'lp_view_settings',
'lp_subscription_settings',
'ticket_lp_quiz_info_add',
'allow_session_lp_category',
'allow_htaccess_import_from_scorm',
'allow_import_scorm_package_in_course_builder',
'scorm_api_extrafield_to_use_as_student_id',
@ -437,6 +574,9 @@ class Version20230216122900 extends AbstractMigrationChamilo
'add_all_files_in_lp_export',
],
'Agenda' => [
'agenda_on_hover_info',
'agenda_colors',
'agenda_legend',
'allow_agenda_edit_for_hrm',
'personal_agenda_show_all_session_events',
],
@ -447,6 +587,18 @@ class Version20230216122900 extends AbstractMigrationChamilo
'show_link_request_hrm_user',
],
'Profile' => [
'allow_social_map_fields',
'community_managers_user_list',
'required_extra_fields_in_inscription',
'allow_career_users',
'user_search_on_extra_fields',
'user_import_settings',
'profile_fields_visibility',
'allow_teachers_to_classes',
'show_conditions_to_user',
'send_notification_when_user_added',
'allow_fields_inscription',
'hide_user_field_from_list',
'data_protection_officer_email',
'data_protection_officer_role',
'data_protection_officer_name',
@ -460,6 +612,7 @@ class Version20230216122900 extends AbstractMigrationChamilo
'allow_career_diagram',
],
'Platform' => [
'allow_portfolio_tool',
'timepicker_increment',
'generate_random_login',
'block_my_progress_page',
@ -473,12 +626,18 @@ class Version20230216122900 extends AbstractMigrationChamilo
'packager',
'unoconv_binaries',
'theme_fallback',
'proxy_settings',
'video_features',
'table_row_list',
],
'Language' => [
'language_flags_by_country',
'show_language_selector_in_menu',
],
'Course' => [
'course_catalog_settings',
'course_student_info',
'course_log_hide_columns',
'hide_course_rating',
'courses_list_session_title_link',
'course_creation_donate_link',
@ -507,8 +666,16 @@ class Version20230216122900 extends AbstractMigrationChamilo
'security_content_policy_report_only',
'security_content_policy',
'security_strict_transport',
'password_requirements',
'allow_online_users_by_status',
],
'Session' => [
'tracking_columns',
'allow_session_status',
'catalog_settings',
'session_import_settings',
'session_courses_read_only_mode',
'my_courses_session_order',
'user_s_session_duration',
'session_automatic_creation_user_id',
'default_session_list_view',
@ -545,6 +712,30 @@ class Version20230216122900 extends AbstractMigrationChamilo
}
}
}
// Delete extra fields required.
$result = $connection
->executeQuery(
"SELECT COUNT(1) FROM extra_field WHERE variable = 'session_courses_read_only_mode' AND item_type = 2 AND value_type = 13"
)
;
$count = $result->fetchNumeric()[0];
if (!empty($count)) {
$this->addSql(
"DELETE FROM extra_field WHERE variable = 'session_courses_read_only_mode' AND item_type = 2 AND value_type = 13"
);
}
$result = $connection
->executeQuery(
"SELECT COUNT(1) FROM extra_field WHERE variable = 'is_mandatory' AND item_type = 12 AND value_type = 13"
)
;
$count = $result->fetchNumeric()[0];
if (!empty($count)) {
$this->addSql(
"DELETE FROM extra_field WHERE variable = 'is_mandatory' AND item_type = 12 AND value_type = 13"
);
}
}
}

@ -0,0 +1,72 @@
<?php
declare(strict_types=1);
namespace Chamilo\CoreBundle\Migrations\Schema\V200;
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
final class Version20230216122950 extends AbstractMigrationChamilo
{
public function getDescription(): string
{
return 'Alter tables required in configuration';
}
public function up(Schema $schema): void
{
if ($schema->hasTable('ticket_ticket')) {
$this->addSql(
'ALTER TABLE ticket_ticket ADD exercise_id INT DEFAULT NULL, ADD lp_id INT DEFAULT NULL'
);
}
if ($schema->hasTable('c_quiz_question_rel_category')) {
$this->addSql(
'ALTER TABLE c_quiz_question_rel_category ADD COLUMN mandatory INT DEFAULT 0'
);
}
if (!$schema->hasTable('c_plagiarism_compilatio_docs')) {
$this->addSql(
'CREATE TABLE c_plagiarism_compilatio_docs (id INT AUTO_INCREMENT NOT NULL, c_id INT NOT NULL, document_id INT NOT NULL, compilatio_id VARCHAR(32) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC'
);
}
if (!$schema->hasTable('notification_event')) {
$this->addSql(
'CREATE TABLE notification_event (id INT AUTO_INCREMENT NOT NULL, title VARCHAR(255) NOT NULL, content LONGTEXT DEFAULT NULL, link LONGTEXT DEFAULT NULL, persistent INT DEFAULT NULL, day_diff INT DEFAULT NULL, event_type VARCHAR(255) NOT NULL, event_id INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC'
);
}
}
public function down(Schema $schema): void
{
if ($schema->hasTable('notification_event')) {
$this->addSql(
'DROP TABLE notification_event'
);
}
if ($schema->hasTable('c_plagiarism_compilatio_docs')) {
$this->addSql(
'DROP TABLE c_plagiarism_compilatio_docs'
);
}
$table = $schema->getTable('ticket_ticket');
if ($table->hasColumn('exercise_id')) {
$this->addSql('ALTER TABLE ticket_ticket DROP exercise_id');
}
if ($table->hasColumn('lp_id')) {
$this->addSql('ALTER TABLE ticket_ticket DROP lp_id');
}
$table = $schema->getTable('c_quiz_question_rel_category');
if ($table->hasColumn('mandatory')) {
$this->addSql('ALTER TABLE c_quiz_question_rel_category DROP mandatory');
}
}
}

@ -9,6 +9,7 @@ namespace Chamilo\CoreBundle\Settings;
use Chamilo\CoreBundle\Form\Type\YesNoType;
use Sylius\Bundle\SettingsBundle\Schema\AbstractSettingsBuilder;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
class AgendaSettingsSchema extends AbstractSettingsSchema
@ -27,6 +28,9 @@ class AgendaSettingsSchema extends AbstractSettingsSchema
'personal_calendar_show_sessions_occupation' => 'false',
'personal_agenda_show_all_session_events' => 'false',
'allow_agenda_edit_for_hrm' => 'false',
'agenda_legend' => '',
'agenda_colors' => '',
'agenda_on_hover_info' => '',
]
)
;
@ -61,6 +65,75 @@ class AgendaSettingsSchema extends AbstractSettingsSchema
->add('personal_calendar_show_sessions_occupation', YesNoType::class)
->add('personal_agenda_show_all_session_events', YesNoType::class)
->add('allow_agenda_edit_for_hrm', YesNoType::class)
->add(
'agenda_legend',
TextareaType::class,
[
'help_html' => true,
'help' => get_lang('Agenda legend options').
$this->settingArrayHelpValue('agenda_legend'),
]
)
->add(
'agenda_colors',
TextareaType::class,
[
'help_html' => true,
'help' => get_lang('Set customs colors to agenda events').
$this->settingArrayHelpValue('agenda_colors'),
]
)
->add(
'agenda_on_hover_info',
TextareaType::class,
[
'help_html' => true,
'help' => get_lang('Customize on hover agenda view. Show agenda comment and/or description').
$this->settingArrayHelpValue('agenda_on_hover_info'),
]
)
;
}
private function settingArrayHelpValue(string $variable): string
{
$values = [
'agenda_legend' =>
"<pre>
[
'red' => 'red caption',
'#f0f' => 'another caption'
]
</pre>",
'agenda_colors' =>
"<pre>
[
'platform' => 'red',
'course' => '#458B00',
'group' => '#A0522D',
'session' => '#00496D',
'other_session' => '#999',
'personal' => 'steel blue',
'student_publication' => '#FF8C00'
]
</pre>",
'agenda_on_hover_info' =>
"<pre>
[
'options' => [
'comment' => true,
'description' => true,
]
]
</pre>",
];
$returnValue = [];
if (isset($values[$variable])) {
$returnValue = $values[$variable];
}
return $returnValue;
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save