cotonti.com : Система Hooks. Принцип работы. https://www.cotonti.com Последние сообщения в теме Cotonti en Fri, 28 Nov 2025 02:24:58 -0000 booka чт, 25 мар 2010 05:37:41 -0000 Gunslinger Dayver
Да внимательно я читаю :) Смотри сюда Меня интересуют такие ответы, а не парафраз в общем контексте другого вопроса. Дополнительные пояснения в той же теме.]]>
сб, 30 янв 2010 06:50:19 -0000
Dayver # Gunslinger : esclkm
3. Если можно, то немного подробнее о порядке выполнения кода из разных плагинов по одному хуку. Как именно задается очередность выполнения плагинов и каковы ограничения относительно таких очередностей?
Ох что то мне подсказывает вы не внимательно читаете ответы форумчан
# Sergey : .....Однако, плагинов к одной части может быть подключено много, для этого массив $extp, предварительно, сортируется по порядку Order и имени для одинаковых порядков. Исполняются вначале самые меньшие значения. Далее, ответ на мое утверждение "вам еще пока не "по зубам" работать с PHP" следует вызов этого плагина. Фактически оператор include_once (единожды) загружает файл с кодом PHP. Имя и где его искать берутся как раз берутся из условий в массиве $extp и установок всего ресурса в целом ($cfg['plugins_dir']). Условия загрузки формируются при установке плагина, обработкой специальной части плагина Setup...
# Gunslinger : esclkm
4. Возможно так же покажется глупостью, но все же просьба прокоментировать. Возможно ли в некий узловой плагин вставить используя механизм хуков такие же точки расширения как в глобальных модулях? Для более гибкого подключения к одному плагину нескольких других, сходных по функционалу или области применения.
Ответ на этот вопрос в той ветке форума тоже можна прочесть ... времени нет искать точную цитату потому коротко повторю - Да любой плагин может содержать в себе хуки и все будет работать так же как и с хуками в модулях]]>
сб, 30 янв 2010 03:52:49 -0000
Gunslinger esclkm, ок. Момент подгрузки модулем файлов с хуком ясен. Спасибо.

Теперь ряд следующих вопросов (по ним хотелось бы максимально подробное пояснение):

1. Чем ограничивается область действия хука в тексте основного модуля? Или же сам хук является просто точкой входа и функционал из подгружаемых модулей так сказать "вставляется" в текст основного модуля между хуком и следующей строчкой основного кода?

2. Возможно ли (может это и глупость, но все-таки) с использованием хуков передавать данные из запроса в основном модуле плагину? (многие плагины, например для форума, повторяют в своем тексте запрос к той же таблице что и основной модуль, разница только в наборе полей)

3. Если можно, то немного подробнее о порядке выполнения кода из разных плагинов по одному хуку. Как именно задается очередность выполнения плагинов и каковы ограничения относительно таких очередностей?

4. Возможно так же покажется глупостью, но все же просьба прокоментировать. Возможно ли в некий узловой плагин вставить используя механизм хуков такие же точки расширения как в глобальных модулях? Для более гибкого подключения к одному плагину нескольких других, сходных по функционалу или области применения.]]>
сб, 30 янв 2010 03:27:35 -0000
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'); } }
	/* ===== */
это и есть место включения хука. первая строка читает все плагины - у которых в свойствах указан хук с данным именем в данном случае forums.posts.newpost.first
последующие строки подключают все файлы с данным хуком.
про описания в файле плагина верхних строк писалось тут http://www.seditio.by/page.php?al=cotonti_multihooks

то есть в данном месте - пошагово проинклюдились все файлы. Сответственно чтобы грамотно сделать надо смотреть код файла к которому мы подключаем - тогда знаем чем мы можем варьировать в этой ситуации

исключения среди хуков: standalone, tools, ajax

что не понятно поямнил задавай вопросы.]]>
сб, 30 янв 2010 00:36:56 -0000
Gunslinger
П.С.
Просьба не отфутболивать в режим поиска. Юзал и неоднократно. Раз поднимаю тему снова, значит удобоваримого пояснения для себя не нашол.]]>
пт, 29 янв 2010 21:59:16 -0000