Вывести имя пользователя добавившего элемент инфоблока в Битрикс

5642  |  9

Иногда, необходимо вывести имя пользователя добавившего элемент инфоблока. Например автора новости или автора объявления на информационной доске объявлений под управлением 1С Битрикс. Сделать это достаточно просто, хотя и не сразу приходит в голову.

Делюсь: Вариант не идеален, сделал только что в спешке на одном сайте, чуть позднее доведу до идеала, с ссылкой на профайл пользователя и подробной информацией о нем.

В нужном месте шаблона компонента вставляем:

 <?
      $create_user=$arResult["CREATED_BY"]; /ловим ID создателя
      $GLOBALS['users'] = array("CREATED_BY" => $create_user);
      $userid= $create_user;; /подставляем пойманый ID
      $rsUser = CUser::GetByID($userid);
      $arUser = $rsUser->Fetch();
      echo $arUser["NAME"]; //выводим имя
?>

Конечно, можно проделать это с помощью компонента "Имя пользователя с титулом" передав в него ID создателя таким же макаром. 

Вывести дополнительные данные об авторе элемента инфоблока

Чтобы вывести больше информации о пользователе, можно воспользоваться вот этим:

<?
$create_user=$arResult["CREATED_BY"];
$GLOBALS['users'] = array("CREATED_BY" => $create_user);
$userid= $create_user;
$rsUser = CUser::GetByID($userid);
$arUser = $rsUser->Fetch();
?>

<a href="/users/<? echo $create_user;?>/" >
<? echo $arUser["NAME"];?>
</a>
<? echo $arUser["EMAIL"];?>
<? echo $arUser["WORK_COMPANY"];?>
<? echo CFile::ShowImage($arUser['PERSONAL_PHOTO'], 98, 98, 'border=0', '', true); ?> 

Здесь мы вывели: Имя автора с ссылкой на его страницу внутри соц сети Битрикс, электронную почту, название компании из личного профиля, и персональную фотографию автора

все остальное можете подсмотреть в официальной документации по API Битрикс Класс CUser

Если пользователь авторизован и его логин совпадает с логином автора новости

Не большой замес. Нужно показать ссылку на редактирование материала, если текущий авторизованный пользователь является автором новости/ статьи/ элемента

<?if(CUser::IsAuthorized()):?>
<?//Если логин текущего авторизованного пользователя совпадает с логином владельца материала- такая вот фигня
$hoster = $arUser["LOGIN"];
global $USER;
$nowUser = $USER->GetLogin();
if($nowUser===$hoster):?>
<a href="/personal/dobavlenie-retsepta/?edit=Y&CODE=<?=$arResult['ID']?>">
Изменить материал
</a>
<?endif;?>
<?endif;?>
Расскажи друзьям-то:
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей
Зарегистрироваться Войти Напомнить пароль
Или войти через социальную сеть:
Алексей
Это пример для шаблона элемента? А как сделать то же самое, но в списке элементов инфоблока?
Сергей
Присоединяюсь к вопросу выше! Как внедрить это решение в шаблон news.list?
Михаил Базаров
Вместо arResult вставить arItem
Сергей
Спасибо огромное! Вы очень помогли! :)
Андрей
Михаил, подскажите пожалуйста куда именно нужно вставить код, чтобы результат выводился в детальном описании новостей
Александр Николаев
Здравствуйте, Михаил!
Не подскажите как можно в детальном шаблоне новости вывести ссылку по привязке пользователя на персональный кабинет.
Описание.
Изначально была задача привязать элемент справочника к другому инфоблоку каталогу это сделал, подключив компонент news.detail, bitrix:catalog.top и переменив ArrFilter я фильтрую элементы.
Вот теперь нужно сформировать ссылку на персональный кабинет по привязке пользователя из компонента news.detail.
Подскажите как это можно сделать пожалуйста.
Михаил Базаров
Цитата
Александр Николаев пишет:
Здравствуйте, Михаил!
Не подскажите как можно в детальном шаблоне новости вывести ссылку по привязке пользователя на персональный кабинет.
Описание.
Изначально была задача привязать элемент справочника к другому инфоблоку каталогу это сделал, подключив компонент news.detail, bitrix:catalog.top и переменив ArrFilter я фильтрую элементы.
Вот теперь нужно сформировать ссылку на персональный кабинет по привязке пользователя из компонента news.detail.
Подскажите как это можно сделать пожалуйста.
Собственно ответ в самой заметке
Создаете раздел куда выводите всех пользователей, можно модулем форума, можно модулем социальной сети

И в шаблоне новости

Код
<? 
$create_user=$arResult["CREATED_BY"]; 
$GLOBALS['users'] = array("CREATED_BY" => $create_user); 
$userid= $create_user; 
$rsUser = CUser::GetByID($userid); 
$arUser = $rsUser->Fetch(); 
?> 

<a href="/users/<? echo $create_user;?>/" > 
 

где /users/ это раздел сайта со списком пользователей а <? echo $create_user;?> ник пользователя или можно <? echo $arUser['ID'];?> если ЧПУ по ID-шникам

Например, так работает у меня на сайте. Если кликните на форуме по имени любого пользователя, попадете на его страничку в социальной сети
https://camouf.ru/forum/forum1/4

PS: Поправочка. По имени почти любого пользователя, некоторые тут писали до того как я подключил модуль соц.сеть потому не у всех профили есть
Александр Николаев
Михаил, спасибо что ответили мне но у меня не работают эти варианты я уже перепробовал все.
Вот что у меня получилось http://prntscr.com/cmtu40
href="/users/ / путь пустой
Может я не совсем правильно объяснил свою задачу.

Есть сайт совместные покупки, стоит задача.
1) Сделать два ифоболока каталог товара и организаторы закупок
2) Привязать организатора Надежда к элементу каталога товара и вывести на страницу сайта все товары которые привязаны к организатору Надежде. ( Это я смог сделать ) http://prntscr.com/cmlk4h http://prntscr.com/cmlksk
3) Нужно привязать элемент организатора к пользователю по свойству привязка к пользователю и на странице вывести ссылку на профиль организатора закупок, то есть если user-> клиент кликнет на ссылку http://prntscr.com/cmlquv организатора он должен попасть на профиль организатора, а не текущий пользователь.

Скрин инфоблока http://prntscr.com/cmlvb7
Александр Николаев
Цитата
Александр Николаев пишет:
Михаил, спасибо что ответили мне но у меня не работают эти варианты я уже перепробовал все.
Вот что у меня получилось http://prntscr.com/cmtu40
href="/users/ / путь пустой
Может я не совсем правильно объяснил свою задачу.

Есть сайт совместные покупки, стоит задача.
1) Сделать два ифоболока каталог товара и организаторы закупок
2) Привязать организатора Надежда к элементу каталога товара и вывести на страницу сайта все товары которые привязаны к организатору Надежде. ( Это я смог сделать ) http://prntscr.com/cmlk4h http://prntscr.com/cmlksk
3) Нужно привязать элемент организатора к пользователю по свойству привязка к пользователю и на странице вывести ссылку на профиль организатора закупок, то есть если user-> клиент кликнет на ссылку http://prntscr.com/cmlquv организатора он должен попасть на профиль организатора, а не текущий пользователь.

Скрин инфоблока http://prntscr.com/cmlvb7
На странице сайта используется 2 простых компонента bitrix:news.detail http://prntscr.com/cmu2bd и bitrix:catalog.top http://prntscr.com/cmu2xo

© 2011—2016 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.
Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой. Политика конфеденциальности
x
Как к Вам обращаться? *
Ваша электронная почта: *
Доп. материалы (логотип, тех. задание):
 
Обзор
Текст сообщения: