// Chamilo version 1.11.28
// File generated by /install/index.php script - [[DATE_GENERATED]]
/* For licensing terms, see /license.txt */
* This file contains a list of variables that can be modified by the campus site's server administrator.
* Pay attention when changing these variables, some changes may cause Chamilo to stop working.
* If you changed some settings and want to restore them, please have a look at
* configuration.dist.php. That file is an exact copy of the config file at install time.
* Besides the $_configuration, a $_settings array also exists, that
* contains variables that can be changed and will not break the platform.
* These optional settings are defined in the database, now
* (table settings_current).
// Database connection settings.
$_configuration['db_host'] = '[[softdbhost]]';
$_configuration['db_port'] = '3306';
$_configuration['main_database'] = '[[softdb]]';
$_configuration['db_user'] = '[[softdbuser]]';
$_configuration['db_password'] = '[[softdbpass]]';
// URL to the root of your Chamilo installation, e.g.: http://www.mychamilo.com/
$_configuration['root_web'] = '[[softurl]]/';
// Path to the webroot of system, example: /var/www/
$_configuration['root_sys'] = '[[softpath]]/';
// Path from your WWW-root to the root of your Chamilo installation,
// example: chamilo (this means chamilo is installed in /var/www/chamilo/
$_configuration['url_append'] = '';
* Login modules settings.
// -> Go to your portal Chamilo > Administration > CAS to activate CAS
// You can leave these lines uncommented even if you don't use CAS authentification
//$extAuthSource["cas"]["login"] = $_configuration['root_sys']."main/auth/cas/login.php";
//$extAuthSource["cas"]["newUser"] = $_configuration['root_sys']."main/auth/cas/newUser.php";
// Map CAS attributes with user/user extrafields values BT#17620
/*$_configuration['cas_user_map'] = [
'successfulAuthenticationHandlers',
'longTermAuthenticationRequestTokenUsed',
// NEW LDAP IMPLEMENTATION BASED ON external_login info
// -> Uncomment the two lines bellow to activate LDAP AND edit app/config/auth.conf.php for configuration
// $extAuthSource["extldap"]["login"] = $_configuration['root_sys']."main/auth/external_login/login.ldap.php";
// $extAuthSource["extldap"]["newUser"] = $_configuration['root_sys']."main/auth/external_login/newUser.ldap.php";
// FACEBOOK IMPLEMENTATION BASED ON external_login info
// -> Uncomment the line bellow to activate Facebook Auth AND edit app/config/auth.conf.php for configuration
// $_configuration['facebook_auth'] = 1;
// OTHER EXTERNAL LOGIN INFORMATION
// To fetch external login information, uncomment those 2 lines and modify the following files: auth/external_login/newUser.php and auth/external_login/updateUser.php
// $extAuthSource["external_login"]["newUser"] = $_configuration['root_sys']."main/auth/external_login/newUser.php";
// $extAuthSource["external_login"]["updateUser"] = $_configuration['root_sys']."main/auth/external_login/updateUser.php";
* Hosting settings - Allows you to set limits to the Chamilo portal when
* hosting it for a third party. These settings can be overwritten by an
* optionally-loaded extension file with only the settings (no comments).
* The settings use an index at the first level to represent the ID of the
* URL in case you use multi-url (otherwise it will always use 1, which is
* the ID of the only URL inside the access_url table).
// Set a maximum number of users. Default (0) = no limit
$_configuration[1]['hosting_limit_users'] = 0;
// Set a maximum number of teachers. Default (0) = no limit
$_configuration[1]['hosting_limit_teachers'] = 0;
// Set a maximum number of courses. Default (0) = no limit
$_configuration[1]['hosting_limit_courses'] = 0;
// Set a maximum number of sessions. Default (0) = no limit
$_configuration[1]['hosting_limit_sessions'] = 0;
// Set a maximum disk space used, in MB (set to 1024 for 1GB, 5120 for 5GB, etc)
// Default (0) = no limit
$_configuration[1]['hosting_limit_disk_space'] = 0;
// Set a maximum number of usable courses. Default (0) = no limit.
// Should always be lower than the hosting_limit_courses.
// If set, defining a course as "hidden" will free room for
// new courses (up to the hosting_limit_courses, if any value is set there).
// hosting_limit_enabled_courses is the maximum number of courses that are *not* hidden.
$_configuration[1]['hosting_limit_active_courses'] = 0;
// Email to warn if limit was reached.
//$_configuration[1]['hosting_contact_mail'] = 'example@example.org';
// Portal size limit in MB (set to 1024 for 1GB, 5120 for 5GB, etc).
// Check main/cron/hosting_total_size_limit.php for how to use this limit.
$_configuration['hosting_total_size_limit'] = 0;
* Content Delivery Network (CDN) settings. Only use if you need a separate
* server to serve your static data. If you don't know what a CDN is, you
* don't need it. These settings are for simple Origin Pull CDNs and are
* experimental. Enable only if you really know what you're doing.
* This might conflict with multiple-access urls.
* Please note that recent browsers forbid the loading of resources from
* a different portal URL then where they are, due to CORS rules.
* To allow for CDN usage with different URLs, you need to specifically
* allow CORS Access-Control-Allow-Origin for your main Chamilo URL.
* This has to be done at the web server level, because Chamilo's PHP code
* doesn't change HTTP headers of all files served from the Chamilo directory.
* To do that on Apache, use
* Header set Access-Control-Allow-Origin "http(s)://main-chamilo-url"
* add_header 'Access-Control-Allow-Origin' 'http(s)://main-chamilo-url';.
// Set the following setting to true to start using the CDN
$_configuration['cdn_enable'] = false;
// The following setting will be ignored if the previous one is set to false
$_configuration['cdn'] = [
// You can define several CDNs and split them by extensions
// Replace the following by your full CDN URL, which should point to
// your Chamilo's root directory. DO NOT INCLUDE a final slash! (won't work)
'http://cdn.chamilo.org' => [
// copy the line above and modify following your needs
// Security word for password recovery
$_configuration['security_key'] = '[[SECURITY_KEY]]';
$_configuration['password_encryption'] = 'sha1';
// Set to true to allow automated password conversion after login if
// password_encryption has changed since last login. See GH#4063 for details.
//$_configuration['password_conversion'] = false;
// You may have to restart your web server if you change this
$_configuration['session_stored_in_db'] = false;
$_configuration['session_lifetime'] = 360000;
// Activation for multi-url access
// When enabling multi-url, settings can be configured by multi-url using a simple
// sub-element. E.g. $_configuration['session_lifetime'][1] = true; could be turned into
// something like $_configuration['session_lifetime'][2] = false; to affect only URL
// with ID 2. The ID can be found in the access_url table.
//$_configuration['multiple_access_urls'] = true;
$_configuration['software_name'] = 'Chamilo';
$_configuration['software_url'] = 'https://chamilo.org/';
// Deny the elimination of users
$_configuration['deny_delete_users'] = false;
$_configuration['system_version'] = '1.11.28';
$_configuration['system_stable'] = true;
* Settings to be included as settings_current in future versions.
// Uncomment the following to prevent all admins to use the "login as" feature
//$_configuration['login_as_forbidden_globally'] = true;
// If session_stored_in_db is false, an alternative session storage mechanism
// can be used, which allows for a volatile storage in Memcache, and a more
// permanent "backup" storage in the database, every once in a while (see
// frequency). This is generally used in HA clusters configurations
// This requires memcache or memcached and the php5-memcache module to be setup
//$_configuration['session_stored_in_db_as_backup'] = true;
// Define the different memcache servers available
//$_configuration['memcache_server'] = array(
// Define the frequency to which the data must be stored in the database
//$_configuration['session_stored_after_n_times'] = 10;
// If the database is down this css style will be used to show the errors.
//$_configuration['theme_fallback'] = 'chamilo'; // (chamilo theme)
// The default template that will be use in the system.
//$_configuration['default_template'] = 'default'; // (main/template/default)
// Hide fields in the main/user/user.php page
//$_configuration['hide_user_field_from_list'] = ['fields' => ['username']];
//$_configuration['aspell_bin'] = '/usr/bin/hunspell';
//$_configuration['aspell_opts'] = '-a -d en_GB -H -i utf-8';
//$_configuration['aspell_temp_dir'] = './';
// Custom name_order_conventions
//$_configuration['name_order_conventions'] = array(
// 'french' => array('format' => 'title last_name first_name', 'sort_by' => 'last_name')
// Course log - Default columns to hide
//$_configuration['course_log_hide_columns'] = ['columns' => [1, 9]];
// Course log - User extra fields to show as columns for default
//$_configuration['course_log_default_extra_fields'] = ['extra_fields' => ['office_address', 'office_phone_extension']];
//$_configuration['unoconv.binaries'] = '/usr/bin/unoconv';
// Proxy settings for access external services
/*$_configuration['proxy_settings'] = [
'stream_context_create' => [
'proxy' => 'tcp://example.com:8080',
'request_fulluri' => true
'CURLOPT_PROXY' => 'http://example.com',
'CURLOPT_PROXYPORT' => '8080'
// 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'] = [
// Boost option to ignore encoding check for learning paths
//$_configuration['lp_fixed_encoding'] = 'false';
// Fix urls changing http with https in scorm packages.
//$_configuration['lp_replace_http_to_https'] = false;
// Fix embedded videos inside lps, adding an optional popup
//$_configuration['lp_fix_embed_content'] = false;
// Check the prerequisite in lp of a quiz to use only the last score in the attempts
// $_configuration['lp_prerequisite_use_last_attempt_only'] = false;
// Manage deleted files marked with "DELETED" (by course and only by allowed by admin)
//$_configuration['document_manage_deleted_files'] = false;
// Hide tabs in the main/session/index.php page
//$_configuration['session_hide_tab_list'] = array();
// Show invisible exercise in LP list
//$_configuration['show_invisible_exercise_in_lp_list'] = false;
// Chamilo is installed/downloaded. Packagers can change this
// to reflect their packaging method. The default value is 'chamilo'. This will
// be reflected on the https://version.chamilo.org/stats page in the future.
$_configuration['packager'] = 'Softaculous';
// If true exercises added in LP can be modified.
//$_configuration['force_edit_exercise_in_lp'] = false;
// List of driver to plugin in ckeditor
//$_configuration['editor_driver_list'] = ['PersonalDriver', 'CourseDriver'];
// Hide send to hrm users options in announcements
//$_configuration['announcements_hide_send_to_hrm_users'] = true;
// Hide certificate link in index/userportal pages
//$_configuration['hide_my_certificate_link'] = false;
// Hide header and footer in certificate pdf
//$_configuration['hide_header_footer_in_certificate'] = false;
// Security: block direct access from logged in users to contents in OPEN (but not public) courses. Set to true to block
//$_configuration['block_registered_users_access_to_open_course_contents'] = false;
// Allows syncing the database with the current entity schema
//$_configuration['sync_db_with_schema'] = false;
// When exporting a LP, all files and folders in the same path of an html will be exported too.
//$_configuration['add_all_files_in_lp_export'] = false;
// Send exercise student score to manager in email notification
//$_configuration['send_score_in_exam_notification_mail_to_manager'] = false;
// Show blocked LPs by prerequisite to students
//$_configuration['show_prerequisite_as_blocked'] = false;
// Mail header extra HTML attributes
//$_configuration['mail_header_style'] = '';
// Mail body extra HTML attributes
//$_configuration['mail_content_style'] = '';
// Show all agenda events in personal agenda from all session no matter the visibility.
//$_configuration['personal_agenda_show_all_session_events'] = false;
// Allows to redirect to the session after the inscription in session about
// $_configuration['allow_redirect_to_session_after_inscription_about'] = false;
// Allows to do a remove_XSS in course introduction with user status COURSEMANAGERLOWSECURITY
// in order to accept all embed type videos (like vimeo, wistia, etc)
// $_configuration['course_introduction_html_strict_filtering'] = true;
// Allows to do a remove_XSS in question of exersice with user status COURSEMANAGERLOWSECURITY
// $_configuration['question_exercise_html_strict_filtering'] = true;
// Allows to do a remove_XSS in exersice result end text with user status COURSEMANAGERLOWSECURITY
// $_configuration['exercise_result_end_text_html_strict_filtering'] = true;
// Allows to do a remove_XSS in wiki pages with user status COURSEMANAGERLOWSECURITY
// $_configuration['wiki_html_strict_filtering'] = true;
// Prevents the duplicate upload in assignments
// $_configuration['assignment_prevent_duplicate_upload'] = false;
//Show student progress in My courses page
//$_configuration['course_student_info']['score'] = false;
//$_configuration['course_student_info']['progress'] = false;
//$_configuration['course_student_info']['certificate'] = false;
// Set ConsideredWorkingTime work extra field variable to show in MyStudents page works report
// (with internal id 'work_time' as below) and enable the following line to show in MyStudents page works report
// $_configuration['considered_working_time'] = 'work_time';
// Allow add/remove working time in reporting page
// $_configuration['allow_working_time_edition'] = false;
// During CSV special imports update users emails to x@example.com
// $_configuration['update_users_email_to_dummy_except_admins'] = false;
// Certification pdf export orientation
// $_configuration['certificate_pdf_orientation'] = 'landscape'; // It can be 'portrait' or 'landscape'
// Hide main navigation menu (left column in userportal)
// $_configuration['hide_main_navigation_menu'] = false;
// PDF image dpi value. Default value 96
// $_configuration['pdf_img_dpi'] = 96;
// Hide LP time in reports.
// $_configuration['hide_lp_time'] = false;
// Hide rating elements in pages ("Courses catalog" & "Most Popular courses")
// $_configuration['hide_course_rating'] = false;
// Customize password generation and verification
// For this configuration to be taken into account you need to set define('CHECK_PASS_EASY_TO_FIND', true); in app/config/profile.conf.php
/*$_configuration['password_requirements'] = [
'force_different_password' => false,
// Customize course session tracking columns
$_configuration['tracking_columns'] = [
'published_exercises' => true,
'average_exercise_result' => true,
'last_connection' => true,
'latest_attempt_avg_score' => true,
'last_connection' => true,
'last_connection' => true,
'my_progress_courses' => [
'best_score_in_lp' => true,
'best_score_not_in_lp' => true,
// Add column "Unlocked" in student LPs table to display info about a lp subscription
//$_configuration['student_follow_page_add_LP_subscription_info'] = false;
// Add column "Acquisition" in student LPs table to display info about a lo adquisition. Requires DB changes:
INSERT INTO extra_field (extra_field_type, field_type, variable, display_text, default_value, field_order, visible_to_self, visible_to_others, changeable, filter, created_at) VALUES
(20, 3, 'acquisition', 'Acquisition', '', 0, 1, 0, 0, 0, NOW());
SET @ef_id = LAST_INSERT_ID();
INSERT INTO extra_field_options (field_id, option_value, display_text, priority, priority_message, option_order) VALUES
(@ef_id, '1', 'Acquired', NULL, NULL, 1),
(@ef_id, '2', 'In the process of acquisition', NULL, NULL, 2),
(@ef_id, '3', 'Not acquired', NULL, NULL, 3);
//$_configuration['student_follow_page_add_LP_acquisition_info'] = false;
// Prepend a column in student LPs table to display a checkbox to select the LP category and its LPs. Requires DB changes:
INSERT INTO extra_field (extra_field_type, field_type, variable, display_text, default_value, field_order, visible_to_self, visible_to_others, changeable, filter, created_at) VALUES
(20, 13, 'invisible', 'Invisible', '', 0, 1, 0, 0, 0, NOW());
//$_configuration['student_follow_page_add_LP_invisible_checkbox'] = false;
// Show the LP not marked as invisible by teacher in tracking page
//$_configuration['student_follow_page_include_not_subscribed_lp_students'] = false;
// Show certificate of achievement icon from the student details in course tracking
//$_configuration['course_tracking_student_detail_show_certificate_of_achievement'] = false;
// Allow change the order to show the tools in "My progress" page.
/*$_configuration['my_progress_course_tools_order'] = [
'order' => ['quizzes', 'learning_paths', 'skills'],
// Allow show all details of each course in session when clicking on session details
//$_configuration['my_progress_session_show_all_courses'] = false;
// Hide session link of course_block on index/userportal
//$_configuration['remove_session_url']= false ;
// Allow foldable block for session list in session category on My courses tab
//$_configuration['user_portal_foldable_session_category'] = false;
// ------ AGENDA CONFIGURATION SETTINGS
// Shows a legend in the agenda tool
$_configuration['agenda_legend'] = [
'#f0f' => 'another caption'
// Set customs colors to agenda events
$_configuration['agenda_colors'] = [
'other_session' => '#999',
'personal' => 'steel blue',
'student_publication' => '#FF8C00'
// Display sessions occupations in personal agenda
//$_configuration['personal_calendar_show_sessions_occupation'] = false;
// It allows to send invitations to friends for an agenda event. Requires DB changes:
CREATE TABLE agenda_event_invitee (id BIGINT AUTO_INCREMENT NOT NULL, invitation_id BIGINT DEFAULT NULL, user_id INT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, INDEX IDX_4F5757FEA35D7AF0 (invitation_id), INDEX IDX_4F5757FEA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB;
CREATE TABLE agenda_event_invitation (id BIGINT AUTO_INCREMENT NOT NULL, creator_id INT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, INDEX IDX_52A2D5E161220EA6 (creator_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB;
ALTER TABLE agenda_event_invitee ADD CONSTRAINT FK_4F5757FEA35D7AF0 FOREIGN KEY (invitation_id) REFERENCES agenda_event_invitation (id) ON DELETE CASCADE;
ALTER TABLE agenda_event_invitee ADD CONSTRAINT FK_4F5757FEA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL;
ALTER TABLE agenda_event_invitation ADD CONSTRAINT FK_52A2D5E161220EA6 FOREIGN KEY (creator_id) REFERENCES user (id) ON DELETE CASCADE;
ALTER TABLE personal_agenda ADD agenda_event_invitation_id BIGINT DEFAULT NULL, ADD collective TINYINT(1) NOT NULL;
ALTER TABLE personal_agenda ADD CONSTRAINT FK_D8612460AF68C6B FOREIGN KEY (agenda_event_invitation_id) REFERENCES agenda_event_invitation (id) ON DELETE CASCADE;
CREATE UNIQUE INDEX UNIQ_D8612460AF68C6B ON personal_agenda (agenda_event_invitation_id);
// Then add the "@" symbol to AgendaEventInvitation and AgendaEventInvitee classes in the ORM\Entity() line.
// Then uncomment the "use EventCollectiveTrait;" line in the PersonalAgenda class.
//$_configuration['agenda_collective_invitations'] = false;
// It allows to other users to subscribe for events.
// Requires enable agenda_collective_invitations before.
ALTER TABLE personal_agenda ADD subscription_visibility INT DEFAULT 0 NOT NULL, ADD subscription_item_id INT DEFAULT NULL;
ALTER TABLE agenda_event_invitee ADD type VARCHAR(255) NOT NULL;
ALTER TABLE agenda_event_invitation ADD type VARCHAR(255) NOT NULL, ADD max_attendees INT DEFAULT 0;
UPDATE agenda_event_invitation SET type = 'invitation';
UPDATE agenda_event_invitee SET type = 'invitee';
// Then uncomment the "use EventSubscribableTrait;" line in the PersonalAgenda class.
// Then add the "@" symbol in ORM\InheritanceType, ORM\DiscriminatorColumn and ORM\DiscriminatorMap lines in the AgendaEventInvitation class.
// Then add the "@" symbol in @ORM\Entity line in the AgendaEventSubscription class.
// Then add the "@" symbol in ORM\InheritanceType, ORM\DiscriminatorColumn and ORM\DiscriminatorMap lines in the AgendaEventInvitee class.
// Then add the "@" symbol in @ORM\Entity line in the AgendaEventSubscriber class.
//$_configuration['agenda_event_subscriptions'] = false;
// Enable reminders for agenda events. Requires database changes:
CREATE TABLE agenda_reminder (id BIGINT AUTO_INCREMENT NOT NULL, type VARCHAR(255) NOT NULL, event_id INT NOT NULL, date_interval VARCHAR(255) NOT NULL COMMENT '(DC2Type:dateinterval)', sent TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB;
// Then add the "@" symbol to AgendaReminder class in the ORM\Entity() line.
//$_configuration['agenda_reminders'] = false;
// Sets the sender ID when using the cron main/cron/agenda_reminders.php to send reminders in course events.
//$_configuration['agenda_reminders_sender_id'] = 0;
// Save some tool titles with HTML editor. Require DB changes:
ALTER TABLE course_category CHANGE name name LONGTEXT NOT NULL;
ALTER TABLE c_course_description CHANGE title title LONGTEXT NOT NULL;
ALTER TABLE c_thematic CHANGE title title LONGTEXT NOT NULL;
ALTER TABLE c_quiz CHANGE title title LONGTEXT NOT NULL;
ALTER TABLE c_lp_category CHANGE name name LONGTEXT NOT NULL;
ALTER TABLE c_glossary CHANGE name name LONGTEXT NOT NULL;