[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