Gunslinger |
|
---|---|
Прочитал соответствующие статьи по плагиностроению в разделе документации, но так до конца и не понял, как именно коректно использовать эту систему при написании плагина. Может ли кто-то четко, понятно для простого смертного и пошагово (желательно на примере) пояснить каким образом работает хук и как к нему грамотно "пристроиться" с плагином? Буду крайне признателен за помощь. И, думаю, что не я один.
П.С. Просьба не отфутболивать в режим поиска. Юзал и неоднократно. Раз поднимаю тему снова, значит удобоваримого пояснения для себя не нашол. |
esclkm |
|
---|---|
я, знаешь обычно коронтко и коряво. но попытаюсь пояснить
ты раз смотрел хаки ядра то видел, что есть довольно подобные строки кода.
/* === Hook === */
$extp = sed_getextplugins('forums.posts.newpost.first');
if (is_array($extp))
{ foreach($extp as $k => $pl) { include_once($cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php'); } }
/* ===== */
последующие строки подключают все файлы с данным хуком. про описания в файле плагина верхних строк писалось тут http://www.seditio.by/page.php?al=cotonti_multihooks то есть в данном месте - пошагово проинклюдились все файлы. Сответственно чтобы грамотно сделать надо смотреть код файла к которому мы подключаем - тогда знаем чем мы можем варьировать в этой ситуации исключения среди хуков: standalone, tools, ajax что не понятно поямнил задавай вопросы. littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты |
Gunslinger |
|
---|---|
esclkm, ок. Момент подгрузки модулем файлов с хуком ясен. Спасибо.
Теперь ряд следующих вопросов (по ним хотелось бы максимально подробное пояснение): 1. Чем ограничивается область действия хука в тексте основного модуля? Или же сам хук является просто точкой входа и функционал из подгружаемых модулей так сказать "вставляется" в текст основного модуля между хуком и следующей строчкой основного кода? 2. Возможно ли (может это и глупость, но все-таки) с использованием хуков передавать данные из запроса в основном модуле плагину? (многие плагины, например для форума, повторяют в своем тексте запрос к той же таблице что и основной модуль, разница только в наборе полей) 3. Если можно, то немного подробнее о порядке выполнения кода из разных плагинов по одному хуку. Как именно задается очередность выполнения плагинов и каковы ограничения относительно таких очередностей? 4. Возможно так же покажется глупостью, но все же просьба прокоментировать. Возможно ли в некий узловой плагин вставить используя механизм хуков такие же точки расширения как в глобальных модулях? Для более гибкого подключения к одному плагину нескольких других, сходных по функционалу или области применения. |
|
Dit bericht is bewerkt door Gunslinger (2010-01-30 03:37, 14 jaren ago) |
Dayver |
|
---|---|
# Gunslinger : esclkmОх что то мне подсказывает вы не внимательно читаете ответы форумчан # Sergey : .....Однако, плагинов к одной части может быть подключено много, для этого массив $extp, предварительно, сортируется по порядку Order и имени для одинаковых порядков. Исполняются вначале самые меньшие значения. Далее, ответ на мое утверждение "вам еще пока не "по зубам" работать с PHP" следует вызов этого плагина. Фактически оператор include_once (единожды) загружает файл с кодом PHP. Имя и где его искать берутся как раз берутся из условий в массиве $extp и установок всего ресурса в целом ($cfg['plugins_dir']). Условия загрузки формируются при установке плагина, обработкой специальной части плагина Setup... # Gunslinger : esclkmОтвет на этот вопрос в той ветке форума тоже можна прочесть ... времени нет искать точную цитату потому коротко повторю - Да любой плагин может содержать в себе хуки и все будет работать так же как и с хуками в модулях Pavlo Tkachenko aka Dayver
|
Gunslinger |
|
---|---|
Dayver
Да внимательно я читаю Смотри сюда Меня интересуют такие ответы, а не парафраз в общем контексте другого вопроса. Дополнительные пояснения в той же теме. |
booka |
|
---|---|
какая разница между хуками header.main и header.tags? header.main только в <head> </head> отрабатывает, а header.tags куда угодно в header.tpl, но только после <body> ???
booka
|