Итак пытаюсь создать свой хук. Пока не получается, возможно кто подскажет.
https://www.drupal.org/node/2302845 здесь примеров нет, только описаны способы.
http://graker.ru/drupal/20_api_za_20_dnei/hooks_api - данный пример не работает,возможно потому что 6-ка.
Пока ковыряю блок апи чтобы понять как это работает.
Что-то мне подсказывает что на этот вопрос я отвечу сам себе.
Комментарии
как раз таки там и описаны все возможные варианты с примерами - читай внимательно и вникай
там четко описаны типы хуков и их использование
Я попробую разжевать и отпишусь
А что не получается-то? Вроде ж оно примитивное - module_invoke_all('название', аргументы) - и всё.
Возможно и примитивно. Доков с примерами особо нет. Во многих примерах ошибки. Но я разобрал этот вопрос.
Теперь поймет каждый
Спасибо Другу(Xdebug)
Приведу боле конкретные примеры
Создадим модуль где опишем первичныю логику.(Все что угодно, создание сущностей в базе,обработка данных и тд)
В данном примере это будет callback menu с реализацией хука
{
$menu [ 'mymodule' ] = array
(
'title' => 'Some title' ,
'page callback' => 'my_page_callback' ,
'access callback' => TRUE ,
);
return $menu ;
}
function my_page_callback () {
$content = array('Line 1');
foreach (module_implements('custom_hook_name') as $module) {
$function = $module . '_custom_hook_name';
$content = $function($content);
}
$output = '' ;
foreach( $content as $c )
{
$output .= '<p>' . $c . '</p>' ;
}
return $output ;
}
Основная логика нашего хука(базовой функции)
$output = '' ;
foreach( $content as $c )
{
$output .= '<p>' . $c . '</p>' ;
}
return $output ;
Здесь мы имеем какой-то массив со строкой, и ее выводим на экран.
Вот что мы видим
Some title
Line 1
Естественно мы можем написать любую логику,все что угодно.
Теперь расширим данную логику. Реализовав хук в своем модуле. (соттветственно мы вызовем базовую логику + добавим то что нужно нам)
Возможности вашего хука определенны в базовой функции, документацию принято описывать в файле mymodule.api.php
В данном случае мы будем использовать (Сбор результатов в массив) для передачи результата переменной по ссылке
$function = $module . '_custom_hook_name';
$content = $function($content);
}
В итоге мы получаем вызов функции mymodule_custom_hook_name($content)
С возвратом всех определленных нами значений
Теперь реализуем нах хук
{
$content[] = 'Line 2';
$content[] = 'Another line';
return $content;
}
В результате получим такой вывод
Some title
Line 1
Line 2
Another line
P.S кнопка вставка кода в мозилле не работает