Esempio n. 1
0
function smarty_function_hook($params, $template)
{
    $contents = "";
    if (isset($params['name'])) {
        $core_params_to_hook = array();
        if (isset($params['params'])) {
            $core_params_to_hook = $params['params'];
        }
        if (!isset($params['container'])) {
            $params['container'] = "<div>[hook]</div>";
        }
        $hookData = \Centreon\Internal\Hook::execute($params['name'], $core_params_to_hook);
        foreach ($hookData as $hook) {
            if (isset($hook['template'])) {
                $tpl = $template->createTemplate($hook['template']);
                if (isset($hook['variables'])) {
                    $tpl->assign('variables', $hook['variables']);
                }
                if (isset($params['container'])) {
                    $contents .= str_replace("[hook]", $template->fetch($tpl), $params['container']);
                }
            }
        }
    }
    return $contents;
}
Esempio n. 2
0
 public function testExecuteEmptyDisplayHook()
 {
     ob_start();
     Di::getDefault()->get('router')->dispatch();
     ob_end_clean();
     $result = Hook::execute('displayIdontexist', array('test_key' => 'test_value'));
     $this->assertEquals(0, count($result));
 }
Esempio n. 3
0
 /**
  *
  * @param array $resultSet
  */
 public static function processHooks(&$resultSet)
 {
     $arr = array();
     foreach ($resultSet as $set) {
         if (isset($set[static::$objectId])) {
             $arr[] = $set[static::$objectId];
         }
     }
     $hookArr = static::getHookArray();
     foreach ($hookArr as $hook) {
         $hookData = Hook::execute($hook, $arr);
         foreach ($hookData as $data) {
             $columnName = $data['columnName'];
             foreach ($data['values'] as $k => $value) {
                 foreach ($resultSet as $key => $set) {
                     if ($set[static::$objectId] == $k) {
                         $resultSet[$key][$columnName] = $value;
                     }
                 }
             }
         }
     }
 }