Ignore:
Timestamp:
2012/04/27 12:17:09 (14 years ago)
Author:
adachi
Message:

#1782 plugin_infoフォーマット対応, フックポイントの自動登録対応

Location:
branches/version-2_12-dev/data/class/plugin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/plugin/SC_Plugin_Base.php

    r21785 r21794  
    33 * This file is part of EC-CUBE 
    44 * 
    5  * Copyright(c) 2000-2011 LOCKON CO.,LTD. All Rights Reserved. 
     5 * Copyright(c) 2000-2012 LOCKON CO.,LTD. All Rights Reserved. 
    66 * 
    77 * http://www.lockon.co.jp/ 
     
    3333abstract class SC_Plugin_Base { 
    3434 
    35     var $arrSelfInfo; 
     35    protected $arrSelfInfo; 
    3636 
    3737    /** 
     
    8383     */ 
    8484    abstract function disable($arrPlugin); 
     85 
     86    /** 
     87     * プラグインヘルパーへ, コールバックメソッドを登録します. 
     88     * 
     89     * @param object $objPluginHelper 
     90     * @param integer $priority 
     91     */ 
     92    function register(SC_Helper_Plugin $objHelperPlugin, $priority) { 
     93        if (isset($this->arrSelfInfo['plugin_hook_point'])) { 
     94            $arrHookPoints = $this->arrSelfInfo['plugin_hook_point']; 
     95            foreach ($arrHookPoints as $hook_point) { 
     96                if (isset($hook_point['callback'])) { 
     97                    $hook_point_name = $hook_point['hook_point']; 
     98                    $callback_name   = $hook_point['callback']; 
     99                    $objHelperPlugin->addAction($hook_point_name, array($this, $callback_name), $priority); 
     100                } 
     101            } 
     102        } 
     103    } 
    85104} 
    86 ?> 
  • branches/version-2_12-dev/data/class/plugin/SC_Plugin_Util.php

    r21750 r21794  
    3939        } 
    4040        $arrRet = $objQuery->select($col,$table,$where); 
     41         
     42        // プラグインフックポイントを取得. 
     43        $max = count($arrRet); 
     44        for ($i = 0; $i < $max; $i++) { 
     45            $plugin_id = $arrRet[$i]['plugin_id']; 
     46            $arrHookPoint = SC_Plugin_Util::getPluginHookPoint($plugin_id); 
     47            $arrRet[$i]['plugin_hook_point'] = $arrHookPoint; 
     48        } 
    4149        return $arrRet; 
    4250    } 
     
    121129        return $arrPluginDirectory; 
    122130    } 
     131     
     132    /** 
     133     * プラグインIDをキーに, プラグインフックポイントを取得する. 
     134     * 
     135     * @param integer $plugin_id 
     136     * @return array フックポイントの一覧 
     137     */ 
     138    function getPluginHookPoint($plugin_id) { 
     139        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     140        $cols = '*'; 
     141        $from = 'dtb_plugin_hookpoint'; 
     142        $where = 'plugin_id = ?'; 
     143        return $objQuery->select($cols, $from, $where, array($plugin_id)); 
     144    } 
    123145} 
Note: See TracChangeset for help on using the changeset viewer.