[geeklog-cvs] Geeklog-1.x/system/classes config.class.php, 1.42, 1.42.2.1
Dirk Haun
dhaun at qs1489.pair.com
Tue Jul 15 03:58:26 EDT 2008
Update of /cvsroot/geeklog/Geeklog-1.x/system/classes
In directory qs1489.pair.com:/tmp/cvs-serv20161
Modified Files:
Tag: geeklog_1_5_0_1
config.class.php
Log Message:
Ported fixes over from the Trunk: Allow $_CONF overrides in siteconfig.php (bug #673); allow disabling "restored" entries (bug #664)
Index: config.class.php
===================================================================
RCS file: /cvsroot/geeklog/Geeklog-1.x/system/classes/config.class.php,v
retrieving revision 1.42
retrieving revision 1.42.2.1
diff -C2 -d -r1.42 -r1.42.2.1
*** config.class.php 14 Jun 2008 15:28:01 -0000 1.42
--- config.class.php 15 Jul 2008 07:58:23 -0000 1.42.2.1
***************
*** 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()
***************
*** 109,117 ****
global $_TABLES;
! $sql_query = "SELECT name, value, group_name FROM {$_TABLES['conf_values']} WHERE (type <> 'subgroup') AND (type <> 'fieldset')";
! $result = DB_query($sql_query);
while ($row = DB_fetchArray($result)) {
if ($row[1] !== 'unset') {
! $this->config_array[$row[2]][$row[0]] = unserialize($row[1]);
}
}
--- 109,120 ----
global $_TABLES;
! $sql = "SELECT name, value, group_name FROM {$_TABLES['conf_values']} WHERE (type <> 'subgroup') AND (type <> 'fieldset')";
! $result = DB_query($sql);
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]);
! }
}
}
***************
*** 155,173 ****
function set($name, $value, $group='Core')
{
! global $_TABLES, $_DB, $_DB_dbms;
$escaped_val = addslashes(serialize($value));
$escaped_name = addslashes($name);
$escaped_grp = addslashes($group);
! $sql_query = "UPDATE {$_TABLES['conf_values']} " .
! "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();
--- 158,170 ----
function set($name, $value, $group='Core')
{
! global $_TABLES;
$escaped_val = addslashes(serialize($value));
$escaped_name = addslashes($name);
$escaped_grp = addslashes($group);
! $sql = "UPDATE {$_TABLES['conf_values']} " .
! "SET value = '{$escaped_val}' WHERE " .
! "name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! $this->_DB_escapedQuery($sql);
$this->config_array[$group][$name] = $value;
$this->_post_configuration();
***************
*** 185,203 ****
function set_default($name, $value, $group = 'Core')
{
! global $_TABLES, $_DB, $_DB_dbms;
$escaped_val = addslashes(serialize($value));
$escaped_name = addslashes($name);
$escaped_grp = addslashes($group);
! $sql_query = "UPDATE {$_TABLES['conf_values']} " .
! "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);
! }
}
--- 182,194 ----
function set_default($name, $value, $group = 'Core')
{
! global $_TABLES;
$escaped_val = addslashes(serialize($value));
$escaped_name = addslashes($name);
$escaped_grp = addslashes($group);
! $sql = "UPDATE {$_TABLES['conf_values']} " .
! "SET default_value = '{$escaped_val}' WHERE " .
! "name = '{$escaped_name}' AND group_name = '{$escaped_grp}'";
! $this->_DB_escapedQuery($sql);
}
***************
*** 208,214 ****
$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);
}
***************
*** 219,225 ****
$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);
}
***************
*** 255,262 ****
* @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, ' .
***************
*** 277,289 ****
serialize($default_value));
$Qargs = array_map('addslashes', $Qargs);
! $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;
--- 284,290 ----
serialize($default_value));
$Qargs = array_map('addslashes', $Qargs);
! $sql = vsprintf($format, $Qargs);
! $this->_DB_escapedQuery($sql);
$this->config_array[$group][$param_name] = $default_value;
***************
*** 297,301 ****
{
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]);
***************
*** 313,317 ****
$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') " .
***************
*** 327,330 ****
--- 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' =>
***************
*** 341,345 ****
'value' =>
(($cur[4] == 'unset') ?
! 'unset' : unserialize($cur[4])));
}
--- 347,352 ----
'value' =>
(($cur[4] == 'unset') ?
! 'unset' : unserialize($cur[4])),
! 'reset' => $cur[5]);
}
***************
*** 444,448 ****
$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"' : ''));
***************
*** 502,506 ****
$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);
***************
*** 569,573 ****
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;
***************
*** 599,604 ****
$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);
***************
*** 665,669 ****
$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;
***************
*** 830,833 ****
--- 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 = str_replace("\\'", "''", $sql);
+ $sql = str_replace('\\"', '"', $sql);
+ $_DB->dbQuery($sql, 0, 1);
+ } else {
+ DB_query($sql);
+ }
+ }
}
More information about the geeklog-cvs
mailing list