партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Это форум по решению для битрикс «Модуль Универсальные свойства привязки».
Страницы: 1
Ответить
RSS
Зависимость списка элементов в одном свойстве от другого
 
Здравствуйте!
У меня есть небольшой вопрос по модулю.
Ситуация следующая.
Я создал информационный блок, где в качестве разделов вводятся клиенты,  а в качестве элементов магазины принадлежащие данным клиентам.



Допустим Раздел (Клиент 1), а элементы данного раздела (Магазин 1-1, Магазин 1-2, Магазин 1-3)
Далее надо в карточке пользователя в админке внести эти данный, для этого я создал пользовательские поля.
1е пользовательское поле с привязкой к разделам данного инфоблока
2е пользовательское поле с привязкой к элементам данного инфоблока
И все бы хорошо, но мне надо еще привязать к раздела, элементы инфоблока.
Т.е. если я выбираю из списка "Клиент 1", то во втором пользовательском поле, должны выбираться из списка "Магазин 1-1, Магазин 1-2, Магазин 1-3",



а по умолчанию выводятся все элементы



Скажите, пожалуйста, может ли Ваш модуль справится с такой задачей.
Или если не сложно, скажите пожалуйста, какой файл отвечает за вывод данных списков, я попробую реализовать через jQuery
 
Да, это возможно, но вам придется дорабатывать шаблон компонента "grain:links.edit". Вы можете скопировать шаблон и указать его в настройках свойства, либо скопировать под именем .default в шаблон сайта по умолчанию, и тогда он будет использоваться везде.

Некоторые рекомендации по доработке шаблона:  

Если вы будете использовать простой выбор или выбор с поиском (без аякс), то вам нужно будет с помощью яваскрипта модифицировать список элементов - он находится в переменной GRAIN_LINKS_EDIT_DEFAULT.lists[instance_id] (где instance_id - это идентификатор экземпляра каждого отдельного компонента, он генерируется автоматически и вы можете его сохранить в какой-то переменной в шаблоне, например, определяя какое у вас в данном случае свойство по параметру $arParams["INPUT_NAME"],  а также массив выбранных элементов GRAIN_LINKS_EDIT_DEFAULT.selected[instance_id].

Если же будете использовать аякс, то можете модифицировать только GRAIN_LINKS_EDIT_DEFAULT.selected[instance_id], а для доработки выборки списка придется немного доработать функцию GRAIN_LINKS_EDIT_DEFAULT.search, там подставить в arData ваш идентификатор клиента, после чего скопировать источник данных (эта процедура описана в справке), и в источнике данных уже ограничивать список на php (получая идентификатор клиента из $_REQUEST). Возможно, второй способ даже проще, только при выборе другого клиента не забывайте очищать выбранные магазины (переменная GRAIN_LINKS_EDIT_DEFAULT.selected и span в котором находятся названия и hidden-поля выбранных элементов)

Кстати, сам идентификатор шаблона GRAIN_LINKS_EDIT_DEFAULT крайне желательно поменять при копировании шаблона, т.к. не должно подключаться двух разных шаблонов на странице с одинаковым идентификатором (можете его не трогать, если у вас будет везде этот измененный шаблон).

Там можете и jQuery использовать, только тогда вам придется позаботиться о его подключении, т.к. сам модуль jQuery не использует. Хотя я бы посоветовал вам для этой задачи тоже его не использовать, серьезных причин, мне кажется, нет для этого.
Страницы: 1
Ответить
Читают тему
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки