Инфоблоки
Инфоблоки в 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¶m=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
То есть с названием и кратким описанием инфоблока на нужных языках. После этого кнопка появится в панели редактора, на предпоследнем месте.