Список и описание хуков

Хуки - это места в ядре движка, куда можно подключать плагины для расширения функционала.
Подключение происходит путем include() , что позволяет использовать все переменные движка, определенные ранее.

Лучший способ понять, для чего предназначен хук - смотреть в код ядра.
Ниже приведен список всех используемых в движке хуков. Основано на http://neocrome.net/page.php?id=2094 , этот список исправлен и дополнен.

#1. header (файл system/header.php, шаблон header.tpl)

header.first Хук в самом начале кода, до каких-либо действий.
header.main Хук перед определением тэгов и выбора файла скина
header.tags Хук после определения тэгов - применяется для создания своих тэгов для header.tpl в зоне MAIN

#2. footer (файл system/footer.php, шаблон footer.tpl)

footer.first Хук в самом начале кода, до каких-либо действий.
footer.main Хук перед определением тэгов и выбора файла скина
footer.tags Хук после определения тэгов - применяется для создания своих тэгов для footer.tpl в зоне MAIN

#3. admin (файл system/core/admin/admin.inc.php, шаблон admin.tpl)

admin.main Начало файла, пройдена проверка, что данный юзер - админ.
admin.tags После определения тэгов - применяется для создания своих тэгов в админке admin.tpl в зоне MAIN
admin.home Местонахождение - admin.home.inc.php . Применяется для добавления контента на главную страницу админки (admin.php)

#4. admin.rights (файл system\core\admin\admin.rights.inc.php)

admin.rights.main
admin.rights.end

#5. admin.rightsbyitem (new in v110)

admin.rightsbyitem.case

#6. comments (файл system/functions.php , функция sed_build_comments(). Шаблон comments.tpl)


comments.send.first Новый коммент принят через POST, но еще не занесен в mysql. Текст коммента в переменной $rtext
comments.send.new Новый коммент проверен на валидность и занесен в mysql. Хук может быть использован для плагинов типа "уведомлений о приходе нового коммента"
comments.main Хук перед началом вывода всех комментов к странице
comments.newcomment.tags Сформированы тэги для отображения формы добавления нового коммента. Хук приеняется для добавления своих тэгов в зоне COMMENTS_NEWCOMMENT шаблона.
comments.loop Сформированы тэги COMMENTS_ROW_XXX для отображения коммента (одного из). Хук приеняется для добавления своих тэгов в зоне COMMENTS_ROW шаблона.
comments.tags Сформированы все тэги ленты комментов и отпарсены все внутренние зоны. Хук может применяться для добавления своих тэгов глобального свойства, для всей ленты комментов.

#7. forums.posts (файл system/core/forums/forums.posts.inc.php, шаблон forums.posts.tpl)

forums.posts.first Хук в начале кода
forums.posts.newpost.first Постинг нового поста на форум - до приема текста поста и исполнения sql
forums.posts.newpost.done Постинг нового поста на форум - после добавления данных в mysql
forums.posts.delete.first Удаление поста - начало
forums.posts.delete.done Удаление поста - после выполнения sql
forums.posts.emptytopicdel
forums.posts.main Хук после основного функционала - перед определением тэгов
forums.posts.loop Хук после определения тэгов одного из постов в списке. Применяется для создания своих тэгов в зоне FORUMS_POSTS_ROW шаблона
forums.posts.tags Хук после определения всх тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона


#8. forums.editpost

forums.editpost.first
forums.editpost.update.first
forums.editpost.update.done
forums.editpost.main
forums.editpost.tags

#9. forums.topics

forums.topics.first
forums.topics.main
forums.topics.tags
forums.topics.loop

#10. forums.newtopic.inc

forums.newtopic.first
forums.newtopic.newtopic.first
forums.newtopic.newtopic.done
forums.newtopic.main
forums.newtopic.tags

#11. forums.sections

forums.sections.first
forums.sections.main
forums.sections.tags
forums.sections.loop

#12. index (файл system/core/index/index.inc.php , шаблон index.tpl)

index.first Хук в самом начале кода
index.main Хук в середине кода. Непонятно, зачем он нужен, видимо, добавлен по аналогии с pages.
index.tags Хук для определения своих тэгов.

#13. list (файл system/core/list/list.inc.php, шаблон list.tpl)

list.first Хук в самом начале кода
list.main Хук до начала формирования вывода
list.loop Сформированы тэги одной страницы из списка. Применяется для создания своих тэгов для list.tpl в зоне LIST_ROW
list.tags Сформированы тэги для всего list. Применяется для создания своих тэгов для list.tpl в зоне MAIN

#14. message (файл system/core/message/message.inc.php, шаблон message.tpl)

message.first Начало кода, определены код, тайтл и тело выводимого сообщения
message.main Хук перед началом формирования вывода
message.tags Хук после определения тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона

#15. page (файл system/core/page/page.inc.php, шаблон page.tpl)

page.first Хук в начале кода, после приема (GET) переменных
page.main Хук до определения тэгов
page.tags Хук после определения тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона

#16. page.add (файл system/core/page/page.add.inc.php, шаблон page.add.tpl)

page.add.first Хук в начале кода
page.add.add.first Хук в начале участка кода, ответственного за прием POST-данных (добавление контента)
page.add.add.done Хук после занесения данных о новой страницы в mysql. Может использоваться для уведомлений о добавленном контенте
page.add.main Хук до определения тэгов добавления новой страницы
page.add.tags Хук после определения тэгов добавления новой страницы. Применяется для создания своих тэгов в зоне MAIN шаблона

#17. page.edit (файл system/core/page/page.edit.inc.php, шаблон page.edit.tpl)

page.edit.first Хук в начале кода
page.edit.update.first Хук в начале участка кода, ответственного за прием POST-данных (редактирование контента)
page.edit.update.done Хук после занесения данных в mysql. Может использоваться для уведомлений о модифицированном контенте
page.edit.main Хук до определения тэгов добавления новой страницы
page.edit.tags Хук после определения тэгов редактирования страницы. Применяется для создания своих тэгов в зоне MAIN шаблона

#18. pfs (файл system/core/pfs/pfs.inc.php, шаблон pfs.tpl)

pfs.first Хук после инициализации переменных
pfs.upload.first Аплоад файлов. Хук перед приемом данных из $_FILES
pfs.upload.moved Аплоад прошел успешно, хук после операции перемещения файла из временной папки в папку datas/users/
pfs.upload.done Хук после занесения данных о принятом файл в mysql

#19. pm (файл system/core/pm/pm.inc.php, шаблон pm.tpl)

Отображение личных сообщений
pm.first Хук в начале кода
pm.main Хук перед определением тэгов шаблона
pm.loop Сформированы тэги для обного pm из списка. Применяется для создания своих тэгов в зоне PM_ROW
pm.tags Сформированы тэги для всего pm. Приеняется для создания своих тэгов в зоне MAIN шаблона

#20. pm.send (файл system/core/pm/pm.send.inc.php, шаблон pm.send.tpl)

pm.send.first Хук в начале кода
pm.send.send.first Отсылка pm: перед приемом POST-данных
pm.send.send.done Отсылка pm состоялось успешно, хук после записи данных в mysql
pm.send.main Хук перед формированием тэгов страницы отправки PM
pm.send.tags Сформированы тэги страницы отправки PM. Применяется для создания своих тэгов в зоне MAIN шаблона

#21. pm.edit (файл system/core/pm/pm.edit.inc.php, шаблон pm.edit.tpl)

pm.edit.first Хук в начале кода

#22. polls (файл system/core/polls/polls.inc.php, шаблон polls.tpl)

polls.first Хук в начале кода
polls.main Хук перед формированим тэгов
polls.tags Хук после формирования тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона

#23. ratings (файл system/functions.php , функция sed_build_ratings(). Шаблон ratings.tpl)

ratings.main Хук до формирования тэгов.
ratings.tags Хук после формирования тэгов. Применяется для создания своих тэгов в зоне RATINGS шаблона
ratings.send.first Отправка значения рейтинга
ratings.send.done Отправка рейтинга страницы состоялось, хук после записи данных в mysql

#24. users.profile (файл system/core/users/users.inc.php, шаблон users.profile.php)

profile.first Хук в начале кода
profile.update.first Апдейт профиля: самое начало
profile.update.avatar Апдейт аватара (файл закачан в папку, но данные в mysql еще не занесены)
profile.update.photo Апдейт фото (файл закачан в папку, но данные в mysql еще не занесены)
profile.update.signature Апдейт подписи (файл закачан в папку, но данные в mysql еще не занесены)
profile.update.done Все данные занесены в mysql
profile.main Хук перед определением тэгов
profile.tags Хук после определения тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона

#25. users.auth (файл system/core/users/users.auth.inc.php, шаблон users.auth.tpl)

users.auth.first Хук в начале кода
users.auth.check Авторизация пользователя - начало
users.auth.check.done Авторизация пользователя - успешно
users.auth.main Хук до определения тэгов
users.auth.tags Хук после определения тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона

#26. users.logout (файл system/core/users/users.logout.php , шаблона нет - происходит редирект на message)

users.logout Хук в начале кода, после хука происходит logout

#27. users.register (файл system/core/users/users.register.inc.php, шаблон users.register.tpl)

users.register.first Хук в начале кода
users.register.add.first Регистрация юзера - начало кода
users.register.add.done Регистрация юзера - успешно, данные занесены в mysql
users.register.main Хук до определения тэгов
users.register.tags Хук после определения тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона

#28. users (файл system/core/users/users.inc.php, шаблон users.tpl)

Вывод списка пользователей
users.first Хук в начале кода
users.main Хук до определения тэгов
users.loop Хук после определения тэгов определенного пользователя. Применяется для создания своих тэгов в зоне USERS_ROW шаблона
users.tags Хук после определения всех тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона

#29. users.details (файл system/core/users/users.details.inc.php, шаблон users.details.tpl)

Отображение данных юзера (без редактирования, доступно для всех пользователей)
users.details.first Хук в начале кода
users.details.main Хук после основного функционала, до определения тэгов
users.details.tags Хук после определения тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона

#30. users.edit (файл system/core/users/users.edit.inc.php, шаблон users.edit.tpl)

users.edit.first Хук в начале кода
users.edit.update.first Редактирование своих данных юзером - начало кода, до приема POST-данных
users.edit.update.done Редактирование своих данных юзером - окончание, данные занесены в mysql
users.edit.main Хук до определения тэгов
users.edit.tags Хук после определения тэгов. Применяется для создания своих тэгов в зоне MAIN шаблона

#31. Другие хуки


global (файл common.php, шаблона нет)
Этот хук подключается самым первым.

output (файл system/functions.php, функция sed_outputfilters(), шаблона нет)
(?) Обеспечивает некую фильтрацию

standalone
Этот хук означает, что плагин существует как отдельный модуль в системе и вызывается как plug.php?e=pluginname

No comments yet
Only registered users can post new comments