Ignore:
Timestamp:
Jun 30, 2009, 11:38:31 PM (15 years ago)
Author:
Criss
Message:

Fix bug on plugin update

Location:
extensions/CommentEditor
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • extensions/CommentEditor/classes/ce_config.class.php

    r3475 r3480  
    99  var $config_values;
    1010  var $default_config;
    11   var $db_key;
    12   var $db_comment;
     11  var $db_key = null;
     12  var $db_comment = null;
    1313
    1414  /* ************************ */
     
    1818  function CE_Config($default_config = array()) {
    1919    $this->default_config = $default_config;
    20     $this->db_key = CE_CFG_DB_KEY;
    21     $this->db_comment = CE_CFG_DB_COMMENT;
    2220  }
    2321
     
    3331  }
    3432
     33  function setValue($key, $value) {
     34      $this->config_values[$key] = $value;
     35  }
     36
     37  function getVersion() {
     38    if (isset($this->config_values[CE_CFG_VERSION])) {
     39      return $this->config_values[CE_CFG_VERSION];
     40    }
     41    return CE_VERSION;
     42  }
     43
    3544  function setDBKey($key) {
    3645    $this->db_key = $key;
    37   }
    38 
    39   function setDBComment($comment) {
    40     $this->db_comment = $comment;
    41   }
    42 
    43   function setValue($key, $value) {
    44       $this->config_values[$key] = $value;
    4546  }
    4647
     
    5051
    5152  function loadConfig() {
    52     $query = '
    53         SELECT value
    54         FROM '.CONFIG_TABLE.'
    55         WHERE param = \''.CE_CFG_DB_KEY.'\'
    56         ;';
    57     $result = pwg_query($query);
    58     if($result) {
    59       $row = mysql_fetch_row($result);
    60       if(is_string($row[0])) {
    61         $this->config_values = unserialize($row[0]);
     53    if (null != $this->db_key) {
     54      $query = '
     55          SELECT value
     56          FROM '.CONFIG_TABLE.'
     57          WHERE param = \''. $this->db_key .'\'
     58          ;';
     59      $result = pwg_query($query);
     60      if($result) {
     61        $row = mysql_fetch_row($result);
     62        if(is_string($row[0])) {
     63          $this->config_values = unserialize($row[0]);
     64        }
    6265      }
    6366    }
     
    7881
    7982  function saveConfig() {
     83    if (null == $this->db_key) {
     84      return false;
     85    }
     86    $db_comment = sprintf($this->config_values[CE_CFG_COMMENT],
     87                          $this->db_key,
     88                          $this->getVersion());
    8089    $query = '
    8190        REPLACE INTO '.CONFIG_TABLE.'
     
    8392          \''. $this->db_key .'\',
    8493          \''.serialize($this->config_values).'\',
    85           \''. $this->db_comment . '\')
     94          \''. $db_comment . '\')
    8695        ;';
    8796    $result = pwg_query($query);
     
    99108  static function install($plugin_id, $default_config = array()) {
    100109    $config = new CE_Config($default_config);
    101     $config->setDBComment('Factory settings for '. $plugin_id);
    102110    $config->setDBKey($plugin_id);
    103111    $config->loadConfig();
     112    if (isset($default_config[CE_CFG_VERSION])) {
     113      // Override version
     114      $config->config_values[CE_CFG_VERSION] = $default_config[CE_CFG_VERSION];
     115    }
     116    if (isset($default_config[CE_CFG_COMMENT])) {
     117      // Override comment
     118      $config->config_values[CE_CFG_COMMENT] = $default_config[CE_CFG_COMMENT];
     119    }
    104120    $result = $config->saveConfig();
    105121    return $result;
  • extensions/CommentEditor/classes/ce_plugin.class.php

    r3475 r3480  
    11<?php
    2 /* $Id: ce_plugin.class.php,v 1.13 2009/06/30 19:01:50 Criss Exp $ */
     2/* $Id: ce_plugin.class.php,v 1.14 2009/06/30 21:36:20 Criss Exp $ */
    33if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
    44
     
    2020    $this->config = $config;
    2121    if (null != $this->config) {
     22      $this->config->setDBKey(CE_CFG_DB_KEY);
    2223      $this->config->loadConfig();
     24      $this->config->setValue(CE_CFG_COMMENT, CE_CFG_DB_COMMENT);
    2325    }
    2426  }
     
    118120
    119121  function getVersion() {
    120     if (isset($this->config->config_values[CE_CFG_VERSION])) {
    121       return $this->config->config_values[CE_CFG_VERSION];
    122     }
    123     return CE_VERSION;
     122    return $this->config->getVersion();
    124123  }
    125124
  • extensions/CommentEditor/include/ce_common.inc.php

    r3476 r3480  
    11<?php
    2 /* $Id: ce_common.inc.php,v 1.14 2009/06/30 19:22:06 Criss Exp $ */
     2/* $Id: ce_common.inc.php,v 1.15 2009/06/30 21:36:20 Criss Exp $ */
    33if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
    44
     
    4242if (isset($plugin)) {
    4343  define('CE_CFG_DB_KEY',       $plugin['id']);
    44   define('CE_CFG_DB_COMMENT',   'Configuration of plugin ' . $plugin['id']);
    4544}
     45define('CE_CFG_DB_FACTORY',     'Factory settings for plugin %s [%s]');
     46define('CE_CFG_DB_COMMENT',     'Configuration of plugin %s [%s]');
    4647define('CE_CFG_DISPLAY_ERROR',  'display_error');
    4748define('CE_CFG_DISPLAY_INFO',   'display_info');
     49define('CE_CFG_COMMENT',        'comment');
    4850define('CE_CFG_VERSION',        'version');
    4951
  • extensions/CommentEditor/maintain.inc.php

    r3476 r3480  
    1111
    1212function plugin_install($plugin_id, $version, &$errors) {
     13  include_once(CE_PATH . 'include/ce_common.inc.php');
     14  // Include language advices
     15  load_language('plugin.lang', CE_PATH);
     16  if ($version != CE_VERSION) {
     17    array_push($errors, sprintf(l10n('ce_inconsistent_version'), $plugin_id));
     18    return;
     19  }
     20  $ce_config_default[CE_CFG_COMMENT] = CE_CFG_DB_FACTORY;
    1321  update_config($plugin_id, $version, $errors);
    1422}
     
    2937function update_config($plugin_id, $version, &$errors) {
    3038  include_once(CE_PATH . 'include/ce_common.inc.php');
    31   // Include language advices
    32   load_language('plugin.lang', CE_PATH);
    33   if ($version != CE_VERSION) {
    34     array_push($errors, sprintf(l10n('ce_inconsistent_version'), $plugin_id));
    35     return;
    36   }
    3739  $clean = ce_clean_obsolete_files(CE_OBSOLETE);
    38   $ce_config_default[CE_CFG_VERSION] = $version;
     40  $ce_config_default[CE_CFG_VERSION] = CE_VERSION;
    3941  $install = CE_Config::install($plugin_id, $ce_config_default);
    4042}
Note: See TracChangeset for help on using the changeset viewer.