コード例 #1
0
ファイル: Config.php プロジェクト: ronseigel/agent-ohm
 /**
  * Load event observers for an area (front, admin)
  *
  * @param	string $area
  * @return	boolean
  */
 public function loadEventObservers($area)
 {
     if ($events = $this->getNode("{$area}/events")) {
         $events = $events->children();
     } else {
         return false;
     }
     foreach ($events as $event) {
         $eventName = $event->getName();
         $observers = $event->observers->children();
         foreach ($observers as $observer) {
             switch ((string) $observer->type) {
                 case 'singleton':
                     $callback = array(AO::getSingleton((string) $observer->class), (string) $observer->method);
                     break;
                 case 'object':
                 case 'model':
                     $callback = array(AO::getModel((string) $observer->class), (string) $observer->method);
                     break;
                 default:
                     $callback = array($observer->getClassName(), (string) $observer->method);
                     break;
             }
             $args = (array) $observer->args;
             $observerClass = $observer->observer_class ? (string) $observer->observer_class : '';
             AO::addObserver($eventName, $callback, $args, $observer->getName(), $observerClass);
         }
     }
     return true;
 }