Добавление виджета на сайт

Технология виджетов была придумана для облегчения и упрощения создания сайтов.

Виджет - это блок, который реализует определенную законченную функциональность.

Вся нижеследующая информация актуальна для CeteraCMS v3.21.0 и выше

В PHP:

Все виджеты наследуют базовый класс \Cetera\Widget\Widget

Чтобы получить виджет, следует пользоваться методом \Cetera\Application::getWidget(String <виджет>, Array <параметры виджета>)

Далее, для отображения виджета используются методы \Cetera\Widget\Widget::getHtml() или \Cetera\Widget\Widget::display()

Пример 1. Вывод списка материалов текущего раздела с помощью виджета List:

// получим объект Application
$a = \Cetera\Application::getInstance();
 
// получаем требуемый виджет с заданными параметрами
$w = $a->getWidget(
    // название виджета
    'List', 
    // параметры виджета
    array(
        // раздел — текущий
        'catalog' => $a->getCatalog(),
    ),
);
 
// выводим виджет
$w->display();

 

Пример 2. То же самое, но более кратко, для боевого применения (подразумевается, что $a определена в bootstrap.php):

$a->getWidget('List',array('catalog' => $a->getCatalog()))->display();

 

В Twig:

Можно организовать показ виджета прямо в twig-шаблоне. Для этого необходимо при инициализации Twig подключить парсер виджетов. Как правило, это делается в bootstrap.php:

$twig->addTokenParser( new \Cetera\Twig\TokenParser\Widget() );

Теперь можно использовать тег {% widget %} в шаблонах:

{% widget 'List' with { catalog: application.getCatalog() } %}

 

подразумевается, что в Twig определена глобальная переменная application со значением \Cetera\Application::getInstance()

Шаблоны виджетов

Очевидно, что не всегда html-код, генерируемый виджетом, будет отвечать потребностям конкретного сайта. Поэтому большинство виджетов используют шаблоны, которые отвечают за то, какой html будет генерировать виджет. У разработчика есть возможность изменить этот шаблон под свои нужды. Для того, чтобы использовать свой шаблон вывода, нужно передать в параметре template имя файла с требуемым шаблоном. Шаблоны по умолчанию виджетов в составе ядра cms расположены в каталоге www/cms/widgets


Мы на связи

фото Алены Ратниковой

Алена Ратникова
Отвечаю за всё производство

фото Марии Лебедевой

Мария Лебедева
Занимаюсь новыми клиентами


Cetera Labs

График работы

Понедельник-пятница
9:00-18:00

Телефон

8 (800) 775-52-93