[svn r22316] Added register event system for configuration setting variable changed - partial FS#842

skala
Cristian Fasanando 17 years ago
parent 87340404c7
commit bc82d8d0cd
  1. 33
      main/admin/settings.php
  2. 2
      main/admin/statistics/statistics.lib.php
  3. 1
      main/inc/lib/main_api.lib.php

@ -1,4 +1,4 @@
<?php // $Id: settings.php 22210 2009-07-18 16:17:37Z ivantcholakov $ <?php // $Id: settings.php 22316 2009-07-23 16:18:33Z cfasanando $
/* /*
============================================================================== ==============================================================================
Dokeos - elearning and course management software Dokeos - elearning and course management software
@ -261,31 +261,60 @@ if (!empty($_GET['category']) and !in_array($_GET['category'], array('Plugins',
//$sql = "UPDATE $table_settings_current SET selected_value='false' WHERE category='$my_category' AND type='checkbox'"; //$sql = "UPDATE $table_settings_current SET selected_value='false' WHERE category='$my_category' AND type='checkbox'";
//$result = api_sql_query($sql, __FILE__, __LINE__); //$result = api_sql_query($sql, __FILE__, __LINE__);
// Save the settings // Save the settings
$keys = array();
foreach ($values as $key => $value) foreach ($values as $key => $value)
{ {
if (!is_array($value)) if (!is_array($value))
{ {
//$sql = "UPDATE $table_settings_current SET selected_value='".mysql_real_escape_string($value)."' WHERE variable='$key'"; //$sql = "UPDATE $table_settings_current SET selected_value='".mysql_real_escape_string($value)."' WHERE variable='$key'";
//$result = api_sql_query($sql, __FILE__, __LINE__); //$result = api_sql_query($sql, __FILE__, __LINE__);
if (api_get_setting($key) != $value) $keys[] = $key;
$result = api_set_setting($key,$value,null,null,$_configuration['access_url']); $result = api_set_setting($key,$value,null,null,$_configuration['access_url']);
} }
else else
{ {
$sql = "SELECT subkey FROM $table_settings_current WHERE variable = '$key'";
$res = api_sql_query($sql,__FILE__,__LINE__);
$subkeys = array();
while ($row_subkeys = Database::fetch_array($res)) {
// if subkey is changed
if ( (isset($value[$row_subkeys['subkey']]) && api_get_setting($key,$row_subkeys['subkey']) == 'false') ||
(!isset($value[$row_subkeys['subkey']]) && api_get_setting($key,$row_subkeys['subkey']) == 'true')) {
$keys[] = $key;
break;
}
}
foreach ($value as $subkey => $subvalue) foreach ($value as $subkey => $subvalue)
{ {
//$sql = "UPDATE $table_settings_current SET selected_value='true' WHERE variable='$key' AND subkey = '$subkey'"; //$sql = "UPDATE $table_settings_current SET selected_value='true' WHERE variable='$key' AND subkey = '$subkey'";
//$result = api_sql_query($sql, __FILE__, __LINE__); //$result = api_sql_query($sql, __FILE__, __LINE__);
$result = api_set_setting($key,'true',$subkey,null,$_configuration['access_url']); $result = api_set_setting($key,'true',$subkey,null,$_configuration['access_url']);
} }
} }
} }
// add event to system log // add event configuration settings category to system log
$time = time(); $time = time();
$user_id = api_get_user_id(); $user_id = api_get_user_id();
$category = $_GET['category']; $category = $_GET['category'];
event_system(LOG_CONFIGURATION_SETTINGS_CHANGE, LOG_CONFIGURATION_SETTINGS_CATEGORY, $category, $time, $user_id); event_system(LOG_CONFIGURATION_SETTINGS_CHANGE, LOG_CONFIGURATION_SETTINGS_CATEGORY, $category, $time, $user_id);
// add event configuration settings variable to system log
if (is_array($keys) && count($keys) > 0) {
foreach($keys as $variable) {
event_system(LOG_CONFIGURATION_SETTINGS_CHANGE, LOG_CONFIGURATION_SETTINGS_VARIABLE, $variable, $time, $user_id);
}
}
header('Location: settings.php?action=stored&category='.Security::remove_XSS($_GET['category'])); header('Location: settings.php?action=stored&category='.Security::remove_XSS($_GET['category']));
exit; exit;
} }

@ -361,7 +361,7 @@ class Statistics
$table->set_header(0, get_lang('EventType')); $table->set_header(0, get_lang('EventType'));
$table->set_header(1, get_lang('DataType')); $table->set_header(1, get_lang('DataType'));
$table->set_header(2, get_lang('Value')); $table->set_header(2, get_lang('Value'));
$table->set_header(3, get_lang('Username')); $table->set_header(3, get_lang('UserName'));
$table->set_header(4, get_lang('Date')); $table->set_header(4, get_lang('Date'));
$table->display(); $table->display();

@ -192,6 +192,7 @@ define('LOG_COURSE_CODE', 'course_code');
define('LOG_USER_ID', 'user_id'); define('LOG_USER_ID', 'user_id');
define('LOG_SESSION_ID', 'session_id'); define('LOG_SESSION_ID', 'session_id');
define('LOG_CONFIGURATION_SETTINGS_CATEGORY', 'settings_category'); define('LOG_CONFIGURATION_SETTINGS_CATEGORY', 'settings_category');
define('LOG_CONFIGURATION_SETTINGS_VARIABLE', 'settings_variable');
/* /*
============================================================================== ==============================================================================
MAIN API EXTENSIONS MAIN API EXTENSIONS

Loading…
Cancel
Save