Skip to content

Кнопка ​

Целая кнопка в одном поле: не только подпись, а всё, что нужно, чтобы её нарисовать. Клик по ней в форме открывает окно с настройками.

Что в ней хранится: подпись, тип (кнопка, отправка, сброс, скачивание), ссылка или ресурс, на который вести, файл для скачивания, CSS-классы, произвольные атрибуты и флаги открывать в новом окне, отключена, опубликована.

Форма отправляет JSON, но при сохранении значение разбирается, и в шаблон приходит массив — разбирать его на выводе не надо:

html
<a href="{$cta.href}"
   class="{$cta.classes}"
   {if $cta.target_blank}target="_blank"{/if}>{$cta.caption}</a>

Есть и модификатор, который соберёт элемент целиком — <a> для скачивания, <button> для остальных типов:

html
{$cta|button}

На незаполненном поле он безопасен: пустое значение выводит пустоту, а не падает. Неопубликованная кнопка тоже не выводится.

Ресурс сохраняется тем адресом, какой был на момент выбора

Выбор ресурса кладёт в значение его URI, а не ссылку на саму страницу. Перенесли страницу или сменили алиас после — кнопка останется со старым адресом, ровно как набранная руками.

И ещё: {$cta.href} и {$cta|button} читают только ссылку. У кнопки, собранной из выбранного ресурса, адрес лежит под своим ключом:

html
<a href="/{$cta.href ?: $cta.resource}">{$cta.caption}</a>

© PageBlocks 2019-present