Update after merge 1.11.x

pull/3063/head
Julio Montoya 6 years ago
parent be151a1149
commit 07abcf63af
  1. 2
      main/inc/lib/exercise.lib.php
  2. 331
      main/install/configuration.dist.php
  3. 10
      main/install/data.sql
  4. 7
      main/install/index.php
  5. 97
      main/install/install.lib.php
  6. 7
      main/install/update-files-1.10.0-1.11.0.inc.php
  7. 2
      main/install/version.php

@ -1995,7 +1995,7 @@ HOTSPOT;
$TBL_TRACK_EXERCICES = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
$TBL_TRACK_HOTPOTATOES = Database::get_main_table(TABLE_STATISTIC_TRACK_E_HOTPOTATOES);
$TBL_TRACK_ATTEMPT_RECORDING = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ATTEMPT_RECORDING);
$sessionId = api_get_session_id();
$session_id_and = '';
$sessionCondition = '';
if (!$showSessionField) {

@ -227,6 +227,9 @@ $_configuration['system_stable'] = NEW_VERSION_STABLE;
// E-mail accounts to send notifications to when executing cronjobs - works for main/cron/import_csv.php
//$_configuration['cron_notification_mails'] = array('email@example.com', 'email2@example.com');
// Help desk emails that will recieve email notifications in import_csv.php
//$_configuration['cron_notification_help_desk'] = array('email@example.com', 'email2@example.com');
// Only shows the fields in this list
/*$_configuration['allow_fields_inscription'] = [
'fields' => [
@ -407,10 +410,12 @@ ALTER TABLE portfolio_category CHANGE title title LONGTEXT NOT NULL;
//$_configuration['session_list_show_count_users'] = false;
// Session admin access to all course content
//$_configuration['session_admins_access_all_content'] = false;
// Session admin allowed to edit all courses content
//$_configuration['session_admins_edit_courses_content'] = false;
// Adds roles to the system announcements (requires DB change BT#12476)
//$_configuration['system_announce_extra_roles'] = false;
// Limits the features that a session admin has access to from the main admin panel (removes users import and usergroups)
//$_configuration['limit_session_admin_role'] = false;
// Limits that a session admin has access to list users
//$_configuration['limit_session_admin_list_users'] = false;
// Course tools visibility edition in sessions
//$_configuration['allow_edit_tool_visibility_in_session'] = false;
// Enable the support to ODF files
@ -499,8 +504,6 @@ ALTER TABLE portfolio_category CHANGE title title LONGTEXT NOT NULL;
//$_configuration['survey_answered_at_field'] = false;
// Add support to mandatory surveys. The user will not be able to enter to the course until fill the mandatory surveys
// Requires DB change:
// Add support to mandatory surveys. The user will not be able to enter to the course until fill the mandatory surveys
// Requires DB change:
/*
INSERT INTO extra_field (extra_field_type, field_type, variable, display_text, visible_to_self, changeable, created_at)
VALUES (12, 13, 'is_mandatory', 'IsMandatory', 1, 1, NOW());
@ -520,6 +523,13 @@ ALTER TABLE c_survey_question ADD is_required TINYINT(1) DEFAULT 0 NOT NULL;
// ALTER TABLE c_survey CHANGE avail_from avail_from DATETIME DEFAULT NULL, CHANGE avail_till avail_till DATETIME DEFAULT NULL;
// Requires change the Doctrine type from date to datime in CSurvey::$availFrom and CSurvey::$availTill
//$_configuration['allow_survey_availability_datetime'] = false;
// Mark the "Required" field during question creation process when displaying the form.
//$_configuration['survey_mark_question_as_required'] = false;
// Allow add additional actions (as links) in survey list for teachers.
// e.g. ['myplugin' => ['MyPlugin', 'urlGeneratorCallback']]
//$_configuration['survey_additional_teacher_modify_actions'] = [];
// Allow show answers in anonymous surveys
//$_configuration['survey_anonymous_show_answered'] = false;
// ------
// Allow career diagram, requires a DB change:
@ -531,11 +541,7 @@ ALTER TABLE c_survey_question ADD is_required TINYINT(1) DEFAULT 0 NOT NULL;
//CREATE TABLE scheduled_announcements (id INT AUTO_INCREMENT NOT NULL, subject VARCHAR(255) NOT NULL, message LONGTEXT NOT NULL, date DATETIME DEFAULT NULL, sent TINYINT(1) NOT NULL, session_id INT NOT NULL, c_id INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
// sudo mkdir app/upload/scheduled_announcement
// Add "attachment" file extra field in: main/admin/extra_fields.php?type=scheduled_announcement&action=add
//$_configuration['allow_scheduled_announcements'] = false;
// Add the list of emails as a bcc when sending an email.
//CREATE TABLE scheduled_announcements (id INT AUTO_INCREMENT NOT NULL, subject VARCHAR(255) NOT NULL, message LONGTEXT NOT NULL, date DATETIME DEFAULT NULL, sent TINYINT(1) NOT NULL, session_id INT NOT NULL, c_id INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
// sudo mkdir app/upload/scheduled_announcement
// Add "attachment" file extra field in: main/admin/extra_fields.php?type=scheduled_announcement&action=add
// Add "send_to_coaches" checkbox field in: main/admin/extra_fields.php?type=scheduled_announcement&action=add
//$_configuration['allow_scheduled_announcements'] = false;
// Add the list of emails as a bcc when sending an email.
/*
@ -562,6 +568,18 @@ $_configuration['send_all_emails_to'] = [
//$_configuration['allow_quiz_show_previous_button_setting'] = false;
// Allow to teachers review exercises question with audio notes
//$_configuration["allow_teacher_comment_audio"] = false;
// Block copy/paste/save/print keys and right-clicks in exercises
//$_configuration['quiz_prevent_copy_paste'] = false;
// Always show the test description on the results page of the test
//$_configuration['quiz_show_description_on_results_page'] = false;
// Allow add additional actions (as links) in exercises list for teachers.
// Callback get the $exerciseId and $iconSize as parameters.
// e.g. ['myplugin' => ['MyPlugin', 'urlGeneratorCallback']]
//$_configuration['exercise_additional_teacher_modify_actions'] = []
// Generate certificate when ending a quiz.
// The quiz needs to be linked to a gradebook category and have set the pass percentage.
//$_configuration['quiz_generate_certificate_ending'] = false;
// Hide search form in session list
//$_configuration['hide_search_form_in_session_list'] = false;
// Allow exchange of messages from teachers/bosses about a user.
@ -578,11 +596,6 @@ $_configuration['send_all_emails_to'] = [
// Show the username field in exercise results report
//$_configuration['exercise_attempts_report_show_username'] = false;
// Score model
// Allow to convert a score into a text/color label
// using a model if score is inside those values. See BT#12898
//$_configuration['exercise_attempts_report_show_username'] = false;
// Score model
// Allow to convert a score into a text/color label
// using a model if score is inside those values. See BT#12898
@ -634,9 +647,10 @@ $_configuration['score_grade_model'] = [
// SETTINGS FOR USER COURSE LIST
// Manage the links to Session Index page
// 1 = Default. Works as it is now (default is to link to the special session page)
// 0 = No link (not clickable)
// 0 = No link (hide session title)
// 2 = Link to the course if there is only one course
// 3 = Session link will make course list foldable
// 4 = No link (only session title)
//$_configuration['courses_list_session_title_link'] = 1;
// New grid view the list of courses
//$_configuration['view_grid_courses'] = true;
@ -833,6 +847,7 @@ ALTER TABLE skill_rel_course ADD CONSTRAINT FK_E7CEC7FA613FECDF FOREIGN KEY (ses
'display' => [
'show_reporting_icon' => true,
'hide_lp_arrow_navigation' => false,
'show_toolbar_by_default' => false,
],
];*/
@ -922,8 +937,8 @@ VALUES (2, 13, 'session_courses_read_only_mode', 'Lock Course In Session', 1, 1,
// Show pending survey link in user menu
// $_configuration['show_pending_survey_in_menu'] = false;
// Show multiple conditions to user during sign up process
// Example with a GDPR condition
// GDPR: European's General Data Protection Rules activation option
// Set to true to disable the new personal data page inside the social network menu
// $_configuration['disable_gdpr'] = true;
// GDPR requires users to be informed of the Data Protection Officer name and contact point
@ -966,34 +981,84 @@ VALUES (2, 13, 'session_courses_read_only_mode', 'Lock Course In Session', 1, 1,
// ALTER TABLE usergroup ADD author_id INT DEFAULT NULL;
//$_configuration['allow_teachers_to_classes'] = false;
// GDPR: European's General Data Protection Rules activation option
// Set to true to disable the new personal data page inside the social network menu
// Validate user login via a webservice, Chamilo will send a "login" and "password" parameters
// to the "myWebServiceFunctionToLogin" function, the result should be "1" if the user have access.
/*$_configuration['webservice_validation'] = [
'options' => [
'wsdl' => 'https://example.com/soap?wsdl',
'check_login_function' => 'myWebServiceFunctionToLogin'
]
];*/
// $_configuration['disable_gdpr'] = true;
// GDPR requires users to be informed of the Data Protection Officer name and contact point
// These can only be defined here for now, but will be moved to web settings in the future.
// Name of the person or organization that is responsible for the treatment of personal info
//$_configuration['data_protection_officer_name'] = '';
// A description of the role of the DP Officer in this context
//$_configuration['data_protection_officer_role'] = '';
// An e-mail address where to contact the data protection officer for queries
//$_configuration['data_protection_officer_email'] = '';
// Hide the username when showing the complete name for a user.
// Example: using api_get_user_info()['complete_name_with_username'] or $user->getCompleteNameWithUsername()
//$_configuration['hide_username_with_complete_name'] = false;
// Validate user login via a webservice, Chamilo will send a "login" and "password" parameters
// to the "myWebServiceFunctionToLogin" function, the result should be "1" if the user have access.
/*$_configuration['webservice_validation'] = [
// Hide the username in course chat
//$_configuration['hide_username_in_course_chat'] = false;
// Allow multiple attempts in gradebook evaluations
// CREATE TABLE gradebook_result_attempt (id INT AUTO_INCREMENT NOT NULL, result_id INT NOT NULL, score DOUBLE, comment LONGTEXT DEFAULT NULL, created_at DATETIME, updated_at DATETIME, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
//$_configuration['gradebook_multiple_evaluation_attempts'] = false;
// Hide country flags in the language switcher
// $_configuration['hide_flag_language_switcher'] = false;
// Hide complete name in who is online page
// $_configuration['hide_complete_name_in_whoisonline'] = false;
// Block student publication edition BT#14985
// $_configuration['block_student_publication_edition'] = false;
// Block student publication add documents BT#14986
//$_configuration['block_student_publication_add_documents'] = false;
// Block student publication score edition BT#14987
// $_configuration['block_student_publication_score_edition'] = false;
// Enable system to manage e-mail templates in users registration forms
/*CREATE TABLE mail_template(
id int not null primary key auto_increment,
name varchar(255) not null, -- a friendly name for the template, to remember what it is like
template text, -- the template content (in Twig format)
type varchar(255) not null, -- the type of the mail (we can use current template names to fill that)
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
author_id INT NOT NULL,
url_id INT NOT NULL,
default_template TINYINT not null,
system int not null default 0 -- whether it can be deleted or not (system = 1 means it's initially from Chamilo, any other template can be created/deleted/edited, but the ones with system=1 cannot)
);*/
// $_configuration['mail_template_system'] = false;
// Students can only upload one publication
// $_configuration['allow_only_one_student_publication_per_user'] = false;
// Hide percentage in best/average gradebook results
//$_configuration['hide_gradebook_percentage_user_result'] = true;
// Use exercise platform score settings in the gradebook graph
// $_configuration['gradebook_use_exercise_score_settings_in_categories'] = true;
// Activate the view with ViewerJS for PDF files within the lessons for IPad and IPhone
// $_configuration['allow_pdf_viewerjs_in_lp'] = false;
// Allow DRH user to access all visible session course announcements
// $_configuration['allow_drh_access_announcement'] = false;
// Allow my personal files link in the homepage
// $_configuration['allow_my_files_link_in_homepage'] = false;
// This option sets default parameters in the main/session/session_import.php
/*$_configuration['session_import_settings'] = [
'options' => [
'wsdl' => 'https://example.com/soap?wsdl',
'check_login_function' => 'myWebServiceFunctionToLogin'
'session_exists_default_option' => '1',
'send_mail_default_option' => '1',
]
];*/
/*
* Fields visibility in the profile user page
$_configuration['profile_fields_visibility'] = [
'options' => [
'vcard' => false,
@ -1006,15 +1071,93 @@ $_configuration['profile_fields_visibility'] = [
]
];*/
/*
Set extra fields as required in the inscription.php page
$_configuration['required_extra_fields_in_inscription'] = [
// This option sets default parameters in the main/admin/user_import.php
/*$_configuration['user_import_settings'] = [
'options' => [
'send_mail_default_option' => '1',
]
];*/
// Disable all new exercise attempts in all the platform
// $_configuration['exercises_disable_new_attempts'] = false;
// Improve speed when rendering gradebook student reports using Doctrine APCU cache
// $_configuration['gradebook_use_apcu_cache'] = true;
// Add a minimum time limit to be in the learning path
// in order to get the last item completed
// Requires a DB change:
// ALTER TABLE c_lp ADD accumulate_work_time INT NOT NULL;
// CREATE TABLE track_e_access_complete (id int(11) NOT NULL AUTO_INCREMENT, user_id int(11) NOT NULL, date_reg datetime NOT NULL, tool varchar(255) NOT NULL, tool_id int(11) NOT NULL, tool_id_detail int(11) NOT NULL, action varchar(255) NOT NULL, action_details varchar(255) NOT NULL, current_id int(11) NOT NULL, ip_user varchar(255) NOT NULL, user_agent varchar(255) NOT NULL, session_id int(11) NOT NULL, c_id int(11) NOT NULL, ch_sid varchar(255) NOT NULL, login_as int(11) NOT NULL, info longtext NOT NULL, url text NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=13989 DEFAULT CHARSET=utf8;
// CREATE INDEX user_course_session ON track_e_access_complete (user_id, c_id, session_id);
// Only applied for courses with extra field "new_tracking_system" to "1"
//$_configuration['lp_minimum_time'] = false;
// Track LP attempts using the new tracking system.
// Requires to add an LP extra field called "track_lp_item" (checkbox) in order to use this feature.
//$_configuration['use_new_tracking_in_lp_item'] = false;
// Add collapsable option for user course categories
// ALTER TABLE user_course_category ADD collapsed TINYINT(1) DEFAULT NULL;
// $_configuration['allow_user_course_category_collapsable'] = false;
// Add collapsable option when showing the course list inside a session in userportal.php
// ALTER TABLE session_rel_user ADD collapsed TINYINT(1) DEFAULT NULL;
// Create a new session extra field called "collapsed" (checkbox yes/no - option)
// $_configuration['allow_user_session_collapsable'] = false;
// Allow to session admins login as teachers
//$_configuration['allow_session_admin_login_as_teacher'] = false;
// Allow gradebook stats
// Requires to edit the GradebookLink.php And GradebookEvaluation.php files adding the "@" in the ORM phpdoc block
/* ALTER TABLE gradebook_link ADD score_weight DOUBLE PRECISION DEFAULT NULL, ADD average_score DOUBLE PRECISION DEFAULT NULL, ADD best_score DOUBLE PRECISION DEFAULT NULL, ADD user_score_list LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)' ;
ALTER TABLE gradebook_evaluation ADD score_weight DOUBLE PRECISION DEFAULT NULL, ADD average_score DOUBLE PRECISION DEFAULT NULL, ADD best_score DOUBLE PRECISION DEFAULT NULL, ADD user_score_list LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)' ;
*/
//$_configuration['allow_gradebook_stats'] = false;
// Hide social media links
//$_configuration['hide_social_media_links'] = false;
// Show chamilo unique question id in exercises
// $_configuration['show_question_id'] = false;
// Show pagination if question list is bigger than "x" value, if 0 pagination will not appear.
// Option only when building an exercise as a teacher
// $_configuration['show_question_pagination'] = 100;
// Number of questions to show in every page
// Option only when building an exercise as a teacher
// $_configuration['question_pagination_length'] = 20;
// Teachers cannot delete an exercise/questions, change exercise visibility, download to qti, clean results
// $_configuration['limit_exercise_teacher_access'] = false;
// Changes the row list when using jqgrid/sortable tables
//$_configuration['table_row_list'] = ['options' => [50, 100, 200, 500]];
// Default selected row in jqgrid/sortable tables
//$_configuration['table_default_row'] = 50;
// Disable Chamilo.org announcements at the top of the admin page
//$_configuration['admin_chamilo_announcements_disable'] = false;
// Disable course report graphs
//$_configuration['hide_course_report_graph'] = false;
// Visually "fold" forum categories by default
// $_configuration['forum_fold_categories'] = false;
// Set extra fields as required in the inscription.php page
/*$_configuration['required_extra_fields_in_inscription'] = [
'options' => [
'terms_ville',
'terms_paysresidence',
],
];
Set extra fields as required in the profile.php page
];*/
/* Set extra fields as required in the profile.php page
$_configuration['required_extra_fields_in_profile'] = [
'options' => [
'terms_villedustage'
@ -1034,7 +1177,117 @@ $_configuration['required_extra_fields_in_profile'] = [
// Hide forum post revision checkbox
//$_configuration['hide_forum_post_revision_language'] = false;
// ------ Custom DB changes (keep this at the end)
// Allow forum post revisions
// Requires new forum_category and forum_post "language" extra fields (multiple select)
//$_configuration['allow_forum_post_revisions'] = false;
// Allow to show users in a map, users need to have a coordinates extra field BT#15176
//$_configuration['allow_social_map_fields'] = ['fields' => ['terms_villedustage', 'terms_ville']];
// Translate HTML based in the HTML "lang" attribute see BT#15166
//$_configuration['translate_html'] = false;
// Avoid add a reply-to header when a no-reply address is set.
//$_configuration['mail_no_reply_avoid_reply_to'] = false;
// Allows to user add feedback (likes or dislikes) to posts in social wall. Requires DB changes:
// CREATE TABLE message_feedback (id BIGINT AUTO_INCREMENT NOT NULL, message_id BIGINT NOT NULL, user_id INT NOT NULL, liked TINYINT(1) DEFAULT '0' NOT NULL, disliked TINYINT(1) DEFAULT '0' NOT NULL, updated_at DATETIME NOT NULL, INDEX IDX_DB0F8049537A1329 (message_id), INDEX IDX_DB0F8049A76ED395 (user_id), INDEX idx_message_feedback_uid_mid (message_id, user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
// ALTER TABLE message_feedback ADD CONSTRAINT FK_DB0F8049537A1329 FOREIGN KEY (message_id) REFERENCES message (id) ON DELETE CASCADE;
// ALTER TABLE message_feedback ADD CONSTRAINT FK_DB0F8049A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE;
// In 1.11.8, before enabling this feature, you also need to:
// - edit src/Chamilo/CoreBundle/Entity/MessageFeedback.php
// and follow the instructions about the @ORM\Entity() line
// - edit src/Chamilo/CoreBundle/Entity/Message.php
// and follow the instructions about the @ORM\OneToMany line for the $likes property
// - launch "composer install" to rebuild the autoload.php
//$_configuration['social_enable_messages_feedback'] = false;
// Disable dislike button in the social network.
//$_configuration['disable_dislike_option'] = false;
// Block student's access to the course documents when using the ckeditor "Browse server" button
//$_configuration['block_editor_file_manager_for_students'] = false;
// Show a language flag next to the user picture in the social network
//$_configuration['social_show_language_flag_in_profile'] = false;
// Add subject and body in the mailto: footer
//$_configuration['add_user_course_information_in_mailto'] = false;
// Add gradebook score style configuration in the flat view
// See api.lib.php in order to find the options: examples SCORE_DIV = 1, SCORE_PERCENT = 2, etc
//$_configuration['gradebook_report_score_style'] = 1; // Means the score will be (X / Y) "SCORE_DIV"
// Blocks "my files" access to anon users
//$_configuration['block_my_files_access'] = false;
// Allow .htaccess files in SCORM packages
//$_configuration['allow_htaccess_import_from_scorm'] = false;
// Allow general certificate
//$_configuration['allow_general_certificate'] = false;
// Allow exercise categories
// CREATE TABLE c_exercise_category (id BIGINT AUTO_INCREMENT NOT NULL, c_id INT NOT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, position INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
// ALTER TABLE c_quiz ADD exercise_category_id INT DEFAULT NULL;
// enable @ORM in CExerciseCategory adn CQuiz::exerciseCategoryId
//$_configuration['allow_exercise_categories'] = false;
// Send new user inscription notification only to general admins (table settings_current = emailAdministrator)
//$_configuration['send_inscription_notification_to_general_admin_only'] = false;
// Allow extra settings for the quiz results page
// ALTER TABLE c_quiz ADD page_result_configuration LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)';
//$_configuration['allow_quiz_results_page_config'] = false;
// Allow multiple options for the exercise "save answer" option
// ALTER TABLE c_quiz MODIFY COLUMN save_correct_answers INT NULL DEFAULT NULL;
//$_configuration['allow_quiz_save_correct_options'] = false;
// Show languages flags by country in the language switcher.
//$_configuration['language_flags_by_country'] = false;
// Allow compilatio plagiarism prevention tool
/*
CREATE TABLE c_plagiarism_compilatio_docs (
id INT AUTO_INCREMENT NOT NULL,
c_id int(11) NOT NULL,
document_id int(11) NOT NULL,
compilatio_id varchar(32) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (id)
) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
// If table exists already
ALTER TABLE c_plagiarism_compilatio_docs drop primary key;
ALTER TABLE c_plagiarism_compilatio_docs ADD COLUMN id INT AUTO_INCREMENT NOT NULL PRIMARY KEY;
ALTER TABLE c_plagiarism_compilatio_docs CHANGE COLUMN id_doc document_id INT NOT NULL;
requires extension "php-soap" sudo apt-get install php-soap
*/
//$_configuration['allow_compilatio_tool'] = false;
//$_configuration['compilatio_tool'] = [
// 'settings' => [
// 'key' => '',
// 'soap_url' => '',
// 'proxy_host' => '',
// 'proxy_port' => '',
// 'max_filesize' => '',
// 'transport_mode' => '',
// 'wget_uri' => '',
// 'wget_login' => '',
// 'wget_password' => '',
// ]
//];
// Allow user to enter a LP item if it was validated in another session.
// $_configuration['validate_lp_prerequisite_from_other_session'] = false;
// 1 = SCORE_AVERAGE (5 / 10)
// 2 = SCORE_PERCENT (50%)
// 3 = SCORE_DIV_PERCENT (5 / 10 (50%))
// $_configuration['exercise_score_format'] = 0;
// KEEP THIS AT THE END
// -------- Custom DB changes
// Add user activation by confirmation email
// This option prevents the new user to login in the platform if your account is not confirmed via email
// You need add a new option called "confirmation" to the registration settings

@ -457,7 +457,7 @@ VALUES
('allow_coach_to_edit_course_session','false','No'),
('show_glossary_in_extra_tools', 'none', 'None'),
('show_glossary_in_extra_tools', 'exercise', 'Exercise'),
('show_glossary_in_extra_tools', 'lp', 'Learning path'),
('show_glossary_in_extra_tools', 'lp', 'LearningPaths'),
('show_glossary_in_extra_tools', 'exercise_and_lp', 'ExerciseAndLearningPath'),
('send_email_to_admin_when_create_course','true','Yes'),
('send_email_to_admin_when_create_course','false','No'),
@ -1960,3 +1960,11 @@ INSERT INTO settings_current (variable, type, category, selected_value, title, c
VALUES ('allow_download_documents_by_api_key', 'radio', 'WebServices', 'false', 'AllowDownloadDocumentsByApiKeyTitle', 'AllowDownloadDocumentsByApiKeyComment', '', NULL, 1);
INSERT INTO settings_options (variable, value, display_text) VALUES ('allow_download_documents_by_api_key', 'true', 'Yes');
INSERT INTO settings_options (variable, value, display_text) VALUES ('allow_download_documents_by_api_key', 'false', 'No');
INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('exercise_invisible_in_session',NULL,'radio','Session','false','ExerciseInvisibleInSessionTitle','ExerciseInvisibleInSessionComment','',NULL, 1);
INSERT INTO settings_options (variable, value, display_text) VALUES ('exercise_invisible_in_session','true','Yes');
INSERT INTO settings_options (variable, value, display_text) VALUES ('exercise_invisible_in_session','false','No');
INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('configure_exercise_visibility_in_course',NULL,'radio','Session','false','ConfigureExerciseVisibilityInCourseTitle','ConfigureExerciseVisibilityInCourseComment','',NULL, 1);
INSERT INTO settings_options (variable, value, display_text) VALUES ('configure_exercise_visibility_in_course','true','Yes');
INSERT INTO settings_options (variable, value, display_text) VALUES ('configure_exercise_visibility_in_course','false','No');

@ -320,8 +320,7 @@ if ($encryptPassForm == '1') {
<script type="text/javascript" src="../../web/assets/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="../../web/assets/bootstrap-select/dist/js/bootstrap-select.min.js"></script>
<script type="text/javascript">
$(document).ready( function() {
$(function() {
$("#details_button").click(function() {
$( "#details" ).toggle("slow", function() {
});
@ -346,7 +345,7 @@ if ($encryptPassForm == '1') {
});
init_visibility=0;
$(document).ready( function() {
$(function() {
$(".advanced_parameters").click(function() {
if ($("#id_contact_form").css("display") == "none") {
$("#id_contact_form").css("display","block");
@ -631,7 +630,7 @@ if (@$_POST['step2']) {
</p>
</div>
<script>
$(document).on('ready', function () {
$(function() {
$.post('<?php echo api_get_path(WEB_CODE_PATH); ?>install/ajax.php', {
a: 'check_crs_tables',
db_host: '<?php echo $dbHostForm; ?>',

@ -2279,12 +2279,11 @@ function fixIds(EntityManager $em)
$result = $connection->fetchAll($sql);
foreach ($result as $item) {
$courseId = $item['c_id'];
$iid = isset($item['iid']) ? intval($item['iid']) : 0;
$ref = isset($item['ref']) ? intval($item['ref']) : 0;
$iid = isset($item['iid']) ? (int) $item['iid'] : 0;
$ref = isset($item['ref']) ? (int) $item['ref'] : 0;
$sql = null;
$newId = '';
switch ($item['item_type']) {
case TOOL_LINK:
$sql = "SELECT * FROM c_link WHERE c_id = $courseId AND id = $ref";
@ -2355,11 +2354,10 @@ function fixIds(EntityManager $em)
// Delete group data of groups that don't exist.
$sql = "DELETE FROM c_item_property
WHERE to_group_id IS NOT NULL AND to_group_id NOT IN (SELECT DISTINCT id FROM c_group_info)";
WHERE to_group_id <> 0 AND to_group_id IS NOT NULL AND to_group_id NOT IN (SELECT DISTINCT iid FROM c_group_info)";
$connection->executeQuery($sql);
// This updates the group_id with c_group_info.iid instead of c_group_info.id
if ($debug) {
error_log('update iids');
}
@ -2430,7 +2428,8 @@ function fixIds(EntityManager $em)
$ref = $item['ref'];
// Fix group id
if (!empty($groupId)) {
// Commented group id is already fixed in Version20150603181728.php
/*if (!empty($groupId)) {
$sql = "SELECT * FROM c_group_info
WHERE c_id = $courseId AND id = $groupId";
$data = $connection->fetchAssoc($sql);
@ -2444,12 +2443,16 @@ function fixIds(EntityManager $em)
$sql = "DELETE FROM c_item_property WHERE iid = $iid";
$connection->executeQuery($sql);
}
}
}*/
$sql = '';
$newId = '';
//$newId = '';
switch ($item['tool']) {
case TOOL_LINK:
case TOOL_LEARNPATH:
$sql = "SELECT * FROM c_lp WHERE c_id = $courseId AND id = $ref ";
break;
// already fixed in c_lp_item
/*case TOOL_LINK:
$sql = "SELECT * FROM c_link WHERE c_id = $courseId AND id = $ref ";
break;
case TOOL_STUDENTPUBLICATION:
@ -2466,19 +2469,18 @@ function fixIds(EntityManager $em)
break;
case 'thread':
$sql = "SELECT * FROM c_forum_thread WHERE c_id = $courseId AND id = $ref";
break;
break;*/
}
if (!empty($sql) && !empty($newId)) {
if (!empty($sql)) {
$data = $connection->fetchAssoc($sql);
if (isset($data['iid'])) {
if (isset($data['iid']) && !empty($data['iid'])) {
$newId = $data['iid'];
}
$sql = "UPDATE c_item_property SET ref = $newId WHERE iid = $iid";
error_log($sql);
$connection->executeQuery($sql);
}
}
}
if ($debug) {
// Print a status in the log once in a while
@ -2911,7 +2913,7 @@ function fixLpId($connection, $debug)
}
}
if ($item['item_type'] == 'document' && !empty($item['path'])) {
if ($item['item_type'] === 'document' && !empty($item['path'])) {
$oldDocumentId = $item['path'];
$sql = "SELECT * FROM c_document WHERE c_id = $courseId AND id = $oldDocumentId";
$result = $connection->query($sql);
@ -2922,12 +2924,23 @@ function fixLpId($connection, $debug)
$sql = "UPDATE $tblCLpItem SET path = $newDocumentId
WHERE iid = $itemIid AND c_id = $courseId";
$connection->query($sql);
if ($debug) {
//error_log("Fix document: ");
//error_log($sql);
}
}
}
if ($item['item_type'] === 'link' && !empty($item['path'])) {
$oldLinkId = $item['path'];
$sql = "SELECT * FROM c_link WHERE c_id = $courseId AND id = $oldLinkId";
$result = $connection->query($sql);
$document = $result->fetch();
if (!empty($document)) {
$newLinkId = $document['iid'];
if (!empty($newLinkId)) {
$sql = "UPDATE $tblCLpItem SET path = $newLinkId
WHERE iid = $itemIid AND c_id = $courseId";
$connection->query($sql);
}
}
}
// c_lp_view
@ -3602,26 +3615,36 @@ function fixPostGroupIds($connection)
$courseId = $row['c_id'];
$sessionId = $row['session_id'];
$workId = $row['id'];
$itemInfo = api_get_item_property_info(
$courseId,
'work',
$workId,
$sessionId
);
$courseInfo = api_get_course_info_by_id($courseId);
$sessionCondition = " session_id = $sessionId";
if (empty($sessionId)) {
$sessionCondition = ' (session_id = 0 OR session_id IS NULL) ';
}
$sql = "SELECT * FROM c_item_property
WHERE
c_id = $courseId AND
tool = 'work' AND
ref = $workId AND
$sessionCondition ";
$itemInfo = $connection->fetchAssoc($sql);
if (empty($itemInfo)) {
api_item_property_update(
$courseInfo,
'work',
$workId,
'visible',
1,
$groupId,
null,
null,
null,
$sessionId
);
$params = [
'c_id' => $courseId,
'to_group_id' => $groupId,
//'to_user_id' => null,
'insert_user_id' => 1,
'session_id' => $sessionId,
'tool' => 'work',
'insert_date' => api_get_utc_datetime(),
'lastedit_date' => api_get_utc_datetime(),
'ref' => $workId,
'lastedit_type' => 'visible',
'lastedit_user_id' => 1,
'visibility' => 1,
];
$connection->insert('c_item_property', $params);
$id = $connection->lastInsertId();
$sql = "UPDATE c_item_property SET id = iid WHERE iid = $id";
$connection->executeQuery($sql);
}
}
error_log('End - Fix work documents');

@ -59,6 +59,13 @@ if (defined('SYSTEM_INSTALLATION')) {
error_log('Could not delete. It seems the file '.$entity.' does not exists.');
}
}
$oldDefaultCertificatePath = api_get_path(SYS_CODE_PATH).'default_course_document/certificates/';
if (is_dir($oldDefaultCertificatePath)) {
@rrmdir($oldDefaultCertificatePath);
}
if ($debug) {
error_log('Folders cleaned up');
}

@ -13,7 +13,7 @@
/**
* Variables used from the main/install/index.php.
*/
$new_version = '1.11.8';
$new_version = '1.11.10';
$new_version_status = 'stable';
$new_version_last_id = 0;
$new_version_stable = true;

Loading…
Cancel
Save