Телеграм: @camouf_ru Почта: mihail@bazarow.ru

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

Просмотров: 15299

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

Иногда, необходимо вывести имя пользователя добавившего элемент инфоблока. Например автора новости или автора объявления на информационной доске объявлений под управлением 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

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

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


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

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

FTP доступ на Виртуальной машине Битрикс Просмотров: 15005 Бывает что нужно открыть FTP доступ к заранее известной папке на сайте под управлением 1С ... Адаптивное гамбургер меню для битрикс Просмотров: 13804 Заметка коротенькая, но решил оставить ее - так как самому часто нужно нечто подобное. В а... Вывести минимальную и максимальную цену в разделе каталога Битрикс. Просмотров: 1427 Что бы вывести минимальную и максимальную стоимость товаров, из каталога 1С-Битрикс, доста... Перенос Битрикс сайта с хостинга на хостинг, инструкция Просмотров: 24857 Достаточно часто спрашивают как перенести сайт работающий на 1С Битрикс с одного хостинга ... Спойлер в списке новостей Битрикс Просмотров: 10754 Иногда нужно сделать спойлеры в копонентах Битрикс, в основном конечно, имеет смысл при оч... Увидеть файл заказов который передаст Битрикс в 1С Просмотров: 22172 Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей,... Данные о текущем разделе каталога вывести в section.php Просмотров: 2121 Если нужно получить какие-то данные о текущем разделе, которых нет в изначальном массиве, ... AJAX корзина с отправкой количества из раздела каталога Просмотров: 18314 Столкнулся с задачкой: нужно было на одном сайте реализовать интерактивный прайс лист. При... Прятать или показывать описание раздела каталога Просмотров: 204 В новых компонентах и шаблонах catalog.section есть не документированный и не выводимый па... Заполнить коэффициент единицы измерения (MEASURE_RATIO) из свойства э... Просмотров: 4818 Задачка: Каталог наполняется из 1С, но 1С не передает коэффициент единицы измерения (особе...