From 09fba458f79b8b1b1940405911915feade1989bf Mon Sep 17 00:00:00 2001 From: marcus Date: Wed, 18 Jun 2008 11:10:16 +0000 Subject: Fixes #17 - Debug mode toggle. Introduced unset_config() which is also called automatically by set_config(). Also modified the view input/checkboxes to set values on the checkbox. git-svn-id: https://code.elgg.org/elgg/trunk@961 36083f99-b078-4883-b0ff-0f9b5a30f544 --- actions/admin/site/update_basic.php | 9 ++++++++- actions/systemsettings/install.php | 8 +++++++- engine/lib/configuration.php | 30 +++++++++++++++++++++++++++--- languages/en.php | 4 +++- views/default/input/checkboxes.php | 3 ++- views/default/settings/system.php | 8 +++++++- 6 files changed, 54 insertions(+), 8 deletions(-) diff --git a/actions/admin/site/update_basic.php b/actions/admin/site/update_basic.php index 25500067a..830df9ad1 100644 --- a/actions/admin/site/update_basic.php +++ b/actions/admin/site/update_basic.php @@ -29,7 +29,14 @@ datalist_set('path',get_input('path')); datalist_set('dataroot',get_input('dataroot')); - set_config('language', get_input('language'), $site->getGUID()); + set_config('language', get_input('language'), $site->getGUID()); + + $debug = get_input('debug'); + if ($debug) + set_config('debug', 1, $site->getGUID()); + else + unset_config('debug', $site->getGUID()); + system_message(elgg_echo("admin:configuration:success")); diff --git a/actions/systemsettings/install.php b/actions/systemsettings/install.php index 06a40e167..30f501f36 100644 --- a/actions/systemsettings/install.php +++ b/actions/systemsettings/install.php @@ -33,7 +33,13 @@ datalist_set('default_site',$site->getGUID()); - set_config('language', get_input('language'), $site->getGUID()); + set_config('language', get_input('language'), $site->getGUID()); + + $debug = get_input('debug'); + if ($debug) + set_config('debug', 1, $site->getGUID()); + else + unset_config('debug', $site->getGUID()); system_message(elgg_echo("installation:configuration:success")); diff --git a/engine/lib/configuration.php b/engine/lib/configuration.php index acb651170..a033d679f 100644 --- a/engine/lib/configuration.php +++ b/engine/lib/configuration.php @@ -12,7 +12,26 @@ * @link http://elgg.org/ */ - + + /** + * Unset a config option. + * + * @param string $name The name of the field. + * @param int $site_guid Optionally, the GUID of the site (current site is assumed by default). + * @return mixed + */ + function unset_config($name, $site_guid = 0) + { + global $CONFIG; + + $name = mysql_real_escape_string($name); + $site_guid = (int) $site_guid; + if ($site_guid == 0) + $site_guid = (int) $CONFIG->site_id; + + return delete_data("delete from {$CONFIG->dbprefix}config where name='$name' and site_guid=$site_guid"); + } + /** * Sets a configuration value * @@ -23,14 +42,19 @@ */ function set_config($name, $value, $site_guid = 0) { - global $CONFIG; + global $CONFIG; + + // Unset existing + unset_config($name,$site_guid); + $name = mysql_real_escape_string($name); $value = mysql_real_escape_string($value); $site_guid = (int) $site_guid; if ($site_guid == 0) $site_guid = (int) $CONFIG->site_id; $CONFIG->$name = $value; - $value = sanitise_string(serialize($value)); + $value = sanitise_string(serialize($value)); + return insert_data("insert into {$CONFIG->dbprefix}config set name = '{$name}', value = '{$value}', site_guid = {$site_guid}"); } diff --git a/languages/en.php b/languages/en.php index 12d4d8c2f..0e359c561 100644 --- a/languages/en.php +++ b/languages/en.php @@ -349,7 +349,9 @@ Alternatively, you can enter your database settings below and we will try and do 'wwwroot' => "The site URL, followed by a trailing slash:", 'path' => "The full path to your site root on your disk, followed by a trailing slash:", 'dataroot' => "The full path to the directory where uploaded files will be stored, followed by a trailing slash:", - 'language' => "Please enter the default language code for your site, e.g. 'en' for English, 'fr' for French, 'ru' for Russian:", + 'language' => "The default language code for your site, e.g. 'en' for English, 'fr' for French, 'ru' for Russian:", + 'debug' => "Debug mode provides extra information which can be used to diagnose faults, however it can slow your system down so should only be used if you are having problems:", + 'debug:label' => "Turn on debug mode", /** * Welcome diff --git a/views/default/input/checkboxes.php b/views/default/input/checkboxes.php index 3addef0f6..1a10b8a62 100644 --- a/views/default/input/checkboxes.php +++ b/views/default/input/checkboxes.php @@ -19,7 +19,8 @@ */ foreach($vars['options'] as $option) { - if (!in_array($option,$vars['value'])) { + //if (!in_array($option,$vars['value'])) { + if ($option != $vars['value']) { $selected = ""; } else { $selected = "checked = \"checked\""; diff --git a/views/default/settings/system.php b/views/default/settings/system.php index ba3e614ee..c956da0d4 100644 --- a/views/default/settings/system.php +++ b/views/default/settings/system.php @@ -41,7 +41,13 @@ } -?> +?> +

+
+ array(elgg_echo('debug:label')), 'internalname' => 'debug', 'value' => ($vars['config']->debug ? elgg_echo('debug:label') : "") )); + ?> +

" /> -- cgit v1.2.3