Хуки в ICMS2

 
Посетитель
small user social cms
Медаль
Сообщений: 150
Вопрос больше к разработчикам или тем кто уже разобрался в структуре кмс.
Почему выполнение некоторых хуков с возвратом данных происходит, а некоторых без возврата, например, в контенте:
Код PHP:
  1. cmsEventsManager::hook("content_add", $ctype);
  2. $form = cmsEventsManager::hook("content_{$ctype['name']}_form", $form);
И почему индивидуальный хук для для каждого вида контента имеется (2 строка), а общего нет, хотя наоборот логичнее было бы?
Хотите сказать спасибо, просто увеличьте карму!
Делай добро и бросай его в воду!
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1168
а файл content_{$ctype['name']}_form существует? Если вы сами его создали то нужно добавить в manifest.php
Я вот так вывожу хук:
Код PHP:
  1. $hooks_html = cmsEventsManager::hookAll("content_{$ctype['name']}_item_html", $item);
  2. if ($hooks_html) { echo html_each($hooks_html); } else { echo 'Проблема при загрузке хука.'; }
Редактировалось: 1 раз (Последний: 24 августа 2014 в 08:04)
Дополнения для InstantCMS 2 | Готовый сайт Доска объявлений
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3589
Aryuts:
Почему выполнение некоторых хуков с возвратом данных происходит, а некоторых без возврата
каждый хук имеет свою функцию или задачу и результатом выполнения этой задачи, могут быть возврат данных или true/false или ничего. В случае, если нам надо просто внести изменения в базе данных, то достаточно выполнить хук и забыть о его существовании. В случае, когда у нас есть часть данных и нам нужно их обработать определённым методом или способом, тогда хук возвращает результат своих действий для дальнейшей работы.

Aryuts:
почему индивидуальный хук для для каждого вида контента имеется (2 строка), а общего нет
у каждого типа контента свой набор таблиц в базе данных. Чтобы вносить изменения или получать данные для конкретного типа контента, а не для всех сразу.
Посетитель
small user social cms
Медаль
Сообщений: 150
Evanescence:
а файл content_{$ctype['name']}_form существует? Если вы сами его создали то нужно добавить в manifest.php
Спасибо за ответ, но это все понятно. Я привел хуки, которые создали авторы в контенте.

Loadырь:
каждый хук имеет свою функцию или задачу ...
Тут я в целом с Вами согласен, но ведь могут быть задачи, где вернуть данные все же потребуется, тем более, что метод cmsEventsManager::hook по сути данные возвращает.

Loadырь:
Чтобы вносить изменения или получать данные для конкретного типа контента, а не для всех сразу.
Да, но вот только в общем хуке обработать данные для каждого вида контента можно, а в данном случае придется дублировать одни и теже действия в каждом хуке. Кроме того, если пользователь создаст новый вид контента (в админке), то ему придется вручную создать ("ковырятся" в коде) еще один хук для своего контента, чтобы с его контентом проводились аналогичные действия.
Хотите сказать спасибо, просто увеличьте карму!
Делай добро и бросай его в воду!
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.