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


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