Как вам уже известно, в Blox CMS контент сайта редактируется не через админку, а прямо на странице через кнопку редактирования, что очень удобно для пользователей. Плата за это удобство — необходимость помещать в шаблоне код кнопки редактирования: <?= $dat['edit'] ?>
.
Кнопка будет отображаться только в режиме редактирования и только для блоков, которые разрешено редактировать данному пользователю.
Если стандартная кнопка редактирования вам не понравится, можно написать собственный код кнопки, использовав только URL.
Можно обойтись и вовсе без кнопок редактирования, о чем читайте ниже в разделе "Когда можно не выводить кнопки редактирования".
Всё что будет рассказано для кнопки редактирования ($edit['button'] и $dat['edit']) будет относиться и к кнопке удаления $dat['delete'] и кнопке новой записи $edit['new-rec']['button']. Этот код нужно поставить в любое место кода шаблона (лучше — в левый верхний угол блока).
Самый простой способ вывести кнопку редактирования - это просто вставить код кнопки, например, в начале кода шаблона.
echo $edit['button'];
Недостаток этого способа состоит в том, что верстка сайта в режиме редактирования будет выглядеть немного по другому, так как вставляется дополнительный inline элемент.
Для возможности создания кнопок редактирования в собственном стиле, кроме кодов стандартных кнопок $dat['edit'], $dat['delete'], передаются исходные данные для форматирования этих ссылок:
$dat['edit-href'] | Ссылка на редактирование записи |
$dat['delete-href'] | Ссылка на удаление записи |
$dat['hidden'] | Запись является скрытой |
$dat['last-edited'] | Запись редактировалась последней |
$dat['no-data'] | В шаблоне данные не придусмотрены |
$edit['new-rec']['href'] | Ссылка на редактирование новой записи. C этой ссылкой можно передавать также значения по умолчанию. Делается это с помощью параметра-массива defaults, в качестве ключей которого используются номера полей (см. пример ниже). |
Пример использования в шаблоне:
<?php if ($dat['edit-href']) echo "<a href='{$edit['new-rec']['href']}&defaults[9]=5&defaults[3]=0' >Создать новую запись</a>"; foreach ($tab as $dat) { if ($dat['edit-href']) echo "<a href='{$dat['edit-href']}'>редактировать</a>"; echo $dat[1]; } ?>
Так как кнопка редактирования сама является ссылкой, ее нельзя помещать внутрь элемента <a>. Если вы хотите поместить кнопку редактирования в элемент <a>, необходимо в дескриптор добавить параметр $params['span-edit-buttons'], который сделает кнопку редактирования на основе элемента span.
В шаблоне корневого блока обычно находятся только block-данные, которые не редактируются. Если нет данных для редактирования, то и кнопку редактирования в шаблон можно не помещать.
Из редактируемых данных в шаблоне корневого блока можно разместить заголовок страницы и какие-то настройки страницы.
В любом случае, аналог кнопки редактирования имеется в главном меню: Страница > Редактировать корневой блок.
Вовсе необязательно выводить все кнопки редактирования.
Во-первых, для шаблонов предназначенных для верстки (корневой шаблон, ряды, колонки) нужно поставить параметр $params['no-edit-buttons'] = true. С этим параметром будут скрыты кнопки редактирования блока для всех пользователей, кроме администратора.
Более того, кнопки редактирования, используемые только для верски, не нужно показывать даже админу - они будут только мешать. При большом количестве блоков на странице, нужный блок и соответствующую кнопку редактирования удобнее находить через древо блоков в меню: Страница > Структура страницы.