[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