Minahito
minah****@users*****
2006年 9月 10日 (日) 20:57:35 JST
Index: xoops2jp/html/modules/base/admin/class/ModuleUtils.class.php diff -u xoops2jp/html/modules/base/admin/class/ModuleUtils.class.php:1.1.2.23 xoops2jp/html/modules/base/admin/class/ModuleUtils.class.php:1.1.2.24 --- xoops2jp/html/modules/base/admin/class/ModuleUtils.class.php:1.1.2.23 Sun Sep 10 14:55:19 2006 +++ xoops2jp/html/modules/base/admin/class/ModuleUtils.class.php Sun Sep 10 20:57:35 2006 @@ -8,8 +8,6 @@ define("MODINSTALL_LOGTYPE_WARNING", "warning"); define("MODINSTALL_LOGTYPE_ERROR", "error"); -define("MODINSTALL_THRESHOLD_ORDER", 255); - /** * A temporary log class. */ @@ -414,8 +412,6 @@ { $configInfos = $module->getInfo('config'); - $order = MODINSTALL_THRESHOLD_ORDER + 1; - // // Insert comment config by old style. // @@ -428,8 +424,7 @@ 'formtype' => 'select', 'valuetype' => 'int', 'default' => 1, - 'options' => array('_CM_COMNOCOM' => XOOPS_COMMENT_APPROVENONE, '_CM_COMAPPROVEALL' => XOOPS_COMMENT_APPROVEALL, '_CM_COMAPPROVEUSER' => XOOPS_COMMENT_APPROVEUSER, '_CM_COMAPPROVEADMIN' => XOOPS_COMMENT_APPROVEADMIN), - 'order' => $order++ + 'options' => array('_CM_COMNOCOM' => XOOPS_COMMENT_APPROVENONE, '_CM_COMAPPROVEALL' => XOOPS_COMMENT_APPROVEALL, '_CM_COMAPPROVEUSER' => XOOPS_COMMENT_APPROVEUSER, '_CM_COMAPPROVEADMIN' => XOOPS_COMMENT_APPROVEADMIN) ); $configInfos[] = array('name' => 'com_anonpost', @@ -437,8 +432,7 @@ 'description' => '', 'formtype' => 'yesno', 'valuetype' => 'int', - 'default' => 0, - 'order' => $order++ + 'default' => 0 ); } @@ -462,8 +456,7 @@ 'formtype' => 'select', 'valuetype' => 'int', 'default' => XOOPS_NOTIFICATION_ENABLEBOTH, - 'options' => $t_options, - 'order' => $order++ + 'options' => $t_options ); // @@ -484,18 +477,17 @@ $t_optionName = $t_category['title'] . ' : ' . $t_event['title']; $t_options[$t_optionName] = $t_category['name'] . '-' . $t_event['name']; } - - $configInfos[] = array( - 'name' => 'notification_events', - 'title' => '_NOT_CONFIG_EVENTS', - 'description' => '_NOT_CONFIG_EVENTSDSC', - 'formtype' => 'select_multi', - 'valuetype' => 'array', - 'default' => array_values($t_options), - 'options' => $t_options, - 'order' => $order++ - ); } + + $configInfos[] = array( + 'name' => 'notification_events', + 'title' => '_NOT_CONFIG_EVENTS', + 'description' => '_NOT_CONFIG_EVENTSDSC', + 'formtype' => 'select_multi', + 'valuetype' => 'array', + 'default' => array_values($t_options), + 'options' => $t_options + ); } return $configInfos; Index: xoops2jp/html/modules/base/admin/class/ModuleUpdater.class.php diff -u xoops2jp/html/modules/base/admin/class/ModuleUpdater.class.php:1.1.2.13 xoops2jp/html/modules/base/admin/class/ModuleUpdater.class.php:1.1.2.14 --- xoops2jp/html/modules/base/admin/class/ModuleUpdater.class.php:1.1.2.13 Sun Sep 10 19:54:26 2006 +++ xoops2jp/html/modules/base/admin/class/ModuleUpdater.class.php Sun Sep 10 20:57:35 2006 @@ -177,8 +177,6 @@ function _installPreference() { - // Legacy_ModuleUtils::deleteAllConfigs($this->mModule, $this->mLog); - $configHandler =& xoops_gethandler('config'); // @@ -210,15 +208,37 @@ // If some active configs were deleted, remove them form database. // foreach (array_keys($activeConfigArr) as $t_actkey) { - $keepFlag = false; + $findFlag = false; foreach (array_keys($newConfigArr) as $t_newkey) { - if ($activeConfigArr[$t_actkey]->isEqual($newConfigArr[$t_newkey])) { - $keepFlag = true; - break; + + if ($activeConfigArr[$t_actkey]->get('conf_name') == $newConfigArr[$t_newkey]->get('conf_name')) { + $findFlag = true; + if (!$activeConfigArr[$t_actkey]->isEqual($newConfigArr[$t_newkey])) { + // + // Update object + // + $activeConfigArr[$t_actkey]->set('conf_title', $newConfigArr[$t_newkey]->get('conf_title')); + $activeConfigArr[$t_actkey]->set('conf_value', $newConfigArr[$t_newkey]->get('conf_value')); + $activeConfigArr[$t_actkey]->set('conf_desc', $newConfigArr[$t_newkey]->get('conf_desc')); + $activeConfigArr[$t_actkey]->set('conf_formtype', $newConfigArr[$t_newkey]->get('conf_formtype')); + $activeConfigArr[$t_actkey]->set('conf_valuetype', $newConfigArr[$t_newkey]->get('conf_valuetype')); + + // + // Delete config options. + // + $t_optionArr =& $activeConfigArr[$t_actkey]->getOptionItems(); + foreach (array_keys($t_optionArr) as $t_optionKey) { + $configHandler->_oHandler->delete($t_optionArr[$t_optionKey]); //< Exception!! + } + + $activeConfigArr[$t_actkey]->setConfOptions($newConfigArr[$t_newkey]->getConfOptions()); + + $configHandler->insertConfig($activeConfigArr[$t_actkey]); //< FIXME need log. + } } } - if (!$keepFlag) { + if (!$findFlag) { $configHandler->deleteConfig($activeConfigArr[$t_actkey]); unset($activeConfigArr[$t_actkey]); } @@ -229,7 +249,7 @@ // $maxOrder = 0; foreach (array_keys($activeConfigArr) as $t_actkey) { - if ($activeConfigArr[$t_actkey]->get('conf_order') > $maxOrder && $activeConfigArr[$t_actkey]->get('conf_order') <= MODINSTALL_THRESHOLD_ORDER) { + if ($activeConfigArr[$t_actkey]->get('conf_order') > $maxOrder) { $maxOrder = $activeConfigArr[$t_actkey]->get('conf_order'); } }