файл params_modifier.php в шаблоне компонента

Рейтинг: 45.0080  
Новая
Предложил Шерлок Холмс 18.09.2013 01:39:32

файл params_modifier.php в шаблоне компонента

Все знают, что есть прекрастный файл result_modifier.php, который можно разместить в папке шаблона и дополнить результат работы системного компонента, чтобы не модифицировать его.
Так же недавно ввели полезный файлик component_epilog.php чтобы изменять динамичекие свойства на странице без кеширования.

Для полной картины - нехватает одного завершающего штриха - файлика params_modifier.php :!:, который бы позволил програмно менять параметры компонента перед его запуском.

Типичный пример - используем компонент bitrix:catalog.top чтобы вывести несколько лучших товаров по определенному критерию. Было бы отилчно иметь возможность в файлике params_modifier.php произвести изменение входных параметров (например, заполнить переменную arrFilter), или определить раздел инфблока, из которого выводить элементы, на основе каких-то дополнительных критериев (например, текущей страницы), или проверить права доступа, и выбрать нужные свойства для того или иного пользователя. Сейчас для того, чтобы это проделать, нужно перед вызовом компонента размещать сторонний код, что разбивает компонент на части и повышает риск случайного изменения кода.

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

Хоть сам я и сторонник написать свой компонент, но это если делать для себя. Если же сайт потом будут редактировать другие люди, или если приходится доделывать после кого-то, согласитесь, очень приятно увидеть на сайте старые добрые bitrix:catalog или bitrix:catalog.section.list где ты легко можно найти что было изменено или добавлено, и быть более-менее уверенным что разработка велась правильно. Хоть и неоптимально, и медленно, и большой кеш, но зато оно работает, четко и правильно, кешируется, и всё такое.

Так вот, чтобы оттянуть по максимуму необходимость копировать штатный компонент в своё пространство имен - очень нужно добавить такую штучку как params_modifier.php (в шаблоне компонента), которая позволит динамически модифицировать входные параметры компонента и иметь тиражное решение для разработок из коробки. :idea:

Рейтинг: 1.2849  
Шерлок Холмс 19.09.2013 13:16:15
Подробности и дискуссия в блоге:
http://dev.1c-bitrix.ru/community/webdev/user/16182/blog/8448/
Рейтинг: 1  
Малюк Игорь 18.06.2015 14:28:07
Нужная штука. Согласен!
Рейтинг: 0  
Берсенёв Алексей 20.06.2018 20:10:38
Осознал необходимость в этой штуке наверно в первую неделю работы с битриксом. Только тогда я её назвал component_prolog.php. 5 лет прошло с создания идеи, а этой фичи всё нет.