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

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 X8.10.29
  • Доработаны класс для управления навигацией и плагин универсального меню:
    • Расширен список доступных условий:
      • В том числе условие IS_HAS_NUMBER>номер??истина::ложь позволяет задать особое оформление для элемента списка с номером выше указанного значения
    • Расширена область действия некоторых условий:
      • В том числе условие IS_PLUGINPARAM_имя_значение??истина::ложь теперь можно использовать до и после списка, а нетолько при оформлении элементов списка (спасибо Новый стандарт)

Zion WebEngine Классы Меню/Списки/Навигация Плагины Условия

Zion WebEngine X8.10.26
  • Доработан класс для управления галереями:
    • Реализована возможность удалить сразу все слайды из нужной галереи:
      • Также при наличии доступа к файл-менеджеру можно удалить все слайды вместе с файлами изображений:
        • Если эти файлы используются в других слайдах любых других галерей, то эти слайды также будут удалены автоматически
    • Устранён недочёт при массовом добавление изображений в галерею:
      • При включенной опции "Не дублировать, если уже добавлено" слайды не добавлялись, если соответствующие изображения уже использовались в других галереях
  • Доработаны некоторые JS-скрипты
  • Доработан класс для управления пользователями (спасибо Новый стандарт):
    • Реализован плагин для отображения имени активного или конкретно указанного пользователя

Zion WebEngine Zion Gallery Галереи/Слайды Доступы/Пользователи Классы Плагины Файл-менеджер Файлы/Папки

Zion WebEngine X8.10.24
  • Доработан класс для управления пользователями (спасибо Новый стандарт):
    • Реализована возможность после обработки формы для пользователей запустить дополнительный обработчик

Zion WebEngine Доступы/Пользователи Классы Обработчики Формы для пользователей

Zion WebEngine X8.10.22
  • Доработан класс для управления файлами и папками (спасибо Новый стандарт):
    • Упрощено управление файлами, которые могут быть загружены пользователями

Zion WebEngine Доступы/Пользователи Классы Файлы/Папки

Zion WebEngine X8.10.19
  • Доработаны классы для управления пользователями и вкладками (спасибо Новый стандарт):
    • Реализована возможность автоматически добавлять необходимые вкладки из совместимых с данной функцией классов при правке пользователей
    • Реализована возможность автоматически добавлять необходимые поля в базу данных из совместимых с данной функцией классов при сохранении пользователей

Zion WebEngine База данных/Таблицы данных Вкладки Доступы/Пользователи Классы

Zion WebEngine X8.10.16
  • Доработан класс для управления пользователями (спасибо Color House):
    • Теперь при входе в административный интерфейс и при восстановлении пароля администратора вместо онлайн-консультанта можно перейти на данный Портал поддержки

Zion WebEngine Административный интерфейс Доступы/Пользователи Классы Онлайн-консультант

Zion WebEngine X8.10.15
  • Доработан класс для управления многоязычностью (спасибо Анвизор):
    • Улучшена совместимость с Яндекс.Вебмастер и другими аналогичными сервисами

Zion Multi-Lang Классы Многоязычность/Языки

Zion WebEngine X8.10.11
  • Доработан класс для управления пользователями (спасибо Новый стандарт):
    • Упрощена обработка некоторых свойств в формах для пользователей
  • Доработан элемент "Число":
    • Добавлен новый плагин, позволяющий перед указанным числом добавить необходимое количество нулей

Zion WebEngine Zion Catalog Доступы/Пользователи Классы Плагины Свойства Формы для пользователей Число Элементы

Zion WebEngine X8.10.10
  • Доработан класс для управления файлами и папками (спасибо Новый стандарт):
    • Добавлен новый плагин, который автоматически добавляет к адресу указанного файла временную метку последнего изменения данного файла:
      • Это позволит автоматически очищать кэш для часто изменяемых CSS-, JS- и других файлов
  • Доработан драйвер оболочки:
    • Расширен список символов, доступных для указания в параметрах при обращении к плагинам

Zion WebEngine Драйверы Классы Кэш/Кеш Плагины Файлы/Папки

Zion WebEngine X8.10.09
  • Доработан класс для управления XML-данными (спасибо Moto-Retail-18):
    • При предпросмотре данных для импорта учтено, что этих данных может быть очень много:
      • Устранена вероятность появления ошибки при очень длительной загрузке

Zion Catalog XML/RSS/1С/YML Импорт/Экспорт Классы

Zion WebEngine X8.10.05
  • Доработаны плагин универсального меню и класс для управления навигацией (спасибо Новый стандарт):
    • Теперь некоторые условия доступны для использования даже в тех случаях, когда список пунктов меню пуст
  • Доработан элемент "Основной текст":
    • Доступные для него условия, а также подсказки по их использованию теперь отображаются только при наличии необходимых пакетов

Zion WebEngine Классы Меню/Списки/Навигация Основной текст Плагины Помощники/Мастеры/Инструкции/Подсказки Условия Элементы

Zion WebEngine X8.10.01
  • Доработан класс для управления обменом сообщениями (спасибо Новый стандарт):
    • Реализована обработка недопустимой попытки создать чат с самим собой

Zion Chat Классы Обмен сообщениями/Чат

Zion WebEngine X8.09.28
  • Доработан плагин для отображения контента (спасибо Новый стандарт):
    • Добавлен параметр strip_tags:
      • При любом его непустом значении результат будет выведен без HTML-тегов

Zion WebEngine Контент/Контентные единицы Плагины

Zion WebEngine X8.09.26
  • Доработан плагин универсального меню (спасибо Moto-Retail-18):
    • Устранены проблемы при поиске по записям, у которых хотя бы в одном из полей, доступных для поиска, присутствуют нулевые (пустые) данные

Zion WebEngine Меню/Списки/Навигация Плагины Поиск текста

Zion WebEngine X8.09.24
  • Доработаны элементы "Адрес (URL)" и "Место в структуре" (спасибо Новый стандарт):
    • Устранены проблемы с некорректным отображением адреса веб-страницы с административном интерфейсе
  • Доработан класс для управления импортом из XML (в том числе из 1С) (спасибо Moto-Retail-18):
    • Улучшена отладка ошибок
    • Учтены некоторые особенности экспорта данных из 1С
    • Улучшена обработка спецсимволов

Zion WebEngine Zion Catalog XML/RSS/1С/YML Адрес (URL)/ЧПУ/Переадресация Импорт/Экспорт Классы Место в структуре Элементы

Zion WebEngine X8.09.23
  • Доработан элемент "Выбор одного из вариантов" (спасибо Новый стандарт):
    • Добавлен плагин, который подставляет (например, в меню) необходимую отметку, если для указанной контентной единицы выбран соответствующий вариант

Zion Catalog Выбор одного из вариантов Контент/Контентные единицы Меню/Списки/Навигация Плагины Элементы

Zion WebEngine X8.09.22
  • Доработан класс для управления доступами пользователей к контенту (спасибо Новый стандарт):
    • Оптимизировано выполнение некоторых операций
  • Создан класс, позволяющий применять пользователей в качестве элементов контента:
    • Например, можно указать пользователя, как владельца той или иной записи
  • Доработан класс для управления контентом:
    • Устранена проблема с неудалением записи, открытой в административном интерфейсе
  • Доработан класс для управления пользователями:
    • Реализована возможность обработки свойств указанной конетнтной единицы, указанного типа, при наличии необходимого доступа
  • Доработаны элементы "Галочка" и "Выбор нескольких вариантов":
    • Добавлены плагины, которые подставляют (например, в меню) необходимые отметки, если для указанной контентной единицы отмечена соответствующая галочка или выбраны соответствующие варианты

Zion WebEngine Zion User Control Zion Catalog Административный интерфейс Выбор нескольких вариантов Галочка Доступ Групп пользователей Доступы/Пользователи Классы Контент/Контентные единицы Меню/Списки/Навигация Плагины Свойства Элементы

Zion WebEngine X8.09.21
  • Доработан класс для управления базой данных (спасибо Новый стандарт):
    • Оптимизировано выполнение некоторых операций
  • Доработан класс для управления пользователями:
    • Доработано создание администратора в административном интерфейсе
    • Доработана регистрация пользователей в гостевом интерфейсе

Zion WebEngine PHP Административный интерфейс База данных/Таблицы данных Гостевой интерфейс Доступы/Пользователи Классы

Zion WebEngine X8.09.20
  • Доработан класс для управления базой данных (спасибо Новый стандарт):
    • Повышена совместимость с PHP 7.1

Zion WebEngine PHP База данных/Таблицы данных Классы

Zion WebEngine X8.09.14
  • Доработан класс для управления базой данных (спасибо Новый стандарт):
    • Повышена совместимость с PHP 7.1
  • Доработан плагин универсального меню:
    • Сделаны некоторые исключения для списка сообщений в чате:
      • Иначе организована пагинация:
        • Это связано с тем, что по умолчанию должна открываться последняя подстраница
    • Устранены недочёты при сортировке списка чатов по дате
  • Доработан класс для управления пользователеями:
    • Устранена опечатка в email-сообщении об успешной регистрации на сайте
  • Доработан класс для управления обменом сообщениями:
    • Устранена ошибка при определении названия чата
    • Смайлы теперь обрабатываются не только в списке сообщений выбранного чата, но и в списке чатов:
      • В нём может отображаться по одному последнему сообщению из каждого чата:
        • При этом здесь переносы строк в сообщениях игнорируются

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