Ignore:
Timestamp:
2012/11/07 21:04:04 (14 years ago)
Author:
shutta
Message:

#1962 (プラグイン: SC_系のクラスを優先度順にフック(継承)できるように改善)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Plugin.php

    r22018 r22083  
    105105        } 
    106106 
     107        if ($hook_point == 'loadClassFileChange') { 
     108            $arrSaveArgs = $arrArgs; 
     109            $arrClassName = array(); 
     110            $arrClassPath = array(); 
     111        } 
     112 
    107113        if (array_key_exists($hook_point, $this->arrRegistedPluginActions) 
    108114            && is_array($this->arrRegistedPluginActions[$hook_point])) { 
     
    113119                foreach ($arrFuncs as $func) { 
    114120                    if (!is_null($func['function'])) { 
    115                         call_user_func_array($func['function'], $arrArgs); 
     121                        if ($hook_point == 'loadClassFileChange') { 
     122                            $classname = $arrSaveArgs[0]; 
     123                            $classpath = $arrSaveArgs[1]; 
     124                            $arrTempArgs = array(&$classname, &$classpath); 
     125 
     126                            call_user_func_array($func['function'], $arrTempArgs); 
     127 
     128                            if ($classname !== $arrSaveArgs[0]) { 
     129                                $arrClassName[] = $classname; 
     130                                $arrClassPath[] = $classpath; 
     131                            } 
     132                        } else { 
     133                            call_user_func_array($func['function'], $arrArgs); 
     134                        } 
    116135                    } 
     136                } 
     137            } 
     138 
     139            if ($hook_point == 'loadClassFileChange') { 
     140                if (count($arrClassName) > 0) { 
     141                    $arrArgs[0] = $arrClassName; 
     142                    $arrArgs[1] = $arrClassPath; 
    117143                } 
    118144            } 
Note: See TracChangeset for help on using the changeset viewer.