Инфоблоки

Инфоблоки в SyDES - это любой php или html код, который можно вывести на фронте с помощью специальной метки, вида {iblоck:iblock_name}, записанной в тексте страницы, макете или шаблоне.

Хранятся они по адресу system/iblock/iblock_name/iblock.php в виде php файла.

 

Шаблоны

В самом простом варианте достаточно лишь этого одного файла. Но система позволяет наращивать функционал инфоблока в гораздо большем масштабе. Например, если ваш инфоблок собирает какие-нибудь данные, а затем выводит их красиво оформленными, то может потребоваться несколько разных шаблонов для разных страниц. В таком случае создайте в папке с инфоблоком файл default.php, который будет содержать дефолтный шаблон. Он автоматически будет подгружен после самого инфоблока. Далее вы можете насоздавать еще файлов с уникальными названиями и разместить там другие шаблоны. Для применения этих шаблонов используйте аргумент template в метке инфоблока {iblоck:iblock_name?template=simple}.

 

Настройки

Для того, что бы через метку инфоблока можно было передавать аргументы в виде URL-кодированной строки, достаточно в начале кода прописать строки вида

$defaults = array(
	'show' => 'some',
	'limit' => 20,
    'param' => true
);
$args = array_merge($defaults, $args);

Это позволит иметь дефолтные настройки и менять их при необходимости.

Например: {iblоck:iblock_name?show=mydata&limit=5&param=1&title=Мой+заголовок}

 

Инфоблок как модификатор

Одной из особенностей последней версии системы инфоблоков является возможность перезаписывать выходные данные, подобно плагинам.

Например создав инфоблок modifier_products и подключив его в начале макета для товаров можно отредактировать или отформатировать мета данные товаров перед выводом.

$this->response->data['image'] = isset($page['image']) ?
	'<img src="/cache/img/250_250_c' . $page['image'] . '">' :
    '<img src="/upload/images/no-image.png">';
$this->response->data['meta_title'] = 'Купить ' . $page['meta_title'] . ' дешево';

$this->response->script[] = '//somecdn.com/script.min.js';
$this->response->style[] = '//somecdn.com/style.css';

Данный код создаст превьюшку товара размером 250 на 250, осеошит тайтл страницы и подгрузит указанные стиль со скриптом.

Обратите внимание, что переменная с коротким названием $page содержит данные из $this->response->data на момент инициализации инфоблока. Используйте ее в коде.

 

Вставка в два клика

В текущее время этот функционал находится в стадии разработки, кое-что может поменяться

Если вы хотите добавить своему инфоблоку возможность вставляться в визуальном редакторе в пару кликов, то в его папке создайте файл manifest.ini с содержимым, вида

[en]
title=Pages
description="List of pages, news or products"

[ru]
title=Страницы
description="Список страниц, новостей или товаров"

[data]
template=default
author=ArtyGrand

То есть с названием и кратким описанием инфоблока на нужных языках. После этого кнопка появится в панели редактора, на предпоследнем месте.




Если вы хотите что-то узнать дополнительно - спрашивайте в комментариях. Документация будет дополняться по вашим вопросам.
© Arthur Grand, 2011–2018
Powered by SyDES