Задать вопрос
@xmentor

Как вывести связанные данные из пользовательского поля?

Добавил пользовательское поле для пользователей, в него при регистрации записываются некоторые данные из других таблиц,

каким образом в админке в просмотре пользователя можно вывести название записи из другой таблицы по этому добавленному полю? в данный момент отображается только ID этой записи, тип данных поля - число
  • Вопрос задан
  • 941 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
Никак. Но если очень хочется, то

Способ №1
Открываете /modules/main/admin/user_edit.php, в самом конце есть код:
//Add user fields tab only when there is fields defined or user has rights for adding new field
if(
	(count($USER_FIELD_MANAGER->GetUserFields($PROPERTY_ID)) > 0) ||
	($USER_FIELD_MANAGER->GetRights($PROPERTY_ID) >= "W")
)
{
	$tabControl->BeginNextFormTab();
	$tabControl->ShowUserFields($PROPERTY_ID, $ID, ($strError <> '' || !$res));
}

- это вывод пользовательских св-в. Потом изучаете метод CAdminForm::ShowUserFields. Ну и выводите всё что вам нужно на этой закладке.
p.s. разумеется апдейт всё это затрёт. Так же проверка сайта будет ругаться на кастомизацию ядра. И естественно в списке пользователей вы не увидите этих данных, только на детальной странице пользователя.

Способ №2
Заводите ещё одно пользовательское поле, в которое будете писать нужные значения привязанных таблиц.
Получается избыточность данных. Нужно постоянно следить за их корректностью, т.е. отлавливать все события которые могут повлиять на их связность. Зато не вмешиваетесь в ядро и значения полей можно вывести в списке всех пользователей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@niksamokhvalov
Веб-разработчик
Воспользуйтесь перехватчиком события OnAdminTabControlBegin: с его помощью вы сможете изменить вывод страницы редактирования пользователя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы