[Svn-src-all:2771] [version-2_12-dev 21670] #1692 フックポイント競合にエラーメッセージが正常に出力されないバグを修正
h_yoshimoto
admin @ mail.ec-cube.net
2012年 3月 23日 (金) 13:53:57 JST
Subversion committed to /home/svn/open 21670
http://svn.ec-cube.net/open_trac/changeset/21670
┌────────────────────────────┐
│更新者 : h_yoshimoto │
│更新日時: 2012-03-23 13:53:57 +0900 (金, 23 3月 2012)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#1692 フックポイント競合にエラーメッセージが正常に出力されないバグを修正
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php
変更: branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php
===================================================================
--- branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php 2012-03-23 04:49:54 UTC (rev 21669)
+++ branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php 2012-03-23 04:53:57 UTC (rev 21670)
@@ -843,22 +843,30 @@
* @return string $conflict_alert_message メッセージ
*/
function checkConflictPlugin($plugin_id) {
- $objQuery =& SC_Query_Ex::getSingletonInstance();
- $table = 'dtb_plugin_hookpoint';
- $where = 'plugin_id = ?';
- $conflictHookPoints = $objQuery->select('*', $table, $where, array($plugin_id));
+ // フックポイントを取得します.
+ $hookPoints = $this->getHookPoint($plugin_id);
$conflict_alert_message = '';
- foreach ($conflictHookPoints as $conflictHookPoint) {
- // 登録商品のチェック
+ $arrConflictPluginName = array();
+ $objQuery =& SC_Query_Ex::getSingletonInstance();
+ foreach ($hookPoints as $hookPoint) {
+ // 競合するプラグインを取得する,
$table = 'dtb_plugin_hookpoint AS T1 LEFT JOIN dtb_plugin AS T2 ON T1.plugin_id = T2.plugin_id';
$where = 'T1.hook_point = ? AND NOT T1.plugin_id = ? AND T2.enable = ' . PLUGIN_ENABLE_TRUE . ' GROUP BY T1.plugin_id';
- $conflictPlugins = $objQuery->select('T1.plugin_id, T2.plugin_name', $table, $where, array($conflictHookPoint['hook_point'], $conflictHookPoint['plugin_id']));
+ $conflictPlugins = $objQuery->select('T1.plugin_id, T2.plugin_name', $table, $where, array($hookPoint['hook_point'], $hookPoint['plugin_id']));
- foreach ($conflictPlugins as $conflictPlugin) {
- $conflict_alert_message =+ '* ' . $conflictPlugin['plugin_name'] . 'と競合する可能性があります。<br/>';
+ // プラグイン名重複を削除する為、専用の配列に格納し直す.
+ foreach($conflictPlugins as $conflictPlugin){
+ // プラグイン名が見つからなければ配列に格納
+ if( !in_array( $conflictPlugin['plugin_name'], $arrConflictPluginName ) ) {
+ $arrConflictPluginName[] = $conflictPlugin['plugin_name'];
+ }
}
}
+ // メッセージをセットします.
+ foreach ($arrConflictPluginName as $conflictPluginName) {
+ $conflict_alert_message .= '* ' . $conflictPluginName . 'と競合する可能性があります。<br/>';
+ }
return $conflict_alert_message;
}
@@ -874,4 +882,18 @@
}
return false;
}
+
+ /**
+ * プラグインIDからフックポイントを取得します,
+ *
+ * @param string $plugin_id プラグインID
+ * @return array フックポイントの連想配列.
+ */
+ function getHookPoint($plugin_id) {
+ $objQuery =& SC_Query_Ex::getSingletonInstance();
+
+ $table = 'dtb_plugin_hookpoint';
+ $where = 'plugin_id = ?';
+ return $objQuery->select('*', $table, $where, array($plugin_id));
+ }
}
Svn-src-all メーリングリストの案内