Download the PHP package besnovatyj/yii2-cms-blocks without Composer
On this page you can find all versions of the php package besnovatyj/yii2-cms-blocks. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download besnovatyj/yii2-cms-blocks
More information about besnovatyj/yii2-cms-blocks
Files in besnovatyj/yii2-cms-blocks
Package yii2-cms-blocks
Short Description Модуль блоков Yii2 CMS: управляемое из админки содержимое мест, объявленных темой
License MIT
Informations about the package yii2-cms-blocks
besnovatyj/yii2-cms-blocks
Модуль блоков — управляемое из админки содержимое мест, которые объявляет тема (аналог widget areas в WordPress).
Зачем
Тема не может заводить свои CRUD в админке, а вещей вида «объявление над шапкой», «всплывающее окно», «текст в колонке подвала» у неё много. Тема объявляет места, модуль хранит их начинку.
Как это устроено
| Роль | Кто | Что делает |
|---|---|---|
| Место | тема | объявляет его в areas.php и вызывает BlockArea::widget(['area' => '…']) в разметке |
| Каркас | тема | обёртка, кнопки, id для скриптов, всё, что не должно ломаться правкой текста |
| Блок | этот модуль | начинка места: HTML из редактора, статус, окно показа, порядок |
| Заготовка | тема → пикер сниппетов | разметка начинки в стиле темы, с которой удобно начать |
- Каталог мест приходит через контракт
Besnovatyj\Contracts\theme\ThemeAreaCatalog, реализация — в пакете тем (yii2-cms-themes). Пакета тем нет: место задаётся в блоке вручную. - Блоки в месте выводятся подряд по
sort_order; выключенные и вне окна показа пропускаются. Блок в месте, которое активная тема не объявляет, хранится, но не выводится (админка это показывает). - Кэш: все включённые блоки — один элемент кэша на все места с тегом
blocks, сбрасывается при любой правке. Окно показа проверяется на каждый запрос, поэтому наступившая дата не ждёт сброса. - Шорткоды: текстовые (
%name%) разворачиваются при выводе, если подключён модуль шорткодов.
Блоки ≠ шорткоды ≠ сниппеты
- Шорткод — плейсхолдер в контенте, разворачивается в код при рендере (контент → код).
- Место — «дырка» в коде темы, которую заполняет контент из админки (код → контент).
- Сниппет — заготовка разметки, вставляемая в редактор при правке.
Механизмы компонуются: блок набирают со сниппета темы, внутри могут быть текстовые шорткоды.
Вывод в теме
inline => true снимает с начинки обёртку <p>, если блок — один абзац без атрибутов: для мест,
которые встают в строку (копирайт, заголовок).
Объявление мест в теме
themes/{тема}/areas.php:
Установка
modman install Blocks + recompile (+ reload php-fpm на проде).
All versions of yii2-cms-blocks with dependencies
besnovatyj/yii2-cms-contracts Version ^3.0
besnovatyj/yii2-cms-datetime-widgets Version ^1.0
besnovatyj/yii2-cms-editor Version ^1.0
besnovatyj/yii2-cms-forms Version ^1.0
besnovatyj/yii2-cms-kernel Version ^1.2
php Version >=8.4
yiisoft/yii2 Version ~2.0.0
yiisoft/yii2-bootstrap5 Version ~2.0.0