Если пользователь авторизован то... API Битрикс

С октября 2020 методы CUser::IsAuthorized и CUser::GetID - являются устаревшими и больше не поддерживаются

Достаточно часто, при создании сайта на битрикс нужно вывести в шаблон или компонент, некую информацию, доступную только для авторизованного пользователя. Например поздравить его (пользователя) со входом или поблагодарить за возвращение. В самом простом случае вывести кнопку "Выйти". Для этого можно воспользоваться API Битрикс и классом CUser - класс для работы с пользователями.

Используем метод IsAuthorized- авторизован ли пользователь

Использую простой пример. Задача: если пользователь авторизован нам нужно с ним поздороваться и показать простой баннер-картинку, если не авторизован показываем, в этом же месте, простой текст. Для этого в нужном месте шаблона сайта (там где предполагается показывать баннер) вставляем вот такую конструкцию:

<?if($USER->IsAuthorized()):?>  <i>&mdash; Здраствуйте</i><br/>
<?=(CUser::GetFirstName())?CUser::GetFirstName():CUser::GetLogin()?><br/>
<img src="/путь_к_баннеру.png"/>
<?else:?>
У нас самый лучший и удобный сайт на свете
<?endif;?>  

Расшифровка:

<Если пользователь авторизован>  &mdash; Здраствуйте<br/>
< Имя или Логин (если нет имени) ><br/>
картинка баннер
<иначе>
У нас самый лучший и удобный сайт на свете
<?endif;?>
 

Таким же образом вы можете комбинировать или использовать методы класса CUser, все они освещены в документации по Битрикс, во многих из них есть "живые" примеры использования 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"]?>

Успехов.

Просмотров: 19441 | Комментариев: 4
Внимание! все сообщения проходят премодерацию. Ваше сообщение появится после проверки
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений
Загрузить файл
Нажимая кнопку "Отправить", Вы принимаете условия
Политики конфиденциальности и обработки персональных данных
Михаил Базаров
Если нужно показать что-то определенной группе пользователей. Например группа "Контент-редакторы" с ID = 4
Код
<?
   $arGroups = CUser::GetUserGroup($USER->GetID());
   for ($i=0; $i < count($arGroups); $i++) if ($arGroups[$i] == 4):
?> 
 
 текст или чего там собрались показывать 
 
<?endif;?>  
Имя Цитировать
Nikita Androsov
через этот метод также можно сделать перенаправление на нужную страницу после успешной авторизации ?)
а то что то не получилось разобраться с BACKURL.  
Имя Цитировать
Михаил Базаров
Цитата
Nikita Androsov написал:
через этот метод также можно сделать перенаправление на нужную страницу после успешной авторизации ?)
а то что то не получилось разобраться с BACKURL.  
Да, все просто)
Код
<?if(CUser::IsAuthorized()){
     header('Location: /');
}else{?> 
     Вызываем компонент авторизации
<?}?>  
Имя Цитировать
Nikita Androsov
Цитата
Михаил Базаров пишет:
Цитата
Nikita Androsov написал:
через этот метод также можно сделать перенаправление на нужную страницу после успешной авторизации ?)
а то что то не получилось разобраться с BACKURL.
Да, все просто)
Код
 <?if(CUser::IsAuthorized()){
     header('Location: /');
}else{?> 
     Вызываем компонент авторизации
<?}?>  
 
А можно как-то добавить условие, допустим пользователь авторизован и пренадлежит к группе с таким-то ID {что то выводим} иначе { выводим другое} ??  
Имя Цитировать
Михаил Базаров
Цитата
Nikita Androsov написал

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

Проверять на авторизацию не обязательно (лишний запрос на ровном месте)
Имя Цитировать

Цены на разработку сайта или приложения

Что бы узнать точные стоимость и срок разработки:
достаточно, как можно подробнее, заполнить опросник и выслать на электронную почту info@bazarow.ru.
После ознакомления, смогу задать уточняющие вопросы и оценить.

В стоимость разработки уже включены и не требуют доплат:
  • Лицензия на необходимую редакцию 1С-Битрикс: Управление сайтом и лицензии на дополнительные модули, если требуются для конкретного проекта.
  • Применение технологии композитный сайт: Оптимизация скорости работы проекта под нагрузками.
  • Один год, бесплатной, технической поддержки от 1С-Битрикс
Интернет-магазин от 250 000 рублей
Полно-комплексная разработка интернет-магазина любой сложности. Интеграция с 1С, службами доставки и оплаты. Внутренняя СЕО оптимизация перед запуском.
Сайт компании от 200 000 рублей
Сайт с каталогом товаров или услуг, без функционала магазина. Включает формы обратной связи внутри карточек каталога. Любое количество статичных и динамичных разделов.
Инфоресурс от 200 000 рублей
Портал или доска объявлений с большим количеством разделов. Возможность включения форумов, блогов, регистрации пользователей, внутри сайтовая социальная сеть.
Сайт на готовом решении от 40 000 рублей
Подбор решения из более 200-от готовых сайтов, в соответствии с тематикой бизнеса. Запуск сайта на сервере или хостинге, со всеми настройками. Не большие доработки под задачу.
Мобильное приложение от 200 000 рублей

Кроме сайтов, занимаюсь разработкой мобильных приложений на технологии Apache Cordova. Это полноценные приложения, которые публикуются и распостранияются через официальные магазины GooglePlay и AppStore

  • Полная интеграция с базой данных, основного сайта.
  • Вывод каталогов продукции и услуг, прямо в приложении.
  • Персональные разделы пользователей с историей заказов.
  • Прямой доступ к устройству: GPS, камера, звонки и медиабиблиотека

attention