Changeset 21670


Ignore:
Timestamp:
2012/03/23 13:53:57 (9 years ago)
Author:
h_yoshimoto
Message:

#1692 フックポイント競合にエラーメッセージが正常に出力されないバグを修正

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php

    r21603 r21670  
    844844     */ 
    845845    function checkConflictPlugin($plugin_id) { 
    846         $objQuery =& SC_Query_Ex::getSingletonInstance();  
    847         $table = 'dtb_plugin_hookpoint'; 
    848         $where = 'plugin_id = ?'; 
    849         $conflictHookPoints = $objQuery->select('*', $table, $where, array($plugin_id)); 
     846        // フックポイントを取得します. 
     847        $hookPoints = $this->getHookPoint($plugin_id); 
    850848 
    851849        $conflict_alert_message = ''; 
    852         foreach ($conflictHookPoints as $conflictHookPoint) { 
    853             // 登録商品のチェック 
     850        $arrConflictPluginName = array(); 
     851        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     852        foreach ($hookPoints as $hookPoint) { 
     853            // 競合するプラグインを取得する, 
    854854            $table = 'dtb_plugin_hookpoint AS T1 LEFT JOIN dtb_plugin AS T2 ON T1.plugin_id = T2.plugin_id'; 
    855855            $where = 'T1.hook_point = ? AND NOT T1.plugin_id = ? AND T2.enable = ' . PLUGIN_ENABLE_TRUE . ' GROUP BY T1.plugin_id'; 
    856             $conflictPlugins = $objQuery->select('T1.plugin_id, T2.plugin_name', $table, $where, array($conflictHookPoint['hook_point'], $conflictHookPoint['plugin_id'])); 
    857  
    858             foreach ($conflictPlugins as $conflictPlugin) { 
    859                 $conflict_alert_message =+ '* ' .  $conflictPlugin['plugin_name'] . 'と競合する可能性があります。<br/>'; 
     856            $conflictPlugins = $objQuery->select('T1.plugin_id, T2.plugin_name', $table, $where, array($hookPoint['hook_point'], $hookPoint['plugin_id'])); 
     857 
     858            // プラグイン名重複を削除する為、専用の配列に格納し直す. 
     859            foreach($conflictPlugins as $conflictPlugin){ 
     860                // プラグイン名が見つからなければ配列に格納 
     861                if( !in_array( $conflictPlugin['plugin_name'], $arrConflictPluginName ) ) { 
     862                    $arrConflictPluginName[] = $conflictPlugin['plugin_name']; 
     863                } 
    860864            } 
     865        } 
     866        // メッセージをセットします. 
     867        foreach ($arrConflictPluginName as $conflictPluginName) { 
     868            $conflict_alert_message .= '* ' .  $conflictPluginName . 'と競合する可能性があります。<br/>'; 
    861869        } 
    862870        return $conflict_alert_message; 
     
    875883        return false; 
    876884    } 
     885     
     886    /** 
     887     * プラグインIDからフックポイントを取得します, 
     888     *  
     889     * @param string $plugin_id プラグインID 
     890     * @return array フックポイントの連想配列. 
     891     */ 
     892    function getHookPoint($plugin_id) { 
     893        $objQuery =& SC_Query_Ex::getSingletonInstance();  
     894         
     895        $table = 'dtb_plugin_hookpoint'; 
     896        $where = 'plugin_id = ?'; 
     897        return $objQuery->select('*', $table, $where, array($plugin_id)); 
     898    } 
    877899} 
Note: See TracChangeset for help on using the changeset viewer.