В системе управления 1С Битрикс есть компонент "Форма добавления / редактирования" - который позволяет пользователям добавлять и редактировать элементы инфоблока. Компонент очень старый и сдается мне, Битрикс на него давно забил. Он не умеет выводить свойство "Привязка к разделам"- которое мне и понадобилось. Расскажу как я его вывел.
На одном из разрабатываемых сайтов, кулинарной тематики, требуется дать возможность пользователям наполнять сайт контентом. То есть, человек просто регистрируется и в личном кабинете у него имеется страничка с выведенным компонентом "Форма добавления / редактирования" или iblock.element.add.form. По мимо стандартных полей- типа картинка анонса, подробный текст и списки (в моем случае ингридиентов), в инфоблоке создано свойство "Страна -> привязка к разделам" - которое подключено к другому инфоблоку, в котором страны мира структуированы по буквам алфавита
Как выяснилось, компонент "Форма добавления / редактирования" в упор не видет это свойство и не дает пользователям возможность выбора страны
Тщетно пытался понять логику работы компонента, затем "раскуривал" документацию битрикс- ни чего не помогало найти решение, пока не нарвался на одну тему на официальном форуме Битрикс. Там, топикстартер боролся с проблемой отсутствия свойства "Привязка к элементам", в итоге ему помогли- спустя две страницы форума и два года переписок.
Мне же осталось, только додумать решение до привязки к разделам, это достаточно просто:
Выводим форму добавления в нужном месте сайта, настраиваем права пользователей и копируем шаблон компонента в шаблон своего сайта
Открываем шаблон на редактирование и находим две строчки, примерно на 180-ой строке +/- 20
Добавляем к ним case "G": case "E": (по идее хватит только E, но для полного феншуя), что бы получилось
Сразу под case "N": заменяем весь код (до завершающего его break;) на такой:
Где:
В общем-то и все, надеюсь кому-то это поможет. Все вопросы в комментарии
![]()
nikolay zotov
|
Михаил, в первую очередь хочу поблагодарить = потрясающий ресурс. Очень понятно для новичков. Каждый день на Вашем сайте!
Теперь, если можно, про этот пост задам вопросы: 1) не понятно что делать с другими кейсами которые идут следом и обрабатывают чекбоксы или select по своему (case L) 2) скопировал как у Вас - на выходе у меня выводится сам OPTIONS с разрывом и только ID раздела без названия (см скриншот - первый select со значением ID=110) 3) столкнулся с тем что надо кастомизировать шаблон - разносить каждое свойство по "разным углам макета", а невозможно тк все свойства идут в потоке <?foreach ($arResult["PROPERTY_LIST"] as $propertyID):?>. Вопрос: я могу как то отделить вычленить каждое пользовательское поле по аналогии как Вы объясняли в Вашем другом посту ( |
![]()
Михаил Базаров
|
||||
Я этот момент, решил на одном сайте через JS
Каждому блоку в HTML присвоил свой class типа
Вроде и не костыль, всего лишь перестроил DOM с помощью js) |
||||
![]()
nikolay zotov
|
Спасибо. Забавно. Я в итоге тоже вчера пришел к такому же выводу. Оч много CSS получилось. Те поля, которые надо отдельно кастомить - вывел как у Вас по аналогии (пример кастомного поля для case "N": ниже) - может пригодится кому.
---- Михаил, можно вопрос: не могу справится с тем чтобы в этом компоненте вывести поле ID и поле CODE (их нет в передаваемых параметрах). На форумах об этом почти ничего нет. Подскажите плиз как тут быть? ------------ Вывести NAME <? if($propertyID == "NAME") { ?> <input type="text" name="PROPERTY[<?=$propertyID?>][0]" value="<?=$value?>"/> <? } ?> ------------ Вывести пользовательское свойство //<!--136--> if($propertyID == 136) { ?> <input type="text" name="PROPERTY[<?=$propertyID?>][0]" value="<?=$value?>"/> <? } |
![]()
Александр Христич
|
Михаил, здравствуйте, возможно пишу немного не в ту тему, но всеже. Появилась такая проблема: возникла надобность добавить в детальной странице товара вывод ссылки на "Дизайнера", коим является подраздел раздела инфоблока, в котором и лежит этот товар, думал воспользоваться обычной кнопкой "назад в раздел", НО возникла другая проблема, так как товар прикреплен как к основному разделу так и к подразделу, получается что при переходе к товару способом "Основной раздел"->"Подраздел"->"Товар" и возвращении "назад в раздел" все происходит нормально, возврщает, как мне и нужно, ко всем товарам этого дизайнера, но при переходе к товару способом "Основной раздел"->"Товар" и возвращении "назад в раздел" эта ссылка возвращает нас к "Основному разделу", а не к "Подразделу".
Помогите понять проблему и каким способом можно её решить P.S. Если бы можно было делать привязку к разделу своего инфоблока, возможно бы проблемы не возникло. Заранее спасибо! Фото |
![]()
Михаил Базаров
|
||
Далее поступаете вот так (в моем случае Бренды- вместо Дизанеров) |
||
![]()
Александр Христич
|
||||
|
||||
![]()
Артур
|
Михаил, добрый день!
Подскажите пожалуйста как возможно реализовать в iblock.element.add.form с привязкой к элементу? К примеру добавлю в детальную карточку товара iblock.element.add.form, нужно чтоб он привязывался к элементу. |
![]()
Михаил Базаров
|
||
Там, если не нужны чекбоксы, просто замените на то что нужно. По виду- вроде работоспособно |
||
На нем, уже много видеоуроков по 1С-Битрикс. Как одиночные видео так и серии видеоуроков Перейти на канал
Совсем скоро выйдет видеокурс по разработке доски объявлений с мобильным приложением. Подписывайтесь и будьте в курсе: