Добро пожаловать на сайт SEDBY

Определяем состояние расширения (плагина или модуля) в Cotonti Siena

Популярные запросы: тема Omnis, плагин Pagelist, Cotonti 0.9.25, ЧПУ, Font Face

  • 123 просмотра
  • 19 февраля, 2025
  • Обновлено: 3 марта, 2025
  • admin
  • Время чтения: 2 минуты
  • 1 (Подробно)

Довольно часто разработчику проекта на Котонти необходимо определить доступность того или иного расширения – плагина или модуля. Мы говорим прежде всего о том, установлено оно или нет.

Для чего необходима проверка на установку расширения?

Допустим, в проекте предполагается выводить блоки, которые генерит некое расширение. Это могут быть, например, виджеты, создаваемые плагином Pagelist или аналогичным ему. Для этого в шаблоне вы разместите примерно следующий код:

<div class="widget news">
  <span class="title">Последние новости</span>
  {PHP|sedby_pagelist('pagelist.news', 2, 'page_date DESC', 'page_cat = "news"')}
</div>

Предположим, что расширение вы отключили или поставили на паузу. Шаблонизатор все равно выведет вашу разметку, но функция будет недоступна. Так что вместо блока новостей посетитель сайта увидит лишь имя функции с параметрами. Кроме этого, с деактивацией плагина могут стать недоступными языковые или ресурсные строки или иные элементы. В результате клиент увидит совершенно неприглядную картину.

Как проверить доступность расширения?

Изначально (или, если хотите, исторически) в нашем распоряжении было два массива:

  • $cot_plugins_active
  • $cot_modules

, в которых размещались коды плагинов и модулей соответственно. Как видим, логики в именах немного. По этой и нескольким другим причинам, данный механизм получил статус deprecated и какое-то время оставался доступным. А использовались эти массивы, например в TPL-шаблоне, следующим образом:

<!-- IF {PHP.cot_plugins_active.comments} -->
...
<!-- ENDIF -->

В новой редакции Cotonti Siena 0.9.26 массив $cot_plugins_active удален, а в распоряжении разработчика теперь две функции:

  • cot_plugin_active()
  • cot_module_active()

С именами теперь все нормально, и ошибиться с ними будет уже сложно. В качестве единственного параметра каждая из функций принимает код расширения:

<!-- IF {PHP|cot_plugin_active(‘pagelist’)} -->
<div class="widget news">
  <span class="title">Последние новости</span>
  {PHP|sedby_pagelist('pagelist.news', 2, 'page_date DESC', 'page_cat = "news"')}
</div>
<!-- ENDIF -->

При обновлении до текущего среза из репозитория Cotonti не забудьте проверить и обновить условия в TPL-шаблонах своих тем. Лучше всего изменить условия как для плагинов, так и для модулей, поскольку массив $cot_modules также запланирован для удаления.

В предыдущей публикации мы выясняли какие виды кэша существуют в движке Cotonti Siena.

Комментарии:
Комментарии отсутствуют

Новый комментарий

Ваш комментарий будет доступен для редактирования 10 минут
Блок пользователя
Регистрация на нашем сайте позволит вам общаться на форумах и получить доступ к другому полезному функционалу
Вы вошли как Гость