Задача 1: если пользователь не авторизован, на главной странице вывести поля для авторизации, если авторизован, нормальный вид главной страницы.
Проблемы, связанные с проверкой авторизован пользователь в 1-с битрикс или нет решаются следующим кодом:
<? global $USER; if ($USER->IsAuthorized()){ echo "Ты авторизован!"; }else{ echo "Ты не авторизован!"; } ?>
Функция CUser::IsAuthorized() проверяет авторизован ли посетитель сайта, если да, то возвращает true, иначе false. Может принимать аргумент — ID пользователя.
Решение задачи 1 будет следующим:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? global $USER; if ($USER->IsAuthorized()){ print_r("Добро пожаловать на наш сайт!<br>"); print_r("ID пользователя: ".$USER->GetID()."<br>"); print_r("Логин пользователя: ".$USER->GetLogin()."<br>"); print_r("Имя и фамилия пользователя: ".$USER->GetFullName()."<br>"); }else{?> <?$APPLICATION->IncludeComponent( "bitrix:system.auth.form", ".default", Array( "REGISTER_URL" => "/personal/register.php", "FORGOT_PASSWORD_URL" => "/personal/profile/?forgot_password=yes", "PROFILE_URL" => "/personal/profile/", "SHOW_ERRORS" => "Y" ) ); }?>
Задача 2: показать текст только для авторизованных пользователей на сайте в CMS 1с-Битрикс.
Решение второй задачи будет следующим:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? global $USER; if ($USER->IsAuthorized()) { print_r("Добро пожаловать на наш сайт!<br>"); print_r("Сегодня, вы, авторизованный пользователь, получите огромные скидки!"); }else{ print_r("Добро пожаловать на наш сайт!<br>"); print_r("Сегодня скидок нет."); }?>
Задача 3: если пользователь не авторизован, показывать ему рекламу, если авторизован, то без рекламы.
Делаем аналогично:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? global $USER; if ($USER->IsAuthorized()) { print_r("Добро пожаловать на наш сайт!"); }else{ print_r("Добро пожаловать на наш сайт!<br>"); /*устанавливаем баннеры, либо другие виды рекламы вместо этого комментария */ }?>
Задача 4: показать блок конкретному пользователю.
Показываем для Васи(Его ID — 21), специальное предложение. Будем использовать функцию CUser::GetID(), которая возвращает ID авторизованного пользователя.
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? global $USER; if(($USER->GetID())==21) { /*специальное предложение*/ }?>
Задача 5: показать блок пользователям группы администратор.
Очень полезная функция для разработчиков, если нужно вывести содержимое массива на рабочем сайте: CUser::IsAdmin(). Возвращает true, если вы принадлежите группе админов, иначе false.
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> global $USER; if ($USER->IsAdmin()) echo "Вы администратор!"; ?>
Для успешного освоения движка советую прочитать эту статью.
UPD 28.07.15:
- подправлено решение 4-ой задачи;
- добавлены функции IsAdmin() и GetID().
О! Знакомый блог! :) Работа снова началась. Это радует!
Я брал у них карты летом, все ништяк! Поработали хорошо :)
Проверка принадлежности пользователя к группе:
$GroupID=6;
$arUserGroups = $USER->GetUserGroupArray();
foreach($arUserGroups as $arUg)
{
if($arUg==$GroupID)
{
$arResult[‘isAdmin’]=true;
break;
}
}
Последний пример в статье немного бредовый: он показывает специальное предложение всем, если Вася сейчас на сайте. Но креативно :)
Форму авторизации можно вывести проще.
if(!$USER->IsAuthorized()){
$APPLICATION->AuthForm();
return;
}