Меню

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

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

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

Применение метода IsAuthorized: проверка авторизации пользователя

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

if($USER->IsAuthorized()) {
   echo 'Привет ' . CUser::GetFirstName())?CUser::GetFirstName():CUser::GetLogin()
}

Вы можете комбинировать или использовать методы класса CUser, все они описаны в документации по Битрикс, где также представлены примеры использования. CUser в документации

Например, чтобы вывести аватарку пользователя в любом месте сайта, используйте следующий код:

if ($USER->IsAuthorized()) // Если пользователь авторизован
{
 $rsUser = CUser::GetByID($USER->GetID()); // Получаем ID авторизованного пользователя и его поля
 $arUser = $rsUser->Fetch();
 $arResult["PERSONAL_PHOTO_HTML"] = CFile::ShowImage($arUser["PERSONAL_PHOTO"], 150, 150, "border=0", "", true); // Получаем HTML-код для вывода изображения
}
echo $arResult["PERSONAL_PHOTO_HTML"];

Другой пример: если вы хотите показать дату последнего входа пользователя, это можно сделать так:

if ($USER->IsAuthorized()) // Если пользователь авторизован
{
$rsUser = CUser::GetByID($USER->GetID());
$arUser = $rsUser->Fetch();
echo "Последний вход: " . $arUser["LAST_LOGIN"]; // Выводим дату последнего входа
}
Михаил Базаров 18.12.2013
Если нужно показать что-то определенной группе пользователей. Например группа "Контент-редакторы" с ID = 4
Код
<?
   $arGroups = CUser::GetUserGroup($USER->GetID());
   for ($i=0; $i < count($arGroups); $i++) if ($arGroups[$i] == 4):
?> 
 
 текст или чего там собрались показывать 
 
<?endif;?>  
Петр 31.05.2024
Спасибо за примеры!

Как выделить авторизованного пользователя в списке?
Например, есть список пользователей привязанных к элементу инфоблока (компонент Новости), мы их выводим, получаем все нужные поля, а как указать какой из этих пользователей сейчас на сайте (Онлайн)? Например к имени добавить слово Онлайн.

Нигде не нашел подобных примеров.
Михаил Базаров 01.06.2024
C помощью метода CUser::IsOnLine
Код
if (CUser::IsOnLine(СЮДА_ID_ПОЛЬЗОВАТЕЛЯ)) {
    echo 'На сайте';
} else {
   echo 'Не на сайте';
}

Стоимость и сроки разработки сайтов и приложений

Окончательная стоимость и сроки разработки сайта формируются после обсуждения деталей на этапе заказа. Как правило, они редко выходят за обозначенные ниже рамки.

Интернет магазин: разработка с нуля от 400 000 руб.
от 5-ти недель

Cоздание интернет-магазина на 1С-Битрикс. Разработка с нуля, оптимизация кода под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Интернет-магазин на готовом решении от 100 000 руб.
от 7-ми дней

Готовое решение — вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Запускается на одном из 200-та (на ваш выбор) готовых решений.

Мобильное приложение от 400 000 руб.
от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Опросник на разработку. После ознакомления, задам уточняющие вопросы и оценю проект по стоимости и срокам разработки.