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

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

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

Достаточно часто, при создании сайта на битрикс нужно вывести в шаблон или компонент, некую информацию, доступную только для авторизованного пользователя. Например поздравить его (пользователя) со входом или поблагодарить за возвращение. В самом простом случае вывести кнопку "Выйти". Для этого можно воспользоваться 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"]?> 

Успехов.

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

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

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

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

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

Вывод даты создания элемента в правильном формате в Битрикс Просмотров: 21619 Если нужно вывести дату создания новости, статьи или товара в каталоге, в принципе любого ... Ссылка и название раздела в списке новостей Битрикс Просмотров: 10491 Если нужно вывести название раздела инфоблока в котором находится конкретный элемент/новос... Определить местоположение пользователя и показать магазины поблизости... Просмотров: 1143 Задача: в мобильном приложении, которое открывает сайт на 1С-Битрикс внутри себя, нужно оп... Дополнительные картинки в новостях Битрикс, почти фотогалерея. Просмотров: 48000 Частенько стоит задача, по мимо стандартных "Картинка для анонса" и "Деталь... Если пользователь авторизован то... API Битрикс Просмотров: 22204 Достаточно часто, при создании сайта на битрикс нужно вывести в шаблон или компонент, неку... Скопировать номер телефона из поля пользователя в телефон для регистр... Просмотров: 1593 Задача, на конкретном сайте: раньше все пользователи регистрировались по стандартному режи... AJAX корзина с отправкой количества из раздела каталога Просмотров: 19095 Столкнулся с задачкой: нужно было на одном сайте реализовать интерактивный прайс лист. При... Простые калькуляторы в карточке товара каталога на Битрикс Просмотров: 15368 На одном из создаваемых сайтов было необходимо сделать небольшой калькулятор и предварител... Вывести имя пользователя добавившего элемент инфоблока в Битрикс Просмотров: 16010 Иногда, необходимо вывести имя пользователя добавившего элемент инфоблока. Например, автор... Если товар в корзине, поменять кнопку на "В корзине" в новом шаблоне ... Просмотров: 1020 Ранее я уже делал заметку на эту тему. Тогда, мы меняли значение input-а при добавлении то... Сравнение двух типов цен для иммитации системы скидок, в Битрикс Просмотров: 5839 Встала задачка, иммититровать систему скидок в интернет магазине на Битрикс. Из 1С-УТ, на ... Привязка к разделам в компоненте "Добавления элементов пользователем" Просмотров: 12032 В системе управления 1С Битрикс есть компонент "Форма добавления / редактирования" - котор... Адаптивное гамбургер меню для битрикс Просмотров: 14424 Заметка коротенькая, но решил оставить ее - так как самому часто нужно нечто подобное. В а... Фотогалерея на базе компонента новостей, с fancybox. Просмотров: 1512 Это заметка обновление к очень старой, уже имеющейся на сайте. Сделаем что-то типа фотогал... Получить все товары из всех заказов пользователя. История купленных т... Просмотров: 1344 Задача: нужно создать раздел, в персональном разделе пользователя, с историей всех купленн... Как подобрать редакцию Битрикс под задачи Просмотров: 6320 Последнее время, все чаще, при общении с заказчиками, сталкиваюсь с вопросом "— К... Подключение мобильной версии шаблона Битрикс сайта, с автопереключени... Просмотров: 42247 Предпочитаю, что бы сайт не грузил кучу скриптов и стилей. При загрузке адаптивного шаблон... Если предложение SKU в корзине, поменять кнопку добавления на "В корз... Просмотров: 3112 Данная заметка является дополнением к ранее опубликованной: Есл... Если папка то применяем...в Битрикс Просмотров: 29176 Бывает, стоит задача применить какой-либо стиль или вывести конкретный кусочек кода для ди... Вывести список всех пользователей с необходимой информацией Просмотров: 24030 Если нужно, на какой-либо странице сайта, вывести всех пользователей из группы "Зарегистир...