Коллеги, что вы думаете по поводу файла для предварительной модификации параметров $arParams в шаблоне компонента?
Суть идеи:
====================================================================
Все знают, что есть прекрастный файл result_modifier.php, который можно разместить в папке шаблона и дополнить результат работы системного компонента, чтобы не модифицировать его.
Так же недавно ввели полезный файлик component_epilog.php чтобы изменять динамичекие свойства на странице без кеширования.
Для полной картины - нехватает одного завершающего штриха - файлика params_modifier.php
, который бы позволил програмно менять параметры компонента перед его запуском.
Типичный пример - используем компонент bitrix:catalog.top чтобы вывести несколько лучших товаров по определенному критерию. Было бы отилчно иметь возможность в файлике params_modifier.php произвести изменение входных параметров (например, заполнить переменную arrFilter), или определить раздел инфблока, из которого выводить элементы, на основе каких-то дополнительных критериев (например, текущей страницы), или проверить права доступа, и выбрать нужные свойства для того или иного пользователя. Сейчас для того, чтобы это проделать, нужно перед вызовом компонента размещать сторонний код, что разбивает компонент на части и повышает риск случайного изменения кода.
Было бы очень удобно иметь возможность определить или програмно изменить входные параметры компонента перед его запуском, чтобы сохранить системный компонент.
Хоть сам я и сторонник написать свой компонент, но это если делать для себя. Если же сайт потом будут редактировать другие люди, или если приходится доделывать после кого-то, согласитесь, очень где ты легко можно найти что было изменено или добавлено, и быть более-менее уверенным что разработка велась правильно. Хоть и неоптимально, и медленно, и большой кеш, но зато оно работает, четко и правильно, кешируется, и всё такое.
Так вот, чтобы оттянуть по максимуму необходимость копировать штатный компонент в своё пространство имен - очень нужно добавить такую штучку как params_modifier.php (в шаблоне компонента), которая позволит динамически модифицировать входные параметры компонента и иметь тиражное решение для разработок из коробки.
====================================================================
Нужно ли это? Насколько удобно?
Создал идею по этому поводу
Пока что самое быстрое решение - в файле
/bitrix/modules/main/classes/general/component.php:367
просто подключать файл params_modifier.php из шаблона компонента, в котором можно было менять результат работы $arParams.
Что-то типа:
Можно ли это сделать штатными средствами Битрикса без модификации ядра? Как по мне - штука нужная и необходимая.
Суть идеи:
====================================================================
Все знают, что есть прекрастный файл result_modifier.php, который можно разместить в папке шаблона и дополнить результат работы системного компонента, чтобы не модифицировать его.
Так же недавно ввели полезный файлик component_epilog.php чтобы изменять динамичекие свойства на странице без кеширования.
Для полной картины - нехватает одного завершающего штриха - файлика params_modifier.php
Типичный пример - используем компонент bitrix:catalog.top чтобы вывести несколько лучших товаров по определенному критерию. Было бы отилчно иметь возможность в файлике params_modifier.php произвести изменение входных параметров (например, заполнить переменную arrFilter), или определить раздел инфблока, из которого выводить элементы, на основе каких-то дополнительных критериев (например, текущей страницы), или проверить права доступа, и выбрать нужные свойства для того или иного пользователя. Сейчас для того, чтобы это проделать, нужно перед вызовом компонента размещать сторонний код, что разбивает компонент на части и повышает риск случайного изменения кода.
Было бы очень удобно иметь возможность определить или програмно изменить входные параметры компонента перед его запуском, чтобы сохранить системный компонент.
Хоть сам я и сторонник написать свой компонент, но это если делать для себя. Если же сайт потом будут редактировать другие люди, или если приходится доделывать после кого-то, согласитесь, очень где ты легко можно найти что было изменено или добавлено, и быть более-менее уверенным что разработка велась правильно. Хоть и неоптимально, и медленно, и большой кеш, но зато оно работает, четко и правильно, кешируется, и всё такое.
Так вот, чтобы оттянуть по максимуму необходимость копировать штатный компонент в своё пространство имен - очень нужно добавить такую штучку как params_modifier.php (в шаблоне компонента), которая позволит динамически модифицировать входные параметры компонента и иметь тиражное решение для разработок из коробки.
====================================================================
Нужно ли это? Насколько удобно?
Создал идею по этому поводу
Пока что самое быстрое решение - в файле
/bitrix/modules/main/classes/general/component.php:367
просто подключать файл params_modifier.php из шаблона компонента, в котором можно было менять результат работы $arParams.
Что-то типа:
final protected function __prepareComponentParams(&$arParams)
{
// тут подключить файл для дополнительной обработки $arPrams
// if ( file_exists(...../template_name/params_modifier.php) )
// include (...);
|
Можно ли это сделать штатными средствами Битрикса без модификации ядра? Как по мне - штука нужная и необходимая.