Недавно из полунаучного интереса спрашивал у сообщества, , при этом честно признаваясь, что сами мы так не делаем (считаю что это нехорошо).
И вот буквально на этой неделе таки пришлось прибегнуть к модификации ядра. Если у вас есть идеи, как этого избежать - буду рад.
Задача и описание:[spoiler]
На сайте одного из заказчиков было предложено сделать при редактировании новости список элементов из связанного инфоблока в виде чекбоксов:
(фактически, множественная привязка к элементам с быстрым указанием нужных).
В одной новости три таких поля, в самом большом - 37 элементов
Казалось бы, задача решается просто - пишем свой пользовательский тип, указываем его и... все готово!
Оказывается, есть скрытые подводные камни:
в Битриксе в ядре прописано - всегда выводить кнопку "Добавить" для множественного свойства типа "Привязка к элементам", и стоит ограничение (не понятно вообще зачем) что нельзя вывести более 30 значений (а по умолчанию 5).
Вот только для того чтобы выводить более 30-ти и без кнопки "добавить" пришлось чуть подправить одну функцию, и еще одну дописать в файле /bitrix/modules/iblock/admin/iblock_element_edit.php (функция _ShowPropertyField).
Мы попытались решить проблему созданием копии этого системного файла и изменением содержимого собственно вызываемого при редактировании элемента файла:
/bitrix/admin/iblock_element_edit.php :
заменили
на
Результат, мягко скажем, не понравился:

Реально форма перестала работать.
Вот теперь сидим и думаем - что делать?
Есть у кого-нибудь идеи как реализовать подобное?
И вот буквально на этой неделе таки пришлось прибегнуть к модификации ядра. Если у вас есть идеи, как этого избежать - буду рад.
Задача и описание:[spoiler]
На сайте одного из заказчиков было предложено сделать при редактировании новости список элементов из связанного инфоблока в виде чекбоксов:
(фактически, множественная привязка к элементам с быстрым указанием нужных).В одной новости три таких поля, в самом большом - 37 элементов
Казалось бы, задача решается просто - пишем свой пользовательский тип, указываем его и... все готово!
Оказывается, есть скрытые подводные камни:
в Битриксе в ядре прописано - всегда выводить кнопку "Добавить" для множественного свойства типа "Привязка к элементам", и стоит ограничение (не понятно вообще зачем) что нельзя вывести более 30 значений (а по умолчанию 5).
Вот только для того чтобы выводить более 30-ти и без кнопки "добавить" пришлось чуть подправить одну функцию, и еще одну дописать в файле /bitrix/modules/iblock/admin/iblock_element_edit.php (функция _ShowPropertyField).
Мы попытались решить проблему созданием копии этого системного файла и изменением содержимого собственно вызываемого при редактировании элемента файла:
/bitrix/admin/iblock_element_edit.php :
заменили
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/admin/iblock_element_edit.php");?> |
на
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/admin/iblock_element_edit_new.php");?> |
Результат, мягко скажем, не понравился:

Реально форма перестала работать.
Вот теперь сидим и думаем - что делать?
Есть у кого-нибудь идеи как реализовать подобное?