Хайд Бит. Блоггинг. Структурированное пользовательское свойство

Установка решения

Блоггинг. Структурированные пользовательское свойство - пользовательское свойство для элементов информационного блока, позволяет создать свойство с динамическим выбором.

Благодаря этому курсу Вы сможете настраивать блоки в административном разделе, а так же кастомизировать вывод в публичной части вашего сайта.

Первичная установка на сайт

Шаги установки решения.
  • 1. Установить решение возможно двумя способами:
  • 1.1. С сайта маркетплейса 1C Битрикс
  • 1.2. С раздела Вашего сайта Marketplace->Каталог решений
  • 2. Далее необходимо перейти в настройки информационного блока в котором необходимо добавить свойство.
  • 3. Перейти на вкладку свойства (Выбранного информационного блока) и добавить свойство Тип - Блоггинг.
  • 4. Нажать на настройки свойства, чтобы добавить свои типы блоков или же оставить дефолтные настройки.
  • 5. Перейти в информационный блок и настроить отображение свойства, если оно автоматически не появилось.
  • 6. Начать пользоваться функционалом Блоггинг. Структурированное пользовательское свойство.

1. Шаг установка решения

2. Шаг настройки свойства в информационном блоке

2.1. Дефолтные настройки.



2.2. Создание своих типов блока


3. Шаг Вывод в элементе информационного блока - Административная часть

4. Шаг Вывод в элементе информационного блока - Публичная часть

На примере стандартного компонента bitrix:news




1. Так как стандартный компонент отображает множественные свойства через слеш, нужно скопировать компонент и удалить в news.detail Слеш /

2. Так же стоит не забывать что у компонента news.detail есть свои стили цвета. К счастью Вы сможете легко заменить их под свои задачи.

Кастомизация вывода блоков

В стандартном решение доступны следующие типы блоков:
  1. Строка
  2. Текст
  3. Файл
  4. Привязка к элементам инфоблока
  5. Привязка к разделам инфоблока
  6. Динамическая таблица
Список типов блоков будет расширятся.

За вывод в публичную часть для каждого типа блоков отвечают свои виды компонентов в DISPLAY_VALUE шаблона родительского компонента
  1. Строка - hidebit.blogging.string
  2. Текст - hidebit.blogging.text
  3. Файл - hidebit.blogging.file
  4. Привязка к разделам инфоблока - hidebit.blogging.sections
  5. Привязка к элементам инфоблока - hidebit.blogging.elements
  6. Динамическая таблица - hidebit.blogging.dimanic.table
Т.е. вывод обеспечивается компонентами решения, соответственно для каждого компонента есть свои Шаблоны. 

О том как добавлять свои шаблоны для каждого типа блока Вы узнаете в этой главе, а так же какие есть сейчас шаблоны в стандартной поставке.


Типы встроенных шаблонов вывода блоков

Строка - hidebit.blogging.string

Встроенные шаблоны отображения для компонента Строка - hidebit.blogging.string
1. youtube-vimeo-soundcloud(Встроенный шаблон) - Видео с YouTube/RuTube/Vimeo/SoundCloud
2. paragraph(Встроенный шаблон) - Текст с параграфом
3. quote(Встроенный шаблон) - Текст цитата
4. text(Встроенный шаблон) - Текст обычный
В шаблоне template.php в $arResult доступы значения:
Array(
    [VALUE] => Array(
       [SORT] => - Сортировка блока
       [CODE] => - Код свойства
       [CLASS] => - Класс блока
       [HEADER] => Тег блока
       [CAPTION] => - Заголовок блока
       [ELEMENT_ID] => ID - Элемента инфоблока
       [TEXT_DATA] => Данные в виде строки
       [MD5] => - MD5 блока, меняется при каждом сохранение элемента инфоблока
))

Текст - hidebit.blogging.text

Встроенные шаблоны отображения для компонента Текст - hidebit.blogging.text
1. open-text(Встроенный шаблон) - Текст гармошка, разворачивается при клике на заголовок
2. paragraph(Встроенный шаблон) - Текст с параграфом
3. quote(Встроенный шаблон) - Текст цитата
4. script-clear-margin(Встроенный шаблон) - Для вставки произвольного JS - кода
5. text(Встроенный шаблон) - Текст обычный
В шаблоне template.php в $arResult доступы значения:
Array(
    [VALUE] => Array(
        [SORT] => - Сортировка блока
        [CODE] => - Код свойства
        [CLASS] => - Класс блока
        [HEADER] => Тег блока
        [CAPTION] => - Заголовок блока
        [ELEMENT_ID] => ID - Элемента инфоблока
        [HTML_TYPE] => - Тип text или html
        [HTML_DATA] => - Данные 
        [MD5] => - MD5 блока, меняется при каждом сохранение элемента инфоблока
))

Файл - hidebit.blogging.file

Встроенные шаблоны отображения для компонента Файл - hidebit.blogging.file
1. download(Встроенный шаблон) - Скачать файлы
2. slider(Встроенный шаблон) - Слайдер изображений если несколько или вывод одиночной картинки
В шаблоне template.php в $arResult доступы значения:
Array(
    [VALUE] => Array(
        [SORT] => - Сортировка блока
        [CODE] => - Код свойства
        [CLASS] => - Класс блока 
        [HEADER] => Тег блока
        [CAPTION] => - Заголовок блока
        [ELEMENT_ID] => ID - Элемента инфоблока
        [FILE_DATA] => Array(Массив ID Файлов)
        [MD5] => - MD5 блока, меняется при каждом сохранение элемента инфоблока
))

Привязка к разделам инфоблока - hidebit.blogging.sections

Встроенные шаблоны отображения для компонента Привязка к разделам инфоблока - hidebit.blogging.sections
1. link (Встроенный шаблон) - Ссылки на прикреплённые разделы
2. picture (Встроенный шаблон) - Ссылки на прикреплённые разделы в виде картинок
В шаблоне template.php в $arResult доступы значения:
Array(
    [VALUE] => Array(
        [SORT] => - Сортировка блока
        [CODE] => - Код свойства
        [CLASS] => - Класс блока 
        [HEADER] => Тег блока
        [CAPTION] => - Заголовок блока 
        [ELEMENT_ID] => ID - Элемента инфоблока
        [SECTION_DATA] => Array(Массив ID разделов)
        [MD5] => - MD5 блока, меняется при каждом сохранение элемента инфоблока
))

Привязка к элементам инфоблока - hidebit.blogging.elements

Встроенные шаблоны отображения для компонента Привязка к элементам инфоблока - hidebit.blogging.elements
1. link (Встроенный шаблон) - Ссылки на прикреплённые элементы
В шаблоне template.php в $arResult доступы значения:
Array(
    [VALUE] => Array(
       [SORT] => - Сортировка блока
       [CODE] => - Код свойства
       [CLASS] => - Класс блока 
       [HEADER] => Тег блока
       [CAPTION] => - Заголовок блока
       [ELEMENT_ID] => ID - Элемента инфоблока
       [ELEMENT_DATA] => Array(Массив ID Элементов инфоблоков)
       [MD5] => - MD5 блока, меняется при каждом сохранение элемента инфоблока
))

Динамическая таблица - hidebit.blogging.dimanic.table

Встроенные шаблоны отображения для компонента Динамическая таблица - hidebit.blogging.dimanic.table
1. horizontal (Встроенный шаблон) - горизонтальное отображение таблицы
2. vertical (Встроенный шаблон) - вертикальное отображение таблицы
В шаблоне template.php в $arResult доступы значения:
Array(
    [VALUE] => Array(
        [SORT] =>  - Сортировка блока
        [CODE] =>  - Код свойства
        [CLASS] => - Класс блока
        [HEADER] => Тег блока
        [CAPTION] => - Заголовок блока
        [ELEMENT_ID] =>  ID - Элемента инфоблока
        [DINAMIC_TABLE_DATA] => Array(
              [HEAD] => Array(Массив заголовка таблицы)
              [ROWS] => Array(Массив данных таблицы)
        )
        [MD5] => MD5 блока, меняется при каждом сохранение элемента инфоблока
))

Кастомизация вывода на примере компонента hidebit.blogging.dimanic.table (Экспертная - требуется вмешательство программиста)


Важно: Не редактируйте шаблон в ядре решения.

Располагаются встроенные шаблоны в папке - /bitrix/components/hidebit/hidebit.blogging.dimanic.table/templates

Для кастомизации или добавления своих шаблонов необходимо скопировать/создать их в общем шаблоне.

Т.е. допустим Вам необходимо добавить свой шаблон отображения:
  • копируем шаблон horizontal из папки /bitrix/components/hidebit/hidebit.blogging.dimanic.table/templates
  • Создаём папку в общем шаблоне /bitrix/templates/.default/components/hidebit/hidebit.blogging.dimanic.table/horizontal_custom и переносим в неё содержимое из ранее скопированной папки horizontal 
  • Всё можно кастомизировать шаблон под себя
В настройках свойства инфоблока появится Ваш кастомизированный шаблон вывода:




Ознакомьтесь о том как кастомизировать вывод под свой шаблон: 

Панель навигации


Api

Кастомизация без встроенных компонентов вывода

В шаблоне вызова компонента например news.detail, кроме DISPLAY_VALUE - в котором выводятся встроенные шаблонники(через компоненты), данные блоков можно получить и напрямую в обычном VALUE, выходные данные практически ничем не отличаются от встроенных шаблонников, но без промежуточной обработки.

Например свойство типа Блоггинг с кодом TELO_NEWS, необработанные данные можно получить так:
$arResult['PROPERTIES']['TELO_NEWS']['VALUE']

Модификация данных

Подключение происходит как к стандартным модулям CMS 1С Битрикс
CModule::IncludeModule("iblock");

Для множественного свойства:
$arPropValue = array( 
 array( "VALUE" => array('SORT'=>'100', 'CODE'=>'TEST_PICTURE','CAPTION'=>'','FILE_DATA'=>array(Список Ид Файлов)) ), 
 array( "VALUE" => array('SORT'=>'200', 'CODE'=>'TEST_PICTURE','CAPTION'=>'','FILE_DATA'=>array()))
); 
CIBlockElement::SetPropertyValuesEx($ID, false, array('TELO_NEWS'=>$arPropValue));

Для не множественных значений:
$arPropValue = array("VALUE" => array('SORT'=>'100', 'CODE'=>'BLOK_SLAYDERA','CAPTION'=>'','FILE_DATA'=>array(Список ID файлов))); 
CIBlockElement::SetPropertyValuesEx($ID, false, array('TELO_NEWS'=>$arPropValue));