Достаточно часто, при создании сайта на битрикс нужно вывести в шаблон или компонент, некую информацию, доступную только для авторизованного пользователя. Например поздравить его (пользователя) со входом или поблагодарить за возвращение. В самом простом случае вывести кнопку "Выйти". Для этого можно воспользоваться API Битрикс и классом CUser - класс для работы с пользователями
Используем метод IsAuthorized- авторизован ли пользователь
Использую простой пример. Задача: если пользователь авторизован нам нужно с ним поздороваться и показать простой баннер-картинку, если не авторизован показываем, в этом же месте, простой текст. Для этого в нужном месте шаблона сайта (там где предполагается показывать баннер) вставляем вот такую конструкцию:
<?if($USER->IsAuthorized()):?>
<i>— Здраствуйте</i><br/>
<?=(CUser::GetFirstName())?CUser::GetFirstName():CUser::GetLogin()?><br/>
<img src="/путь_к_баннеру.png"/>
<?else:?>
У нас самый лучший и удобный сайт на свете
<?endif;?>
Расшифровка:
<Если пользователь авторизован>
— Здраствуйте<br/>
< Имя или Логин (если нет имени) ><br/>
картинка баннер
<иначе>
У нас самый лучший и удобный сайт на свете
<?endif;?>
Таким же образом вы можете комбинировать или использовать методы класса CUser, все они освещены в документации по Битрикс, во многих из них есть "живые" примеры использования
Например, вывести в любом месте сайта аватарку пользователя можно вот так:
<?
if ($USER->IsAuthorized()) //Если пользователь авторизован
{
$rsUser = CUser::GetByID($USER->GetID()); //$USER->GetID() - получаем ID авторизованного пользователя и сразу же его поля
$arUser = $rsUser->Fetch();
$arResult["PERSONAL_PHOTO_HTML"] = CFile::ShowImage($arUser["PERSONAL_PHOTO"], 150, 150, "border=0", "", true); //$arUser["PERSONAL_PHOTO"] - тут находится id аватарки, здесь мы получим HTML-код для вывода нужного изображения
}
?>
<?=$arResult["PERSONAL_PHOTO_HTML"]?>
Успехов.

Код |
---|
<? $arGroups = CUser::GetUserGroup($USER->GetID()); for ($i=0; $i < count($arGroups); $i++) if ($arGroups[$i] == 4): ?> текст или чего там собрались показывать <?endif;?> |
а то что то не получилось разобраться с BACKURL.

Цитата |
---|
Nikita Androsov написал: через этот метод также можно сделать перенаправление на нужную страницу после успешной авторизации ?) а то что то не получилось разобраться с BACKURL. |
Код |
---|
<?if(CUser::IsAuthorized()){ header('Location: /'); }else{?> Вызываем компонент авторизации <?}?> |
Цитата | ||||
---|---|---|---|---|
Михаил Базаров пишет:
|

Цитата |
---|
Nikita Androsov написал А можно как-то добавить условие, допустим пользователь авторизован и пренадлежит к группе с таким-то ID {что то выводим} иначе { выводим другое} ?? |
Код |
---|
<? $arGroups = CUser::GetUserGroup($USER->GetID()); for ($i=0; $i < count($arGroups); $i++) if ($arGroups[$i] == 4): //Если текущий пользователь из 4-ой группы ?> текст или чего там собрались показывать <?endif;?> |
Проверять на авторизацию не обязательно (лишний запрос на ровном месте)