Shortcodes
Для работы с оболочкой курса добавлено несколько шорткодов. Все шорткоды основаны на классе Base.php
Base
abstract class Base {
public const TAG = ''; // Тег шорткода
/**
* @var array<string, string>
*/
public const DEFAULT_ATTRS = []; // Массив дефолтных атрибутов. Ключ - имя атрибута, значение - дефолтное значение
public function __construct() {
add_shortcode( static::TAG, $this->callback( ... ) ); // Регистрация шорткода
}
abstract public function callback( array $attrs, string $content, string $tag ): string; // Метод для рендера шорткода. Должен быть определен в дочернем классе
protected function filter_attrs( array $attrs ): array {/*...*/} // Обертка над shortcode_atts функцией, получает дефолтные параметры из константы DEFAULT_ATTRS
Список шорткодов:
condition- управление отображением контента шорткода.name- css класс, по которому будет происходить управление отображением. С помощью Триггера "Скрыть/Показать" или State.js - hiddenif- если'true', то элемент по умолчанию отображается, иначе скрыт
frameset- управление elearning виджетамиid- id виджета, которым будет производиться управлениеgo- команда для управления. Команды перечислены здесьchildReset- если выбрано действиеreInit, то по умолчанию прогресс сбросится без сброса прогресса у вложенных виджетов. Если передатьtrueв этот параметр, то будет сброшен прогресс и у вложенных виджетов
get- выводит значение переменной курса вspanтеге с помощью Alpine тегаx-textvar- переменная/путь до переменной (variableName.property1.property2), которую нужно вывести
set- шорткод для задания значения переменной. Можно использовать для задания дефолтного значения переменной, так как если переменная установлена, то она не будет переопределена.var- имя переменнойvalue- значение переменной
jspanel- управление js панелями курса. Все параметры шорткода взяты из управления jsPanelmodal- управление модальными окнами курса. Все параметры шорткода взяты из управления модальными окнамиpage- открытие страницы курса по idid- id страницы, которую требуется открытьanchor- (опционально) якорная ссылка, к которой нужно перейти на странице
page-nextиpage-previous- переход к предыдущей или следующей странице курсаprogress-framesetиprogress-quiz- вывод прогресса фреймсета и банка вопросовid- id elearning виджета, прогресс которого нужно получить
Для упрощения написания шорткодов в tinymce редактор кода добавлен плагин для генерации шорткодов, подробнее здесь