[geeklog-cvs] Geeklog-1.x/system/classes config.class.php, 1.43, 1.44
Dirk Haun
dhaun at qs1489.pair.com
Fri Jul 4 09:21:30 EDT 2008
Update of /cvsroot/geeklog/Geeklog-1.x/system/classes
In directory qs1489.pair.com:/tmp/cvs-serv92648/system/classes
Modified Files:
config.class.php
Log Message:
Allow to unset Configuration options again after they have been "restored", i.e. enabled (bug #0000664)
Index: config.class.php
===================================================================
RCS file: /cvsroot/geeklog/Geeklog-1.x/system/classes/config.class.php,v
retrieving revision 1.43
retrieving revision 1.44
diff -C2 -d -r1.43 -r1.44
*** config.class.php 1 Jul 2008 20:27:35 -0000 1.43
--- config.class.php 4 Jul 2008 13:21:25 -0000 1.44
***************
*** 103,107 ****
*
* @return array(string => mixed) This is a reference to the
! * config array
*/
function &initConfig()
--- 103,107 ----
*
* @return array(string => mixed) This is a reference to the
! * config array
*/
function &initConfig()
***************
*** 113,117 ****
while ($row = DB_fetchArray($result)) {
if ($row[1] !== 'unset') {
! if(!array_key_exists($row[2], $this->config_array) || !array_key_exists($row[0], $this->config_array[$row[2]])) {
$this->config_array[$row[2]][$row[0]] = unserialize($row[1]);
}
--- 113,118 ----
while ($row = DB_fetchArray($result)) {
if ($row[1] !== 'unset') {
! if (!array_key_exists($row[2], $this->config_array) ||
! !array_key_exists($row[0], $this->config_array[$row[2]])) {
$this->config_array[$row[2]][$row[0]] = unserialize($row[1]);
}
***************
*** 157,161 ****
function set($name, $value, $group='Core')
{
! global $_TABLES, $_DB, $_DB_dbms;
$escaped_val = addslashes(serialize($value));
--- 158,162 ----
function set($name, $value, $group='Core')
{
! global $_TABLES;
$escaped_val = addslashes(serialize($value));
***************
*** 165,175 ****
"SET value = '{$escaped_val}' WHERE " .
"name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! if ($_DB_dbms == 'mssql') {
! $sql_query = str_replace("\\'","''",$sql_query);
! $sql_query = str_replace('\\"','"',$sql_query);
! $_DB->dbQuery($sql_query, 0, 1);
! } else {
! DB_query($sql_query);
! }
$this->config_array[$group][$name] = $value;
$this->_post_configuration();
--- 166,170 ----
"SET value = '{$escaped_val}' WHERE " .
"name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! $this->_DB_escapedQuery($sql_query);
$this->config_array[$group][$name] = $value;
$this->_post_configuration();
***************
*** 187,191 ****
function set_default($name, $value, $group = 'Core')
{
! global $_TABLES, $_DB, $_DB_dbms;
$escaped_val = addslashes(serialize($value));
--- 182,186 ----
function set_default($name, $value, $group = 'Core')
{
! global $_TABLES;
$escaped_val = addslashes(serialize($value));
***************
*** 195,205 ****
"SET default_value = '{$escaped_val}' WHERE " .
"name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! if ($_DB_dbms == 'mssql') {
! $sql_query = str_replace("\\'", "''", $sql_query);
! $sql_query = str_replace('\\"', '"', $sql_query);
! $_DB->dbQuery($sql_query, 0, 1);
! } else {
! DB_query($sql_query);
! }
}
--- 190,194 ----
"SET default_value = '{$escaped_val}' WHERE " .
"name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! $this->_DB_escapedQuery($sql_query);
}
***************
*** 210,216 ****
$escaped_name = addslashes($name);
$escaped_grp = addslashes($group);
! $sql = "UPDATE {$_TABLES['conf_values']} SET value = default_value " .
! "WHERE name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! DB_query($sql);
}
--- 199,215 ----
$escaped_name = addslashes($name);
$escaped_grp = addslashes($group);
!
! $result = DB_query("SELECT value, default_value FROM {$_TABLES['conf_values']} WHERE name = '{$escaped_name}' AND group_name = '{$escaped_grp}'");
! list($value, $default_value) = DB_fetchArray($result);
!
! $sql = "UPDATE {$_TABLES['conf_values']} ";
! if ($value == 'unset') {
! $default_value = addslashes($default_value);
! $sql .= "SET value = '{$default_value}', default_value = 'unset:{$default_value}'";
! } else {
! $sql .= "SET value = default_value";
! }
! $sql .= " WHERE name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! $this->_DB_escapedQuery($sql);
}
***************
*** 221,227 ****
$escaped_name = addslashes($name);
$escaped_grp = addslashes($group);
! $sql = "UPDATE {$_TABLES['conf_values']} SET value = 'unset' " .
! "WHERE name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! DB_query($sql);
}
--- 220,232 ----
$escaped_name = addslashes($name);
$escaped_grp = addslashes($group);
! $default_value = DB_getItem($_TABLES['conf_values'], 'default_value',
! "name = '{$escaped_name}' AND group_name = '{$escaped_grp}'");
! $sql = "UPDATE {$_TABLES['conf_values']} SET value = 'unset'";
! if (substr($default_value, 0, 6) == 'unset:') {
! $default_value = addslashes(substr($default_value, 6));
! $sql .= ", default_value = '{$default_value}'";
! }
! $sql .= " WHERE name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! $this->_DB_escapedQuery($sql);
}
***************
*** 257,264 ****
* @param boolean $set whether or not this parameter is set
*/
! function add( $param_name, $default_value, $type, $subgroup, $fieldset,
$selection_array=null, $sort=0, $set=true, $group='Core')
{
! global $_TABLES, $_DB, $_DB_dbms;
$format = 'INSERT INTO %1$s (name, value, type, ' .
--- 262,269 ----
* @param boolean $set whether or not this parameter is set
*/
! function add($param_name, $default_value, $type, $subgroup, $fieldset,
$selection_array=null, $sort=0, $set=true, $group='Core')
{
! global $_TABLES;
$format = 'INSERT INTO %1$s (name, value, type, ' .
***************
*** 281,291 ****
$sql_query = vsprintf($format, $Qargs);
! if ($_DB_dbms == 'mssql') {
! $sql_query = str_replace("\\'","''",$sql_query);
! $sql_query = str_replace('\\"','""',$sql_query);
! $_DB->dbQuery($sql_query, 0, 1);
! } else {
! DB_query($sql_query);
! }
$this->config_array[$group][$param_name] = $default_value;
--- 286,290 ----
$sql_query = vsprintf($format, $Qargs);
! $this->_DB_escapedQuery($sql_query);
$this->config_array[$group][$param_name] = $default_value;
***************
*** 299,303 ****
{
DB_delete($GLOBALS['_TABLES']['conf_values'],
! array("name","group_name"),
array(addslashes($param_name), addslashes($group)));
unset($this->config_array[$group][$param_name]);
--- 298,302 ----
{
DB_delete($GLOBALS['_TABLES']['conf_values'],
! array('name', 'group_name'),
array(addslashes($param_name), addslashes($group)));
unset($this->config_array[$group][$param_name]);
***************
*** 315,319 ****
$q_string = "SELECT name, type, selectionArray, "
! . "fieldset, value FROM {$_TABLES['conf_values']}" .
" WHERE group_name='{$group}' AND subgroup='{$subgroup}' " .
" AND (type <> 'fieldset' AND type <> 'subgroup') " .
--- 314,318 ----
$q_string = "SELECT name, type, selectionArray, "
! . "fieldset, value, default_value FROM {$_TABLES['conf_values']}" .
" WHERE group_name='{$group}' AND subgroup='{$subgroup}' " .
" AND (type <> 'fieldset' AND type <> 'subgroup') " .
***************
*** 329,332 ****
--- 328,336 ----
while ($row = DB_fetchArray($Qresult)) {
$cur = $row;
+ if (substr($cur[5], 0, 6) == 'unset:') {
+ $cur[5] = true;
+ } else {
+ $cur[5] = false;
+ }
$res[$cur[3]][$cur[0]] =
array('display_name' =>
***************
*** 343,347 ****
'value' =>
(($cur[4] == 'unset') ?
! 'unset' : unserialize($cur[4])));
}
--- 347,352 ----
'value' =>
(($cur[4] == 'unset') ?
! 'unset' : unserialize($cur[4])),
! 'reset' => $cur[5]);
}
***************
*** 446,450 ****
$outerloopcntr = 1;
if (count($groups) > 0) {
! $t->set_block('menugroup','subgroup-selector','subgroups');
foreach ($groups as $group) {
$t->set_var("select_id", ($group === $grp ? 'id="current"' : ''));
--- 451,455 ----
$outerloopcntr = 1;
if (count($groups) > 0) {
! $t->set_block('menugroup', 'subgroup-selector', 'subgroups');
foreach ($groups as $group) {
$t->set_var("select_id", ($group === $grp ? 'id="current"' : ''));
***************
*** 504,508 ****
$e['type'],
$e['value'],
! $e['selectionArray']);
}
$this->_UI_get_fs($grp, $fs_contents, $fset, $t);
--- 509,514 ----
$e['type'],
$e['value'],
! $e['selectionArray'], false,
! $e['reset']);
}
$this->_UI_get_fs($grp, $fs_contents, $fset, $t);
***************
*** 571,575 ****
function _UI_get_conf_element($group, $name, $display_name, $type, $val,
! $selectionArray = null , $deletable = 0)
{
global $_CONF, $LANG_CONFIG;
--- 577,582 ----
function _UI_get_conf_element($group, $name, $display_name, $type, $val,
! $selectionArray = null , $deletable = false,
! $allow_reset = false)
{
global $_CONF, $LANG_CONFIG;
***************
*** 601,606 ****
$t->set_var('delete', $t->parse('output', 'delete-button'));
} else {
! //$t->set_var('unset_link',
! // "(<a href='#' onClick='unset(\"{$name}\");'>X</a>)");
if (($a = strrchr($name, '[')) !== FALSE) {
$on = substr($a, 1, -1);
--- 608,615 ----
$t->set_var('delete', $t->parse('output', 'delete-button'));
} else {
! if ($allow_reset) {
! $t->set_var('unset_link',
! "(<a href='#' onClick='unset(\"{$name}\");'>X</a>)");
! }
if (($a = strrchr($name, '[')) !== FALSE) {
$on = substr($a, 1, -1);
***************
*** 667,671 ****
$name . '[' . $valkey . ']',
$display_name . '[' . $valkey . ']',
! substr($type, 1), $valval, $selectionArray);
}
return $result;
--- 676,681 ----
$name . '[' . $valkey . ']',
$display_name . '[' . $valkey . ']',
! substr($type, 1), $valval, $selectionArray,
! false);
}
return $result;
***************
*** 832,835 ****
--- 842,862 ----
return $retval;
}
+
+ /**
+ * Helper function: Fix escaped SQL requests for MS SQL, if necessary
+ *
+ */
+ function _DB_escapedQuery($sql)
+ {
+ global $_DB, $_DB_dbms;
+
+ if ($_DB_dbms == 'mssql') {
+ $sql_query = str_replace("\\'", "''", $sql_query);
+ $sql_query = str_replace('\\"', '"', $sql_query);
+ $_DB->dbQuery($sql, 0, 1);
+ } else {
+ DB_query($sql);
+ }
+ }
}
More information about the geeklog-cvs
mailing list