«Мультихуки» в Cotonti (Seditio)
Seditio.by » Наш блог » CMF Cotonti » «Мультихуки» в Cotonti (Seditio)

Данная статья предназначена для плагин-мэйкеров — тех, кто пишет плагины для CMF Cotonti/Seditio. Если вам часто приходится писать несколько файлов с одинаковым кодом, эта статья для вас, поскольку поддержка мультихуков в Cotonti до настоящего времени являлась недокументированной возможностью.
Сначала определимся с терминологией.
Хук — это некий произвольный код, который выполняется в определенной части основного кода. Другими словами это то, что позволяет расширить функционал движка, не прибегая к его переделыванию, переписыванию (то есть к использованию т.н. хаков).
Мультихук — применение одного и того же кода в разных частях системы.
Большинство плагинов для Котонти работают именно благодаря хукам, которые позволяют реализовать самые невероятные задумки в ваших сайтах.
Однако часто мы сталкиваемся с тем, что один и тот же код нам нужен 2 раза, и, поэтому, пишем соответственно 2 одинаковых файла, в которых немного отличаются заголовочные части (хедеры). На практике это очень неудобно, поскольку приходится каждый раз (например, при обновлении плагина) редактировать оба файла или искать различия в с виду одинаковых файлах. При этом каждый раз возникает мысль: «Ну почему же Котонти не поддерживает мультихук???»
На практике все совсем не так: мультихук все-таки поддерживается. Для начала разберемся с заголовками файлов:
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=indexpolls
Part=main
File=indexpolls
Hooks=index.tags
Tags=index.tpl:{PLUGIN_INDEXPOLLS}
Order=10
[END_SED_EXTPLUGIN]
==================== */Разбираемся с каждой строчкой:
Code — код (совпадает с именем папки, в которой расположен плагин)
Part — часть (весь плагин можно условно разделить на части для того, чтобы в последствии иметь возможность отключать плагин по частям, а не целиком)
Hooks — «хук» (место в котором будет подключен плагин, т.е. где он будет выполняться)
Order — последовательность (по умолчанию 10, необходим при сложном подключении последовательности плагинов для правильного их исполнения)
Tags — тэги (по умолчанию пусто, список тегов, которые использует плагин, и которые необходимы для того, чтобы облегчить простому пользователю работу с системой)
File — файл. Это и есть наша заветная часть! Если вы писали плагин, и в этой части указывали неверное имя файла, при загрузке сайта сразу же появлялись ошибки. Знакомая ситуация, не так ли? Но ведь именно здесь можно указать другой файл.
Итак, рецепт мультихука очень прост: в поле File пишем имя файла, код которого, в данном месте должен быть выполнен, а сам файл оставляем пустым. В итоге все просто, быстро, красиво и удобно!
Комментарии
Похожие страницы
-
Перевод сайта с Seditio на Cotonti: как правильно?
Мигрирование с Seditio на Cotonti — процесс несложный, однако он требует от веб-мастера некоторых усилий
-
Cotonti — дальнейшее развитие и продолжение традиций Seditio
1 февраля 2009 г. сообществом Seditio запущен проект Cotonti, являющийся логическим развитием CMF Seditio
-
Плагин Archives вер. 0.9b для CMS Seditio
Вывод архива статей в стиле Wordpress на главную страницу и подробно в виде отдельного (standalone) плагина
-
Небольшой баг в инсталляторе Seditio 126
Ошибка в файле SQL-запросов для плагина Parser Manager и способ ее устранения
-
Плагин Контакт версии 1.2b для CMS Seditio
Плагин для отправки сообщений с Вашего сайта с записью сообщений в базу данных и админ-панелью