Adding blocking or unblocking settings when using multiple URLs see BT#4201

skala
Julio Montoya 14 years ago
parent 556d19743e
commit 980102cf50
  1. 15
      main/admin/settings.lib.php
  2. 42
      main/admin/settings.php
  3. 14
      main/inc/ajax/admin.ajax.php
  4. 19
      main/inc/lib/formvalidator/FormValidator.class.php
  5. 36
      main/inc/lib/main_api.lib.php
  6. 34
      main/install/install.lib.php

@ -1052,8 +1052,16 @@ function generate_settings_form($settings, $settings_by_access_list) {
global $_configuration, $settings_to_avoid, $convert_byte_to_mega_list;
$form = new FormValidator('settings', 'post', 'settings.php?category='.Security::remove_XSS($_GET['category']));
$form->addElement('hidden', 'search_field', Security::remove_XSS($_GET['search_field']));
if ( $_configuration['multiple_access_urls'] && api_is_global_platform_admin()) {
$group = array();
$group[] = $form->createElement('button', 'mark_all', get_lang('MarkAll'));
$group[] = $form->createElement('button', 'unmark_all', get_lang('UnmarkAll'));
$form->addGroup($group, 'buttons_in_action_right');
}
$default_values = array();
$i = 0;
@ -1064,14 +1072,13 @@ function generate_settings_form($settings, $settings_by_access_list) {
if (api_is_global_platform_admin()) {
if ($row['access_url_locked'] == 0) {
if ($row['access_url_changeable'] == '1') {
$form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "0" data_to_send = "'.$row['id'].'" href="javascript:void(0);">'.
$form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "0" data_to_send = "'.$row['variable'].'" href="javascript:void(0);">'.
Display::return_icon('shared_setting.png', get_lang('ChangeSharedSetting')).'</a></div>');
} else {
$form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "1" data_to_send = "'.$row['id'].'" href="javascript:void(0);">'.
$form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "1" data_to_send = "'.$row['variable'].'" href="javascript:void(0);">'.
Display::return_icon('shared_setting_na.png', get_lang('ChangeSharedSetting')).'</a></div>');
}
}
}
}
}

@ -133,8 +133,46 @@ if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', '
$message = array();
if ($form->validate()) {
$values = $form->exportValues();
$values = $form->exportValues();
$mark_all = false;
$un_mark_all = false;
if ( $_configuration['multiple_access_urls']) {
if (isset($values['buttons_in_action_right']) && isset($values['buttons_in_action_right']['mark_all'])) {
$mark_all = true;
}
if (isset($values['buttons_in_action_right']) && isset($values['buttons_in_action_right']['unmark_all'])) {
$un_mark_all = true;
}
}
if ($mark_all || $un_mark_all) {
if (api_is_global_platform_admin()) {
$locked_settings = api_get_locked_settings();
foreach ($values as $key => $value) {
if (!in_array($key, $locked_settings)) {
$changeable = 0;
if ($mark_all) {
$changeable = 1;
}
$params = array('variable = ?' => array($key));
$data = api_get_settings_params($params);
if (!empty($data)) {
foreach ($data as $item) {
$params = array('id' =>$item['id'], 'access_url_changeable' => $changeable);
api_set_setting_simple($params);
}
}
}
}
}
}
$pdf_export_watermark_path = $_FILES['pdf_export_watermark_path'];
if (isset($pdf_export_watermark_path) && !empty($pdf_export_watermark_path['name'])) {
@ -273,7 +311,7 @@ $htmlHeadXtra[] = '<script>
var link = $(this);
$.ajax({
url: url,
data: {changeable: $(this).attr("data_status"), id: $(this).attr("data_to_send") },
data: { changeable: $(this).attr("data_status"), id: $(this).attr("data_to_send") },
success: function(data) {
if (data == 1) {
if (link.attr("data_status") == 1) {

@ -11,11 +11,17 @@ api_protect_admin_script();
$action = isset($_REQUEST['a']) ? $_REQUEST['a'] : null;
switch ($action) {
case 'update_changeable_setting':
if (api_is_global_platform_admin()) {
case 'update_changeable_setting':
if (api_is_global_platform_admin()) {
if (isset($_GET['id']) && !empty($_GET['id'])) {
$params = array('id' =>$_GET['id'], 'access_url_changeable' => $_GET['changeable']);
api_set_setting_simple($params);
$params = array('variable = ?' => array($_GET['id']));
$data = api_get_settings_params($params);
if (!empty($data)) {
foreach ($data as $item) {
$params = array('id' =>$item['id'], 'access_url_changeable' => $_GET['changeable']);
api_set_setting_simple($params);
}
}
echo '1';
}
}

@ -188,12 +188,23 @@ class FormValidator extends HTML_QuickForm
$renderer->setElementTemplate($element_template);
//Display a gray div in the buttons
$button_element_template = '<div class="form-actions">{label} {element}</div>';
$renderer->setElementTemplate($button_element_template, 'submit_in_actions');
$button_element_template_simple = '<div class="form-actions">{label} {element}</div>';
$renderer->setElementTemplate($button_element_template_simple, 'submit_in_actions');
//Display a gray div in the buttons + makes the button available when scrolling
$button_element_template = '<div class="form-actions bottom_actions">{label} {element}</div>';
$renderer->setElementTemplate($button_element_template, 'submit_fixed_in_bottom');
$button_element_template_in_bottom = '<div class="form-actions bottom_actions">{label} {element}</div>';
$renderer->setElementTemplate($button_element_template_in_bottom, 'submit_fixed_in_bottom');
//When you want to group buttons use something like this
/* $group = array();
$group[] = $form->createElement('button', 'mark_all', get_lang('MarkAll'));
$group[] = $form->createElement('button', 'unmark_all', get_lang('UnmarkAll'));
$form->addGroup($group, 'buttons_in_action');
*/
$renderer->setElementTemplate($button_element_template_simple, 'buttons_in_action');
$button_element_template_simple_right = '<div class="form-actions"> <div class="pull-right">{label} {element}</div></div>';
$renderer->setElementTemplate($button_element_template_simple_right, 'buttons_in_action_right');
/*
$renderer->setElementTemplate($button_element_template, 'submit_button');

@ -5823,4 +5823,40 @@ function api_check_archive_dir() {
$message = Display::return_message(get_lang('ArchivesDirectoryNotWriteableContactAdmin'),'warning');
api_not_allowed(true, $message);
}
}
function api_get_locked_settings() {
return array(
'server_type',
'permanently_remove_deleted_files',
'account_valid_duration',
'service_visio',
'service_ppt2lp',
'wcag_anysurfer_public_pages',
'upload_extensions_list_type',
'upload_extensions_blacklist',
'upload_extensions_whitelist',
'upload_extensions_skip',
'upload_extensions_replace_by',
'hide_dltt_markup',
'split_users_upload_directory',
'permissions_for_new_directories',
'permissions_for_new_files',
'platform_charset',
'service_visio',
'ldap_description',
'cas_activate',
'cas_server',
'cas_server_uri',
'cas_port',
'cas_protocol',
'cas_add_user_activate',
'update_user_info_cas_with_ldap',
'languagePriority1',
'languagePriority2',
'languagePriority3',
'languagePriority4',
'login_is_email',
'chamilo_database_version'
);
}

@ -2018,39 +2018,7 @@ function get_countries_list_from_array($combo = false) {
* Lockis settings that can't be changed in other portals
*/
function locking_settings() {
$access_url_locked_settings = array(
'server_type',
'permanently_remove_deleted_files',
'account_valid_duration',
'service_visio',
'service_ppt2lp',
'wcag_anysurfer_public_pages',
'upload_extensions_list_type',
'upload_extensions_blacklist',
'upload_extensions_whitelist',
'upload_extensions_skip',
'upload_extensions_replace_by',
'hide_dltt_markup',
'split_users_upload_directory',
'permissions_for_new_directories',
'permissions_for_new_files',
'platform_charset',
'service_visio',
'ldap_description',
'cas_activate',
'cas_server',
'cas_server_uri',
'cas_port',
'cas_protocol',
'cas_add_user_activate',
'update_user_info_cas_with_ldap',
'languagePriority1',
'languagePriority2',
'languagePriority3',
'languagePriority4',
'login_is_email',
'chamilo_database_version'
);
$access_url_locked_settings = api_get_locked_settings();
$table = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
foreach ($access_url_locked_settings as $setting) {
$sql = "UPDATE $table SET access_url_locked = 1 WHERE variable = '$setting'";

Loading…
Cancel
Save