|
Gvenv_nk
Наталья Комарова
Зарегистрирован: 2011-11-07
Сообщений: 43
|
Здравствуйте! Я не программист, поэтому не могу решить простейшую проблему, вся надежда на помощь старших товарищей.
Суть задачи: из длинного списка объектов (справочник контактов организации) нужно выводить в другие разделы (структура организации с множеством подразделов 1 и 2 уровня вложенности) объекты по определенному признаку - например, по полю "индекс подразделения".
Например, в структуре организации есть раздел "Бухгалтерия" с индексом подразделения = 1.3. В исходном компоненте (справочник контактов) есть поле $f_index, которое заполняется в каждом объекте. Т.е. у каждого сотрудника бухгалтерии в форме редактирования в поле "индекс" вводится значение 1.3.
К разделу "Бухгалтерия" в структуре прикреплен компонент, где в пользовательских настройках есть поле "index". Туда вводится соответственно то же значение - 1.3. В самом компоненте ничего нет, кроме вывода объектов через s_list_class с дополнительными параметрами и условием, что, если $cc_settings['index'] в разделе = $f_index в исходном компоненте, то выведутся только объекты с этим индексом.
Проблема в том, что я не понимаю, как правильно написать это условие и передать дополнительный параметр в s_list_class. Голову сломала, но ответов в документации не нашла. Свои бредовые варианты не привожу.
И дополнительный вопрос: нельзя ли как-то решить эту проблему через зеркальный инфоблок? Мне не удалось, в документации не нашла ответа на вопрос, как выводить в зеркальном инфоблоке не все объекты, а только выборку объектов по определенному признаку.
Наталья Комарова
|
|
Игорь
Игорь Мишарин
Зарегистрирован: 2011-11-20
Сообщений: 482
|
Какая версия Netcat у Вас, если используется до сих пор s_list_class(), а не nc_objects_list()?
Теперь по Вашему вопросу)).
1. При существующем Вашем варианте - в компоненте s_list_class:
-- делаем так - s_list_class(XXX, YYY, "index=$cc_settings['index']")
ХХХ - ID раздела источника
YYY - ID инфоблока источника
-- в Системных настройках компонента Справочник контактов прописываем:
Код:if ($index) {
$query_where = "a.index = $index";
}
2. При использовании компонента Справочник контактов зеркальным:
-- в Системных настройках компонента Справочник контактов прописываем:
Код:if ($current_sub['Subdivision_ID'] == XXX) {
$query_where = "a.index = '1.3'";
}
XXX - ID раздела Бухгалтерия
Stark
|