Ставим хук внутри шаблона.

Появилась возможность устанавливать хуки прямо внутри шаблона — trac.lsdev.ru/livestreet/changeset/848
Делается это за счет плагина к Smarty hook, например:
{hook run='body_begin'}
вызовет хуки повешенные на событие 'template_body_begin'(обратите внимание, что приставка template_ добавляется автоматически, если хук вызван из шаблона), а их результат в виде строки вернется в шаблон.

Предлагаю определиться какие нужны стандартные хуки? Сейчас добавлено только два: body_begin и body_end, соответственно вызываются в начале HTML тега BODY и в конце.

14 комментариев

avatar
Отлично!

comments_top — верх листа комментов
comments_bottom — низ листа комментов

comments_form_top — верх формы добавления комментария
comments_form_bottom — низ формы добавления коммента

topics_top — верх топика
topics_bottom — низ топика

+ хук для подключения JS и CSS. К примеру через плагин какой-то нужно подлючить свой JS.
  • _et
  • +3
avatar
раз пошла такая пьянка, то и для сайдбара тоже и скорее всего, для навигации тоже. нужно подумать
avatar
хук для подключения JS и CSS. К примеру через плагин какой-то нужно подлючить свой JS.
Есть и давно: livestreet.ru/blog/dev_livestreet/2826.html
avatar
можешь аргументировать?
avatar
Через такие хуки можно будет цеплять вывод чего угодно на страницах.
Например цеплять капчу, баннеры, доп. поля, нотисы, различные уведомления и т.д…
avatar
о, да! — хук для подключения JS и CSS — очень нужная вещь.
  • k2fl
  • 0
avatar
Нужен хук на элементы основного меню (Блоги Люди О проекте).
  • gran
  • +1
avatar
Стоит добавить еще в menu.topic_action.tpl после трех — типов топиков вызов хука, например, {hook run='topic_action_menu'}
Тогда разработчики плагинов, добавляющих свой тип топика, будут более счастливы :)
  • kks
  • +1
avatar
* после трех li
avatar
Хук на html_head_begin. Логично было бы добавить хук на html_head_end
avatar
Выше было упоминание о добавлении хука «topic_action_menu» — можно будет добавлять свои кнопки в меню создания топика. А как насчёт вывода этих самых топиков? То есть, нужны хуки в topic_list.tpl внутри цикла foreach.
avatar
Еще не хватает наверно хука в header_top.tpl в месте меню юзера.
К примеру, сейчас вышел плагин биллинга и заданий, и в нем как раз вывод баланса юзера в этом меню. И получаются дубли файла header_top.tpl в плагинах.

Еще заметил, что нету хуков в месте вывода самого контента. Т.е. в header.tpl где
{include file='system_message.tpl'}
вот ниже него

и в footer.tpl, выше
</div>
<!-- /Content -->

типо
{hook run='content_begin'}
{hook run='content_end'}

Зачем нужно? Ну, к примеру для вывода кратких новостей из плагина short news, если такой был бы))

ps/ если лишнее, извиняйте)
  • _et
  • 0
avatar
Прошу прощения, возможно, за глупый вопрос, но никак не могу найти код самих хуков… Например в файле header_top.tpl есть вывод списка меню примерно такого содержания (строки № ~20-30):

<ul class="nav-main">
	<li {if $sMenuHeadItemSelect=='blog'}class="active"{/if}><a href="{router page='blog'}">{$aLang.blogs}</a></li>
	<li {if $sMenuHeadItemSelect=='people'}class="active"{/if}><a href="{router page='people'}">{$aLang.people}</a></li>
	{hook run='main_menu'}
</ul>

Никак не могу понять, где есть код хука этого {hook run='main_menu'}… Понял, что он подцепляет что-то типа menu.$sMenuHeadItemSelect.tpl из корня шаблона в папке skin…

Не подскажете, где найти код этого хука?
avatar
хуки сами ничего не делают, все действия выполняют обработчики, которые на них вешаются
за подробной информацией в этот блог — livestreet.ru/blog/dev_documentation/
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.