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

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 X7.02.20
  • Реализовано полное взаимодействие с Memcached в следующих классах
    • Класс для управления элементом контента "Категории"
    • Класс для управления контентными единицами (веб-страницами)
    • Класс для управления элементом контента "Дата"
    • Вспомогательный класс для работы с элементами контента
    • Класс для управления элементом контента "Галерея"
      • Также устранена ошибка, в результате которой автоматически создавался пустой слайд
    • Класс для управления элементом контента "HTML-код веб-страницы"
  • Устранена ошибка в классе для работы с базой данных:
    • В случае, когда было необходимо удалить несколько столбцов в таблице, удалялся только один

Zion WebEngine Zion Gallery Zion Pub Hub HTML-код веб-страницы База данных/Таблицы данных Галереи/Слайды Дата/Время/TimeMashine Категории Контент/Контентные единицы Кэш/Кеш Элементы

Zion WebEngine X7.02.18
  • Доработан класс для управления шаблонами веб-страниц:
    • Если в базе данных есть всего один шаблон, то возможность клонирования элементов контента автоматически отключается - это снижает нагрузку на систему и повышает общую производительность
  • Доработан класс для управления элементом контента "Один из вариантов":
    • Устранена вероятность возникновения ошибок при отсутствии вариантов
    • Улучшена сортировка вариантов
  • Доработан класс для управления элементом контента "Многострочное поле с редактором":
    • Устранена вероятность возникновения ошибок при удалении этого элемента из шаблона веб-страницы
  • Доработан класс для управления базой данных:
    • Изменён принцип сохранения данных в базу
    • Улучшена обработка некоторых ошибок при обращении к базе данных
    • Использование некоторых функций стало более эффективным
    • Созданы новые функции, повышающие удобство работы с базой данных
    • Теперь все функции полностью интегрированы с Memcached для более эффективного использования результатов запросов к базе данных
  • Многие элементы контента доработаны для использования новых возможностей кэширования
  • Доработан онлайн-консультант:
    • Реализовано автоматическое обновление кэша при включении или выключении плагина онлайн-консультанта во всех шаблонах веб-страниц
  • Доработан класс для управления элементом контента "Адрес" (URL):
    • Реализовано полное взаимодействие с Memcached

Zion WebEngine Zion Catalog Zion Gallery Zion Pub Hub Zion JivoSite Адрес (URL)/ЧПУ/Переадресация База данных/Таблицы данных Выбор одного из вариантов Классы Контент/Контентные единицы Многострочные поля Онлайн-консультант Шаблоны контента Элементы

Zion WebEngine X7.02.17
  • Сильно переработан класс для работы с базой данных
    • Удалены различные архаизмы
    • Оптимизирована работа многих функций
    • Созданы новые более удобные в использовании функции
    • Налажено очень плотное взаимодействие с Memcached
    • Устранены некоторые недочёты
  • Подкорректирован текст некоторых уведомлений

Zion WebEngine База данных/Таблицы данных Классы Кэш/Кеш Уведомления

Zion WebEngine X7.02.16
  • Сильно переработан класс для работы с базой данных
    • Удалены различные архаизмы
    • Оптимизирована работа многих функций
    • Значительно улучшено взаимодействие с Memcached

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

Zion WebEngine X7.02.15
  • Сильно переработан класс для работы с базой данных
    • Удалены различные архаизмы
    • Оптимизирована работа некоторых функций
    • Улучшено взаимодействие с Memcached

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

Zion WebEngine X7.02.14
  • Доработан класс для работы с базой данных
    • Сделано несколько оптимизаций
    • Внедрена поддержка Memcached для снижения нагрузки на базу данных и более быстрого открытия веб-страниц
    • Начат перевод базы данных на использование Memcached
  • Сделано несколько оптимизаций в главном файле гостевого интерфейса
  • Устранены недочёты в помощнике по вставке плагина универсального меню

Zion WebEngine База данных/Таблицы данных Гостевой интерфейс Классы Кэш/Кеш Меню/Списки/Навигация Плагины Помощники/Мастеры/Инструкции/Подсказки

Zion WebEngine X7.02.10
  • Доработано управление кэшированием
    • Создан инструмент, при запуске которого автоматически обновляется кэш для всех веб-страниц на сайте
    • Данная функция всё ещё остаётся экспериментальной!

Zion WebEngine Кэш/Кеш

Zion WebEngine X7.02.08
  • Реализован огромный прирост в производительности
    • Благодаря новому принципу кэширования, страницы открываются моментально
    • Реализована возможность удалить кэш для каждой веб-страницы прямо из списка веб-страниц в меню администратора
    • Также кэш автоматически удаляется при любом изменении веб-страницы
    • Кэш создаётся автоматически и хранится "вечно"
    • Данная опция пока является экспериментальной, в некоторых случаях применять её не рекомендуется!

Zion WebEngine Кэш/Кеш Меню администратора

Zion WebEngine X7.02.04
  • Доработан драйвер конвертации:
    • Учтено, что результат транслитерации может быть применён для формирования имён файлов - запрещены символы, которые не допускаются в именах файлов (спасибо ЕЦН)
  • Доработан Каталог
    • Создан новый элемент контента "Выбор одного из вариантов"
      • Позволяет задавать список вариантов при правке шаблона веб-страницы
      • Варианты можно перечислять, как через запятую, так и через перенос строки (очень просто и удобно)
      • При редактировании веб-страницы можно не только выбрать один из вариантов, но и добавить новый вариант, который сразу станет доступен для всех веб-страниц с таким же шаблоном
      • Варианты автоматически сортируются по алфавиту, что облегчает быстрый поиск нужного варианта
    • Создан новый элемент контента "Число"
      • При правке шаблона позволяет указать точность числа (количество знаков после запятой)
      • Поддерживает не только вещественные, но и целые числа
      • Реализована проверка корректности указанных данных в поле, как со стороны браузера, так и со стороны сервера

Zion WebEngine Zion Catalog Веб-браузер Веб-сервер/Хостинг Выбор одного из вариантов Драйверы Контент/Контентные единицы Сайт-каталог Файлы/Папки Число Шаблоны контента Элементы

Zion WebEngine X7.02.03
  • Устранена проблема в Галерее (спасибо ЕЦН)
    • Было возможно указание названий только для созданных ранее слайдов
    • Теперь это стало возможно и для новых (только что созданных) слайдов

Zion Gallery Галереи/Слайды

Zion WebEngine X7.01.27
  • Устранена ошибка в плагине автоматической SEO-оптимизации:
    • Вместо данных открытой категории подставлялись данные автоматически определяемой контентной единицы (спасибо АлкоСтоп 59)
  • Доработаны административные скрипты
  • Доработан класс для управления характеристиками товаров
    • Стал доступен выбор необходимых характеристик прямо в шаблоне контентной единицы (например, товара)
    • При выборе характеристики могут быть разделены по группам, выведены в виде полного списка или в виде списка только из выбранных характеристик (по умолчанию)
    • При создании или редактировании характеристики можно сразу же отметить те шаблоны, для которых она должна быть выбрана

Zion WebEngine Zion SEO Booster SEO-параметры Категории Контент/Контентные единицы Плагины Характеристики/Разновидности Шаблоны контента

Zion WebEngine X7.01.25
  • Устранена проблема с отображением уменьшенных копий изображений в Галерее

Zion Gallery Галереи/Слайды Изображение

Zion WebEngine X7.01.24
  • Улучшено отображение дополнительной информации в административном интерфейсе
  • Значительно ускорена загрузка дополнительной информации в административном интерфейсе

Zion WebEngine Административный интерфейс

Zion WebEngine X7.01.20
  • Расширен список вкладок для размещения на них элементов контента
  • Доработано отображение выпадающих списков добавления и клонирования элементов контента:
    • были выявлены случаи, когда списки не помещались целиком (устранено)
  • Доработано клонирование записей с пустыми (нулевыми) значениями
  • Доработан новый элемент контента "Характеристики"
    • будет полезен для товаров в новой платформе
    • его уже можно использовать при редактировании шаблонов
    • работа над ним ещё не завершена

Zion WebEngine Zion Catalog Вкладки Контент/Контентные единицы Платформа Характеристики/Разновидности Шаблоны контента Элементы

Zion WebEngine X7.01.13
  • Доработана автоматическая SEO-оптимизация: учтено, что в качестве SEO-заголовков могут использоваться поля, содержащие HTML-теги - теперь все теги автоматически удаляются
  • Значительно ускорена работа с базой данных за счёт внедрения кеширования: лучше всего прирост производительности заметен при работе в административном интерфейсе. Работаем над ещё большим "разгоном".

Zion WebEngine Zion SEO Booster SEO-параметры Административный интерфейс База данных/Таблицы данных Кэш/Кеш

Zion WebEngine X7.01.04
  • Доработан класс для работы с контентом: устранены некоторые недочёты

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

Zion WebEngine X6.12.30
  • Доработана графическая составляющая интерфейса администратора
  • В меню администратора добавлен новый раздел "Справочники":
    • В нём теперь располагаются подразделы "Шаблоны", "Типы" и "Категории"
    • В разделе "Контент" теперь доступны только контентные единицы, разделённые по типам
  • Доработаны классы для работы с контентом, категориями и HTML-кодом веб-страницы
  • Доработано отображение списка контентных единиц в интерфейсе администратора:
    • Теперь для каждой записи кроме ID и названия в списке отображается выбранный шаблон
  • Продолжен перевод каталога на новую платформу
    • Доработано меню администратора для каталога
    • Создан класс для управления группами характеристик
    • Создан класс для управления характеристиками (работа ещё не завершена)
    • Несколько элементов контента были доработаны для того, чтобы стать доступными для использования в качестве характеристик товаров
  • Устранена вероятность возникновения ошибки при попытке открыть для редактирования несуществующую запись
  • Доработан класс для управления базой данных:
    • Реализована возможность сохранять значения, которые безошибочно воспринимаются сервером базы данных, как NULL (нулевые или пустые)

Zion WebEngine Zion Catalog Zion Gallery Zion Pub Hub HTML-код веб-страницы Административный интерфейс База данных/Таблицы данных Категории Классы Контент/Контентные единицы Меню администратора Платформа Сайт-каталог Типы Характеристики/Разновидности Шаблоны контента Элементы

Zion WebEngine X6.12.29
  • Оптимизированы административные JS-скрипты
  • Реализована возможность сортировки слайдов в галерее
  • Реализовано автоматическое создание отсутствующих эскизов для изображений при просмотре галерей
  • Устранена проблема с невозможностью удалить галерею
  • Повышена скорость работы с базой данных за счёт внедрения кэширования в некоторых функциях
  • Реализована возможность не только вставлять в шаблон новые элементы контента, но и использовать (клонировать) элементы, которые уже добавлены в другие шаблоны
    • Эта возможность применима только для обычных элементов контента (такие элементы можно вставлять в шаблон несколько раз)
    • Уникальные элементы (могут быть использованы в шаблоне только один раз) вставляются по прежней схеме, так как необходимость их клонирования отсутствует

Zion WebEngine Zion Gallery База данных/Таблицы данных Галереи/Слайды Изображение Контент/Контентные единицы Кэш/Кеш Шаблоны контента Элементы Эскизы

Zion WebEngine X6.12.28
  • Доработан редактор контента: стало доступно отключение всех инструментов на панели инструментов, чтобы исключить вероятность искажения HTML-кода, когда это критически важно
  • В нескольких элементах контента доработано автоматическое увеличение высоты редактируемых полей

Zion WebEngine Zion Gallery HTML-код веб-страницы Контент/Контентные единицы Многострочные поля Основной текст Редактор контента/WYSIWYG-редактор Элементы

Zion WebEngine X6.12.27
  • Доработаны административные JS-скрипты
  • Доработан класс для работы с галереями
    • К слайдам можно добавлять однострочные названия
    • К слайдам можно добавлять многострочные описания с полноценным редактором контента (доступно изменение набора инструментов в редакторе)
    • К слайдам можно добавлять ссылки
    • Вместо картинок можно использовать аудио/видео и различные интерактивные модули, например, схемы проезда или любой другой HTML-код
    • Устранены некоторые недочёты
    • Добавлены подсказки по использованию новых свойств слайдов
    • Доработано управление галереями
  • Доработан плагин для отображения галерей
    • Реализовано использование новых свойств слайдов
    • Значительно расширен набор стандартных оформлений для галерей
    • Плагин может использовать переданные в него параметры для формирования команд вызова других плагинов

Zion WebEngine Zion Gallery Галереи/Слайды Классы Плагины Помощники/Мастеры/Инструкции/Подсказки Свойства