@GhostWithin

Как в информационный блок Битрикс вставить повторяющийся кусок html кода?

Есть ряд информационных блоков, которые являются контентом для страницы.
Есть несколько кусков html кода, которые нужно вставить в эти блоки.
Самое примитивное решение впихнуть код руками в каждый блок, но чтобы потом внести корректировки придется править десяток страниц.

Через шаблон вставлять их не вариант, т.к. всего есть два десятка инфоблоков и "кусков кода для вставки" около 10. И они будут вставляться в разном сочетании в разные инфоблоки.

Хотелось бы сделать по аналогии с другими CMS, к примеру, MODx.
Там есть чанки - куски html кода. В нужно месте вставляется "отсылка" к чанку и в случае необходимости редактируется сам чанк и изменения отображаются везде. Я видел что в Битриксе можно аналогичного добиться через include, но это не работает инфо блоке.

Опыт с Битриксом чуть больше 0.

Ниже на картинке показано, куда я пытаюсь установить повторяющийся код
5d25f0023ff6f570551417.png
5d25f0485023f688003292.png
  • Вопрос задан
  • 2250 просмотров
Решения вопроса 1
megafax
@megafax
web-программист
В текстовое поле инфоблока из коробки так не разместишь. В Вашем случае - я бы посоветовал в шаблоне разместить через
$APPLICATION->IncludeFile(
			$APPLICATION->GetTemplatePath("include/sometext.php"),
			[],
			["MODE" => "html"]
);

сам файл разместить в шаблоне include/sometext.php и его же править через ту же публичную часть как "редактировать включаемую область"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Если ваши HTML блоки, которые нужно добавить в DETAIL_TEXT, имею одинаковый контент то это можно сделать через вставку меток в пределах DETAIL_TEXT.
Например идет описание, а в нужном месте добавляете конструкцию вида #CUSTOM_BLOCK#.
После этого в шаблоне компонента с помощью регулярки ищите такие блоки и заменяете на то что Вам нужно.

Если таких блоков много, то можно сделать несколькими вариантами:
1) Через файлы. Создаете папку /html_blocks/ в неё закидываете ваши html блоки отдельными файлами. Метки делайте в виде #CUSTOM_BLOCK_1#, #CUSTOM_BLOCK_2#. И соответственно для таких меток надо будет вставлять контент из файлов /html_blocks/1.php, /html_blocks/2.php

2) Через отдельный ИБ. В нем создаете нужные вам HTML блоки. Метки организуются по такому же принципу #CUSTOM_BLOCK_N#. Но вот со вставкой будет больше проблем. Можно сделать так как написано тут https://dev.1c-bitrix.ru/learning/course/index.php... . Только в примере подключают bitrix:voting.current, а в вашем случае будет bitrix:news.detail
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы