Что за хук: content_{$ctype['name']}_item_html

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 25 февраля 2016 в 15:00
  1. $hooks_html = cmsEventsManager::hookAll("content_{$ctype['name']}_item_html", $item);
  2. if ($hooks_html) { echo html_each($hooks_html); }
Вызывается в /templates/default/content/default_item.tpl.php
При попытке подключить такой хук (даже без действий в хуке) на страницу выводится чистая без шаблона страница с тестом записи материала.

Как его можно использовать?

и еще вопрос: чем отличается вызов hook от hookAll, например такой:
  1. $html = cmsEventsManager::hook("photos_item_html", $photo, false);
  2. if ($html) { echo $html; }
#2 25 февраля 2016 в 15:06

При попытке подключить такой хук (даже без действий в хуке) на страницу выводится чистая без шаблона страница с тестом записи материала.

kreator
Значит ваш хук сделан неверно, вероятно отдает не то, что должен.

и еще вопрос: чем отличается вызов hook от hookAll, например такой:

kreator
docs.instantcms.ru/dev/controllers/hooks
#3 25 февраля 2016 в 15:13
Вызов:
  1. $hooks_html = cmsEventsManager::hookAll("content_{$ctype['name']}_item_html", $item);
  2. if ($hooks_html) { echo html_each($hooks_html); }
Хук:
  1. <?php
  2.  
  3. class onContent{$ctype['name']}ItemHtml extends cmsAction {
  4.  
  5. public function run($item) {
  6.  
  7. return $item;
  8.  
  9. }
  10.  
  11. }
естесственно, что вместо {$ctype['name']} подставлено имя типа контента

что тут не так? что получили — то и вернули

и почему этот хук в данном случае вызван именно в шаблоне а не в экшене контроллера
#4 25 февраля 2016 в 15:16

что тут не так?

kreator
данный хук должен отдавать строку, т.е. тип string. Например html код. Вы же отдаете массив.

и почему этот хук в данном случае вызван именно в шаблоне а не в экшене контроллера

kreator
Потому что нужно было поставить этот хук здесь. Немного странный вопрос)
#5 25 февраля 2016 в 15:23
можно хоть малейший пример? хук вообще не реагирует, при вызове хука выводятся все поля записи в чистом виде на чистом экране без шаблона, чтобы в файле хука не писалось. Даже если создать пустой файл с названием хука. Никакой реакции.
#6 25 февраля 2016 в 15:26
  1. class onВашконтроллерContentТипконтентаItemHtml extends cmsAction {
  2.  
  3. public function run($item) {
  4.  
  5. return 'Мой хук';
  6.  
  7. }
  8.  
  9. }
В манифесте добавить content_типконтента_item_html
#7 25 февраля 2016 в 15:41
  1. onВашконтроллерContentТипконтентаItemHtml
ну точно… контроллер то я не указал.
спасибо.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.