Компоненты и php при наполнении элемента инфоблока использовать нельзя. Хотя это был бы самый удобный вариант. Есть даже решение в маркетплейсе для подключение компонентов внутри инфоблока, но там сам автор не рекомендует так делать) Почему?
некоторые страницы были уникальными, с точки зрения дизайна,
namespace TestModules\D\Model;
class User
namespace TestModules\D\Controller;
class Test
{.......
Bitrix\Main\Loader::registerAutoLoadClasses('testmodules.d', [
Local\Lib\Controller/Test::class => 'путь к файлу'
]);
1. С использование нового инфоблока
- например создаешь новый ИБ "Лендинги", настраиваешь как тебе надо, добавляешь свойства
- настраиваешь форму редактирования элемента: таб = блок у лендинга (в каждом табе соответствующие свойства)
- добавляешь лендинг
- в своем старом ИБ создаешь свойство привязка к элементу, например LANDING_ELEMENT_ID
- в нем создаешь пустой элемент (заполняешь только обязательные поля) и привязываешь свой лендинг, тогда в публичке в списке у тебя выводится этот элемент с ссылкой на деталку
- дальше, на примере комплексного компонента catalog, в шаблоне в файле element.php делаешь запрос на получение свойства LANDING_ELEMENT_ID текущего элемента (в $arResult['VARIABLES'] будеи или ID или CODE элемента) и если его значение не пустое то выводишь другой шаблон деталки
- дальше уже дело техники, сделать новый шаблон, с выводом нужных блоков с соответствующими им свойствами
2. Статические разделы
- создаешь в своем ИБ опять же пустой элемент, чтобы была ссылка на деталку
- например, если у тебя ссылка на деталку строится из символьного кода, то в папке раздела физически создаешь папку (название = символьный код элемента), тогда по этому адресу деталки элемента у тебя выведется index.php из этой папки. Ну а там уже можешь городить что хочешь, например руками верстать)) или на каждый блок делать шаблон какого-то компонента, инфу передавать через параметры компонента, или опять же делать какой-то инфоблок, тут уже на что фантазии хватит))