Начиная с версии 1.0 в бесплатном движке Fapos есть возможность создавать плагины. Скрипты принимающие на себя управление в определенный момент, и, в зависимости от места, определенные данные. Для этого служат, так называемые, хуки. И так, какие же они есть, эти хуки?
Версия 1.0 before_view - передает в плагин полностью сформированную страницу, перед самым выводом на экран. Хорошо юзать данный хук для добавления своих меток.
Версия 1.1.9.6 before_smiles_parse - передает в плагин текст сообщения перед парсингом оного на наличие смайлов. Полезно использовать для добавления своих смайлов или даже бб-кодов.
Версия 1.2 before_print_page - весь текст материала перед какой либо обработкой.
Версия 1.3 before_pather - После инициализации ядра, но до разбора URL. В качестве параметра, принимает пустой массив. Этот хук удобно использовать для перенаправления.
after_pather - После полной отработки системы. Страница сформирована и отдана на вывод. Закончены все манипуляции. После этого хука не происходит ничего, кроме того, что будет в плагине, работающем с данным хуком. В качестве параметра, принимает пустой массив.
before_call_module - URL разобран и мы готовы вызвать модуль и action. На вход хука приходят параметры, полученные из URL. Какой модуль и действие будет вызванно, зависит именно от того, что вернет плагин. В идеале он должен вернуть массив типа:
before_parse_layout - Перед парсингом(подстановка меток) основного шаблона. На вход передается объект, в котором содержится все переменные, которые будут подставляться вместо глобальных меток. На самом деле, это объект модуля, так что он содержить не только данные меток, но и все остальные переменные окружения. На выход, что либо передавать нетнужды, так как все манипуляции будут происходить с объектом, изменения будут сразу же отражены в данном объекте. Вот некоторые свойства объекта:
Ребята, пишите,какие вы хотели бы видеть плагины, что бы я знал где ставить хуки, а не гадать и плодить их миллионами. Список всех доступных хуков есть в доке.
а нельзя сделать плагин без хука и без передачи данных.
я например хотел бы в плагин засунуть свои бб коды и сделать для него метку.
Либо сделать скрипт выведения меню и сделать для него отдельную метку
пока менюху сделал через хук before_view
еще очень интересует как забирать метки и преобразовывать их.
Например верхнее меню мне удобнее сделать по другому, переставить его местами и так далее. Сейчас оно у меня через снипет, но есть желание запихать его в плагин.
Все мое имхо...
------
Не флуди и не да зафлудим будешь!
Ater, ты видимо не совсем понимаешь задачи плагина. Вот, ты хочшь изменить меню, но как ты его изменишь, если плагин его не получит или не получит хоть какие то данные входные для того, что бы знать где он вообще находится и что ему делать? Для тех же бб кодов плагин должен получить текст, который он будет парсить.
я действительно не очень понимаю смысл плагина как на Фапосе в частности так и вообще... У всех понятия идут по разному.
Скажите как называется вот это и как это реализовать:
1) Есть верхнее меню сайта и есть желание его изменить и дополнить. У него есть своя метка [шут ее помнит]
Есть 2 варианта, а)перехватить то что есть каким то образом и преобразовать в то что надо. б) просто тупо написать все по новому на основе того что найдешь по данной метке.
Как реализовать в этом случае.
2) Есть желание добавить свою метку [метка] которая будет выводить нужную мне инфу.
Например кнопочки лайков и репостов, в админке при этом будет страница настроек что и как выводить
как и через что реализовать такое.
Вот собственно 2 варианта того что мне придумывается. как это обозвать и через что реализовать.
Все мое имхо...
------
Не флуди и не да зафлудим будешь!
Ater, ну собственно для второго есть хук. Хоть сейчас такое делай. before_view - позволяет тебе распознать метку на странице и заменить ее на что угодно.
А первое тоже можно плагином, но пока нет хука подходящего.
а, ну терь немного понятно.
первое в принципе меня плагином и без специализированного хука пока устраивает. вот только мне интересно если я сделаю такую же метку как стандартная, какая из них будет корректно работать и не будет ли конфликта?
Все мое имхо...
------
Не флуди и не да зафлудим будешь!
если я сделаю такую же метку как стандартная, какая из них будет корректно работать и не будет ли конфликта
а вот это уже зависит от того в какой точке ты перехватишь рендер. Другими словами, этозависитот положения хука в коде системы. Если он логически перед рендером меню, то сработает твое, а если стандартное меню уже отрендерилось, то и метку ты уже не увидишь)