Что такое Плагины?

06.11.2023

Все плагины в CMS Zion WebEngine служат для выполнения каких-либо целей. Это может быть вывод какого-то текста, корректировка базы данных, изменение глобальных переменных и т.д.

Где хранятся плагины

Плагины могут быть самостоятельными программными модулями или могут быть частью классов

  • Каждый самостоятельный плагин хранится в одном из файлов в папке plugins, либо plugins/custom. Если Вы хотите изменить один из таких плагинов или создать новый, то сохраняйте его в папке plugins/custom - так он не будет заменён стандартным плагинов в случае обновления CMS. При совпадении имён в plugins и в plugins/custom наибольший приоритет имеют плагины из папки plugins/custom.
  • Если плагин является частью класса, то найти его можно в файле соответствующего класса. Это будет отдельный метод, имя которого всегда начинается с Plugin и в качестве параметров к которому должен передаваться массив params

Набор доступных плагинов зависит от комплекта поставки

Имена плагинов

  • Если плагин хранится в отдельном файле с имением мойплагин.php то имя плагина будет мойплагин (.php обязательно должно присутствовать в имени файла)
  • Если плагин является частью класса, например, мойкласс, и хранится в методе PluginМойПлагин, то имя плагина будет мойкласс_МойПлагин

К плагинам можно обращаться через команду вызова, через URL-адрес или через AJAX

  1. В самом простом случае команда вызова плагина выглядит так: {plugin:мойплагин} или {plugin:мойкласс_МойПлагин}
  2. При обращении через URL-адрес всё аналогично: /?plugin=мойплагин или /?plugin=мойкласс_МойПлагин (в URL также могут быть указаны другие GET-параматры, как слева, так и справа от того, что указано в примере)
  3. При обращении через AJAX нужно соблюсти следующие условия:
    • В HTML-коде веб-страницы должна присутствовать команда вызова специального плагина AJAX - {plugin:ajax} (если указать её несколько раз, дублирование вызова нужных модулей не произойдёт)
    • Вызов плагина через AJAX должен происходить через вызов ассинхронной JS-функции sendRequest(URL,objectID,getRequest,oldHTML,okProc), где
      • URL - URL-адрес плагина (пример смотрите выше)
      • objectID - ID HTML-тега, в который будет возвращён результат выполнения плагина
      • getRequest - оставляйте этот параметр без изменений
      • oldHTML - этот параметр не обязательный - можно оставить его пустым, но если заполнить его текстом или HTML-кодом, то он будет отображаться в результирующем теге objectID до того, как плагин вернёт результат
      • okProc - этот параметр не обязательный - можно оставить его пустым, но если указать в нём какую-либо JS-функцию, то она будет выполнена после того, как плагин вернёт результат (эта функция не должна принимать параметры)

Результаты выполнения плагинов

Плагины могут возвращать результирующий текст или HTML-код.

  • В самостоятельных плагинах результат присваивается PHP-переменной $echo
  • В плагинах из классов результат возвращается через оператор return(...);

От способа вызова плагина зависит то, где и как будет выводиться его результат:

  1. Если используется команда вызова плагина, то результат отобразится именно там, где была команда (результат заменит собой команду)
  2. Если используется обращение по URL-адресу, то результат выведется в браузере (при этом на веб-странице не будет ничего кроме результата выполнения плагина)
  3. Если используется вызов через AJAX, то результат будет выведен в тег, свойство id которого совпадает с тем, что указано в objectID

Параметры плагинов

Плагинам можно передавать параметры. В результате многие плагины могут выполняться в сотнях и в тысячах различных режимов

  1. Если используется команда вызова плагина, то она может выглядеть, например, так: {plugin:имя_плагина;color:red;type:apple;action:kick}, при этом
    • после имени плагина должна быть точка с запятой;
    • пары имя-значение (имя и значение параметра) отделяются друг от друга точкой с запятой;
    • имя параметра от значения того же параметра отделяется двоеточием:
    • в именах и в значениях параметров не допускается использовать двоеточия: и точки с запятой;
  2. Если используется обращение по URL-адресу, то для того же плагина с теми же параметрами URL будет такой: /?plugin=имя_плагина&params=color:red;type:apple;action:kick}, при этом
    • после имени плагина нужно написать &params=
    • пары имя-значение (имя и значение параметра) также отделяются друг от друга точкой с запятой;
    • имя параметра от значения того же параметра также отделяется двоеточием:
    • в именах и в значениях параметров не допускается использовать двоеточия: и точки с запятой;, а также амперсанд& и равно=
  3. Если используется вызов через AJAX, то к URL применяются те же требования, что и в предыдущем примере

В плагине эти параметры можно использовать, как элементы ассоциативного массива $params. Например, параметры из примеров выше будут доступны, как переменные $params['color']$params['type'] и $params['action'].

Плагины могут воспринимать только те параметры, которые в них запрограммированы. Список доступных параметров смотрите в документации к каждому конкретном плагину


CMS Zion WebEngine является бесплатной системой. Развивается за счёт рекламы, помощи веб-студии #webZion и других спонсоров.

 

Будем рады, если Вы поддержите нас любой суммой, а также поделитесь идеями на счёт каких-либо улучшений и доработок для CMS...

 

Заранее, большое, спасибо

 

Блог обновлений

Zion WebEngine 23.01.13
  • Доработан класс, формирующий YML-файл для интеграции с Яндекс.Маркет (спасибо Moto-Retail18):
    • Устранена проблема при формировании данных об изображениях для товаров
    • Категории без названий теперь не добавляются в YML-файл

Zion Export XML/RSS/1С/YML Изображение Импорт/Экспорт Категории Классы Что такое Классы?

Zion WebEngine 23.01.04
  • Доработаны драйвер оболочкой, элемент HTML-код веб-страницы и классы для управления проектом и шаблонами (спасибо Moto-Retail18):
    • Более корректно реализовано использование свойств проекта

Zion WebEngine Что такое Свойства? HTML-код веб-страницы Драйверы Классы Свойства Шаблоны контента Элементы

Zion WebEngine 23.01.03
  • Для совместимости с новыми стандартами CMS доработаны некоторые компоненты:
    • Элемент HTML-код веб-страницы
    • Классы для управления проектом, пользователями, шаблонами, рассылками и интеграцией с CRM Intrum
    • Мониторы MySQLi и ядра
    • Обработчики обратной связи, обратного звонка
    • Настраиваемые модули для управления реакциями на заказ, в том числе для уведомления на системный email и для выставления накладной
    • Настраиваемые модули для управления доставкой, в том числе через СДЭК
    • Плагин Meta

Zion WebEngine Zion Catalog Zion Mail Back Zion SEO Booster Zion xDelivery Zion Import Zion Sender Email-сообщения HTML-код веб-страницы SEO-параметры База данных/Таблицы данных Доступы/Пользователи Классы Мониторинг Настраиваемые модули Обработчики Обратная связь/Обратный звонок Плагины Рассылки Реакции на заказ Способы доставки/самовывоза Шаблоны контента Элементы Элемент "HTML-код веб-страницы"

Zion WebEngine 22.12.29
  • Доработан класс для управления импортом из CRM Intrum (спасибо Good Авто):
    • Снижен объём данных, пересылаемых от CRM в CMS
    • Устранены проблемы с импортом некоторых данных, связанные с изменениями в API

Zion Import Что такое CMS Zion WebEngine? Импорт/Экспорт Классы

Zion WebEngine 22.12.28
  • Доработан класс для управления импортом из CRM Intrum (спасибо Good Авто):
    • Теперь данные, которые не требуется публиковать на сайте, автоматически удаляются при импорте, а не добавляются скрытыми (для новых записей) и не скрываются (для уже существующих записей):
      • Это снижает нагрузку на базу данных и уменьшает её объём
      • Ведутся боевые испытания

Zion Import Адрес (URL)/ЧПУ/Переадресация База данных/Таблицы данных Импорт/Экспорт Классы Элемент "Адрес"

Zion WebEngine 22.12.27
  • Доработан элемент Галерея (спасибо ТК Кило):
    • Теперь часть тонкой настройки галерей перенесена из управления доступами для группы пользователей в шаблоны:
      • Также расширен список компонентов, которые можно переименовать для каждой отдельной галереи в каждом отдельном шаблоне

Zion Gallery Галереи/Слайды Доступ Групп пользователей Редактор контента/WYSIWYG-редактор Шаблоны контента Элементы Что такое Шаблон контента?

Zion WebEngine 22.12.26
  • Доработан элемент Галерея (спасибо ТК Кило):
    • Теперь для каждой группы пользователей можно тонко настроить ещё больше параметров:
      • Можно изменить названия/заголовки для различных компонентов слайдов и галерей
      • Можно разрешить/запретить смену редактора контента

Zion Gallery Галереи/Слайды Доступ Групп пользователей Редактор контента/WYSIWYG-редактор Элементы Что такое Элементы?

Zion WebEngine 22.12.16
  • Доработан класс, формирующий YML-файл для интеграции с Яндекс.Маркет (спасибо Moto-Retail18):
    • Устранена проблема, препятствовавшая сохранению контента, если не заполнено поле Название для Яндекс.Маркет:
      • Теперь оно не является обязательным для заполнения

Zion Export XML/RSS/1С/YML Классы Контент/Контентные единицы Что такое Контент?

Zion WebEngine 22.12.15
  • Доработан класс, формирующий YML-файл для интеграции с Яндекс.Маркет (спасибо Moto-Retail18):
    • Реализована возможность одной кнопкой добавить все товары в YML-файл, а другой удалить все товары из YML-файла
    • Теперь, если для товара не заполнено поле Название для Яндекс.Маркет, то используются данные из поля Название на вкладке Основные параметры
    • Дополнен список проверок на корректность указания параметров перед непосредственным формированием YML-файла
    • Устранены некоторые недочёты

Zion Export XML/RSS/1С/YML Вкладки Классы Сайт-каталог Что такое Вкладки?

Zion WebEngine 22.12.14
  • Доработан настраиваемый модуль для управления доставкой через транспортные компании (спасибо КСБ Рус):
    • Устрнанена вероятность возникновения ошибки в административном интерфейсе при поиске системой мониторинга логотипов транспортных компаний, которые необходимо скопировать из репозитория

Zion xDelivery Что такое система Мониторинга? Административный интерфейс Мониторинг Настраиваемые модули Способы доставки/самовывоза

Zion WebEngine 22.12.13
  • Доработаны административные скрипты (спасибо ТК Кило):
    • Устранены проблемы при отображение/скрытии поля Свой вариант при правке элемента Выбор одного из вариантов

Zion WebEngine Выбор одного из вариантов

Zion WebEngine 22.12.09
  • Переработано управление иконками для способов оплаты и доставки, а также для транспортных компаний (спасибо Moto-Retail18):
    • Теперь иконки по умолчанию не заменяют собой иконки, ранее установленные пользователем
    • Иконка по умолчанию копируется в нужное место из созданного в этом обновлении репозитория только, если способ (доставки или оплаты) или (транспортная) компания активна, и при этом для неё не была использована ранее другая иконка

Zion WebEngine Zion Catalog Zion xDelivery Zion xPayment Способы доставки/самовывоза

Zion WebEngine 22.12.01
  • Доработан плагин универсального меню (спасибо Moto-Retail18):
    • Устранена проблема с использованием параметра select со значением all в случаях, когда нужно отобразить список транспортных компаний, например, в форме оформления заказа в интернет-магазине
  • Доработан класс для управления пользователями (спасибо ТК Кило):
    • Приняты меры на случай невозможности отправки письма с данными авторизации только что созданного системного администратора
  • Доработан класс для управления SMS-уведомлениями:
    • Налажено более корректное создание столбцов в случае их отсутствия в таблице данных реакций на заказы

Zion WebEngine Email-сообщения SMS База данных/Таблицы данных Доступы/Пользователи Интернет-магазин Корзина для заказов Меню/Списки/Навигация Плагины Реакции на заказ Способы доставки/самовывоза Формы Плагин Menu

Zion WebEngine 22.11.30
  • Доработан класс для управления обновлениями на стороне сервера:
    • Устранены недочёты с регистрацией в базе данных доменов новых сайтов клиентов

Zion Server База данных/Таблицы данных Веб-сервер/Хостинг Классы Обновления CMS Что такое Классы?

Zion WebEngine 22.11.24
  • Доработаны класс для управления обновлениями на стороне сервера и система мониторинга для сервера обновлений:
    • Реализована новая страница приветствия для пользователей CMS

Zion Server Что такое CMS Zion WebEngine? Веб-сервер/Хостинг Классы Мониторинг Обновления CMS

Zion WebEngine 22.11.19
  • Доработан класс для управления обновлениями на стороне сервера и система мониторинга для сервера обновлений:
    • Устранены некоторые недочёты

Zion Server Что такое система Мониторинга? Веб-сервер/Хостинг Классы Мониторинг Обновления CMS

Zion WebEngine 22.11.18
  • Доработан класс для управления импортом из 1С/XML (спасибо Moto-Retail18):
    • Теперь товары, ссылающиеся на несуществующие (возможно, ранее удалённые) категории, будут автоматически удаляться при импорте:
      • Это касается, как импортируемых в данный момент, так и уже существующих в основной базе данных записей

Zion Import XML/RSS/1С/YML База данных/Таблицы данных Импорт/Экспорт Категории Классы Сайт-каталог Как импортировать данные о товарах из XML

Zion WebEngine 22.11.10
  • Доработан класс для управления местом в структуре (спасибо Moto-Retail18):
    • Устранена вероятность появления ошибки в случаях, когда та или иная запись является подразделом несуществующей в базе данных записи

Zion WebEngine База данных/Таблицы данных Классы Место в структуре Элемент "Место в структуре"

Zion WebEngine 22.11.09
  • Доработан плагин универсального меню (спасибо Moto-Retail18):
    • Для параметра select создан новый вариант all - позволяет отобразить все записи с учётом других параметров фильтрации:
      • Указание параметра factor при этом не требуется, так как он ни на что не влияет
    • Использовать варианта children-all в параметре select для крупных сайтов настоятельно не рекомендуется, т.к. он создаёт очень большую нагрузку на базу данных, например, при поиске по всем подразделам той или иной записи (например, каталога товаров):
      • Если необходимо отобразить все записи (или выполнить поиск по всем записям), которые являются подразделами того или иного надраздела (например, каталога товаров), то лучше использовать не select:children-all, а select:all и указать через запятую в параметре types типы, к которым относятся такие подразделы

Zion WebEngine База данных/Таблицы данных Меню/Списки/Навигация Место в структуре Плагины Поиск текста Сайт-каталог Типы Плагин Menu

Zion WebEngine 22.11.08
  • Доработан класс для управления обновлениями на стороне сервера и система мониторинга для сервера обновлений:
    • Устранены некоторые недочёты

Zion Server Что такое система Мониторинга? Веб-сервер/Хостинг Классы Мониторинг Обновления CMS

Ответы на вопросы

Что такое Меню администратора?

Общая информация о Меню администратора: что это, где его найти и как им пользоваться?

Zion WebEngine Zion UserControl Zion Catalog Zion Mail Back Zion SEO Booster Zion xDelivery Zion Import Zion Gallery Zion xPayment Zion Pub Hub Zion Export Zion JivoSite Zion Chat Zion Multi-Lang Zion Banners Manager Zion Sender Zion Server Email-сообщения SMS SMTP/PHP-mail XML/RSS/1С/YML Валюты Веб-сервер/Хостинг Галереи/Слайды Доступ Групп пользователей Доступы/Пользователи Изображение Импорт/Экспорт Интернет-магазин Категории Корзина для заказов Корзина для мусора Кэш/Кеш Меню/Списки/Навигация Меню администратора Многоязычность/Языки Обновления CMS Обмен сообщениями/Чат Обратная связь/Обратный звонок Онлайн-консультант Политика конфиденциальности Помощники/Мастеры/Инструкции/Подсказки Рассылки Реакции на заказ Сайт-каталог Скидки/Наценки Спам Способы доставки/самовывоза Способы оплаты Файлы/Папки ФЗ-152 Формы Шаблоны контента Эскизы

Что такое Тип контента?

Общая информация о Типах контента: что это, для чего они нужны, и как их использовать

Zion WebEngine Zion Catalog Zion Pub Hub Меню/Списки/Навигация Типы

Как редактировать Контент?

Как управлять страницами, редактируемыми полями, новостями, статьями, товарами, аксессуарами и другими контентными единицами?

Zion UserControl Zion Catalog Zion Pub Hub Адрес (URL)/ЧПУ/Переадресация Кэш/Кеш Меню/Списки/Навигация Помощники/Мастеры/Инструкции/Подсказки Фильтрация Шаблоны контента

Как настроить сайт?

Zion WebEngine 26 - CMS без абонентской платы

Что такое Комплект поставки?

Общая информация о Комплекте поставки: что это, где его посмотреть и как можно расширить?

Настраиваемые модули

Что такое Вкладки?

Общая информация о Вкладках: что это, для чего они нужны, и как их использовать

Zion WebEngine Zion Catalog Zion Gallery Zion Pub Hub Вкладки

Что такое Шаблон контента?

Общая информация о Шаблонах контента: что это, для чего они нужны, и как их использовать

Zion WebEngine Шаблоны контента

Как подтвердить права на сайт в поисковой системе?

Как подтвердить права на сайт в Яндекс.Вебмастере, Google Search Console, Кабинете вебмастера Mail.Ru, Bing - Webmaster Tools и других аналогичных сервисах

SEO-параметры