Fixing mark/unmark settings, only can be configured in the main portal by the global admin

skala
Julio Montoya 14 years ago
parent d1eda3ee4f
commit 551d896b15
  1. 3
      main/admin/access_url_edit.php
  2. 24
      main/admin/settings.lib.php
  3. 47
      main/admin/settings.php
  4. 8
      main/inc/ajax/admin.ajax.php
  5. 7
      main/inc/lib/main_api.lib.php

@ -12,6 +12,7 @@ $this_section = SECTION_PLATFORM_ADMIN;
//api_protect_admin_script();
api_protect_global_admin_script();
if (!api_get_multiple_access_url()) {
header('Location: index.php');
exit;
@ -103,7 +104,7 @@ if( $form->validate()) {
}
$form->addElement('text','url', 'URL',array('size'=>'30'));
$form->addElement('text','url', 'URL', array('class'=>'span6'));
$form->addRule('url', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('url', '', 'maxlength',254);
$form->addElement('textarea','description',get_lang('Description'));

@ -1055,7 +1055,9 @@ function generate_settings_form($settings, $settings_by_access_list) {
$form->addElement('hidden', 'search_field', Security::remove_XSS($_GET['search_field']));
if ( $_configuration['multiple_access_urls'] && api_is_global_platform_admin()) {
$url_id = api_get_current_access_url_id();
if ( $_configuration['multiple_access_urls'] && api_is_global_platform_admin() && $url_id == 1) {
$group = array();
$group[] = $form->createElement('button', 'mark_all', get_lang('MarkAll'));
$group[] = $form->createElement('button', 'unmark_all', get_lang('UnmarkAll'));
@ -1071,12 +1073,22 @@ function generate_settings_form($settings, $settings_by_access_list) {
if ( $_configuration['multiple_access_urls']) {
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['variable'].'" href="javascript:void(0);">'.
Display::return_icon('shared_setting.png', get_lang('ChangeSharedSetting')).'</a></div>');
if ($url_id == 1) {
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['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['variable'].'" href="javascript:void(0);">'.
Display::return_icon('shared_setting_na.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['variable'].'" href="javascript:void(0);">'.
Display::return_icon('shared_setting_na.png', get_lang('ChangeSharedSetting')).'</a></div>');
if ($row['access_url_changeable'] == '1') {
$form->addElement('html', '<div style="float: right;">'.
Display::return_icon('shared_setting.png', get_lang('ChangeSharedSetting')).'</div>');
} else {
$form->addElement('html', '<div style="float: right;">'.
Display::return_icon('shared_setting_na.png', get_lang('ChangeSharedSetting')).'</div>');
}
}
}
}

@ -87,22 +87,22 @@ $form_search->setDefaults(array('search_field' => $_REQUEST['search_field']));
$form_search_html = $form_search->return_form();
$url_id = api_get_current_access_url_id();
$settings = null;
// Build the form.
if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', 'stylesheets', 'Search'))) {
$my_category = Database::escape_string($_GET['category']);
if ($_configuration['access_url'] == 1) {
$settings = api_get_settings($my_category, 'group', $_configuration['access_url']);
function get_settings($category = null) {
$url_id = api_get_current_access_url_id();
if ($url_id == 1) {
$settings = api_get_settings($category, 'group', $url_id);
} else {
$url_info = api_get_access_url($_configuration['access_url']);
$url_info = api_get_access_url($url_id);
if ($url_info['active'] == 1) {
// The default settings of Chamilo
$settings = api_get_settings($my_category, 'group', 1, 0);
$settings = api_get_settings($category, 'group', 1, 0);
// The settings that are changeable from a particular site.
$settings_by_access = api_get_settings($my_category, 'group', $_configuration['access_url'], 1);
$settings_by_access = api_get_settings($category, 'group', $url_id, 1);
$settings_by_access_list = array();
foreach ($settings_by_access as $row) {
@ -122,17 +122,24 @@ if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', '
}
}
if (isset($_GET['category']) && $_GET['category'] == 'search_setting') {
if (isset($category) && $category== 'search_setting') {
if (!empty($_REQUEST['search_field'])) {
$settings = search_setting($_REQUEST['search_field']);
}
}
return $settings;
}
// Build the form.
if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', 'stylesheets', 'Search'))) {
$my_category = isset($_GET['category']) ? $_GET['category'] : null;
$settings = get_settings($my_category);
$form = generate_settings_form($settings, $settings_by_access_list);
$message = array();
if ($form->validate()) {
if ($form->validate()) {
$values = $form->exportValues();
$mark_all = false;
@ -157,22 +164,24 @@ if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', '
$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);
$params = array('id' =>$item['id'], 'access_url_changeable' => $changeable);
api_set_setting_simple($params);
}
}
}
}
//Reload settings
$settings = get_settings($my_category);
$form = generate_settings_form($settings, $settings_by_access_list);
}
}
}
$pdf_export_watermark_path = $_FILES['pdf_export_watermark_path'];
if (isset($pdf_export_watermark_path) && !empty($pdf_export_watermark_path['name'])) {
@ -211,7 +220,7 @@ if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', '
foreach ($values as $key => $value) {
if (in_array($key, $settings_to_avoid)) { continue; }
$key = Database::escape_string($key);
$sql = "UPDATE $table_settings_current SET selected_value = 'false' WHERE variable = '".$key."' AND access_url = ".intval($_configuration['access_url'])." AND type IN ('checkbox', 'radio') ";
$sql = "UPDATE $table_settings_current SET selected_value = 'false' WHERE variable = '".$key."' AND access_url = ".intval($url_id)." AND type IN ('checkbox', 'radio') ";
$res = Database::query($sql);
}
@ -266,7 +275,7 @@ if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', '
break;
}
if ($old_value != $value) $keys[] = $key;
$result = api_set_setting($key, $value, null, null, $_configuration['access_url']);
$result = api_set_setting($key, $value, null, null, $url_id);
} else {
$sql = "SELECT subkey FROM $table_settings_current WHERE variable = '$key'";
$res = Database::query($sql);
@ -279,7 +288,7 @@ if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', '
}
}
foreach ($value as $subkey => $subvalue) {
$result = api_set_setting($key, 'true', $subkey, null, $_configuration['access_url']);
$result = api_set_setting($key, 'true', $subkey, null, $url_id);
}
}

@ -12,9 +12,11 @@ $action = isset($_REQUEST['a']) ? $_REQUEST['a'] : null;
switch ($action) {
case 'update_changeable_setting':
if (api_is_global_platform_admin()) {
if (isset($_GET['id']) && !empty($_GET['id'])) {
$params = array('variable = ?' => array($_GET['id']));
$url_id = api_get_current_access_url_id();
if (api_is_global_platform_admin() && $url_id == 1) {
if (isset($_GET['id']) && !empty($_GET['id'])) {
$params = array('variable = ? ' => array($_GET['id']));
$data = api_get_settings_params($params);
if (!empty($data)) {
foreach ($data as $item) {

@ -4028,11 +4028,14 @@ function api_set_setting_option($params) {
}
function api_set_setting_simple($params) {
$table = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
$table = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
$url_id = api_get_current_access_url_id();
if (empty($params['id'])) {
$params['access_url'] = $url_id;
Database::insert($table, $params);
} else {
Database::update($table, $params, array('id = ? '=> $params['id']));
Database::update($table, $params, array('id = ? '=> array($params['id'])));
}
}

Loading…
Cancel
Save