Skip to main content

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 - hidden
    • if - если 'true', то элемент по умолчанию отображается, иначе скрыт
  • frameset - управление elearning виджетами
    • id - id виджета, которым будет производиться управление
    • go - команда для управления. Команды перечислены здесь
    • childReset - если выбрано действие reInit, то по умолчанию прогресс сбросится без сброса прогресса у вложенных виджетов. Если передать true в этот параметр, то будет сброшен прогресс и у вложенных виджетов
  • get - выводит значение переменной курса в span теге с помощью Alpine тега x-text
    • var - переменная/путь до переменной (variableName.property1.property2), которую нужно вывести
  • set - шорткод для задания значения переменной. Можно использовать для задания дефолтного значения переменной, так как если переменная установлена, то она не будет переопределена.
    • var - имя переменной
    • value - значение переменной
  • jspanel - управление js панелями курса. Все параметры шорткода взяты из управления jsPanel
  • modal - управление модальными окнами курса. Все параметры шорткода взяты из управления модальными окнами
  • page - открытие страницы курса по id
    • id - id страницы, которую требуется открыть
    • anchor - (опционально) якорная ссылка, к которой нужно перейти на странице
  • page-next и page-previous - переход к предыдущей или следующей странице курса
  • progress-frameset и progress-quiz - вывод прогресса фреймсета и банка вопросов
    • id - id elearning виджета, прогресс которого нужно получить

Для упрощения написания шорткодов в tinymce редактор кода добавлен плагин для генерации шорткодов, подробнее здесь