Changeset 987

Show
Ignore:
Timestamp:
08/21/10 11:26:37 (18 months ago)
Author:
ort
Message:

fix Hook run

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/engine/modules/hook/Hook.class.php

    r891 r987  
    3535         */ 
    3636        protected $aHooks=array(); 
    37          
     37        /** 
     38         * Hook objects 
     39         * 
     40         * @var unknown_type 
     41         */ 
     42        protected $aHooksObject=array(); 
    3843        /** 
    3944         * Инициализация модуля 
     
    140145                                break; 
    141146                        case 'hook': 
    142                                 if (isset($aHook['params']['sClassName']) and class_exists($aHook['params']['sClassName'])) { 
    143                                         $oHook=new $aHook['params']['sClassName']; 
     147                                $sHookClass=isset($aHook['params']['sClassName']) ? $aHook['params']['sClassName'] : null; 
     148                                if ($sHookClass and class_exists($sHookClass)) { 
     149                                        if (isset($this->aHooksObject[$sHookClass])) { 
     150                                                $oHook=$this->aHooksObject[$sHookClass]; 
     151                                        } else { 
     152                                                $oHook=new $sHookClass; 
     153                                                $this->aHooksObject[$sHookClass]=$oHook; 
     154                                        } 
    144155                                        $result=call_user_func_array(array($oHook,$aHook['callback']),array(&$aVars)); 
    145156                                }