Форум русской поддержки Joomla!® CMS
05.12.2016, 18:35:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Проверка группы пользователя

 (Прочитано 294 раз)
0 Пользователей и 1 Гость смотрят эту тему.
meatrich
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« : 01.06.2016, 13:25:35 »

Здравствуйте!

Нужно, чтобы для пользователя, принадлежащего к определенной группе на странице ссылка скрывалась, для всех остальных групп пользователей - отображалсаь.

Пробовал разные варианты методом тыка:

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

Код
.hidebutton {
   display: none;
}

Код
<div class="<?php $user = JFactory::getUser();
if($user->groups = Х) {
echo "
hidebutton";
} else {
echo "
";
}
?>"
><a href="#">link</a></div>

где "Х" - id группы пользователя


Благодарю!
Записан
SmokerMan
Профи
********

Репутация: +694/-25
Offline Offline

Пол: Мужской
Сообщений: 5224



« Ответ #1 : 01.06.2016, 13:42:14 »

Цитировать
                $user = JFactory::getUser();
                if (in_array('id гурппы', $user->groups)) {
                    //пользователь в группе
                }
Записан
meatrich
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #2 : 01.06.2016, 14:35:24 »



Благодарю! Вроде бы работает. Буду проверять дальше! Крепкого Вам здоровья!
Записан
meatrich
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #3 : 01.06.2016, 22:53:18 »


Пожалуйста, можно еще вопрос:

Как я могу указать вместо номера id группы указать его переменный параметр?

Я пробовал несколько вариантов, но либо функция не работает, либо белый экран. Пожалуйста, посмотрите, что я делаю не так:

Код
<?php $user = JFactory::getUser();if (in_array(echo $field->value[0], $user->groups)) {echo 'text1';} else {echo 'text2';} ?>

где $field->value[0] - id группы

Благодарю!
« Последнее редактирование: 01.06.2016, 23:21:39 от meatrich » Записан
Septdir
Живу я здесь
******

Репутация: +35/-3
Offline Offline

Пол: Мужской
Сообщений: 837


Skype: septdir


« Ответ #4 : 02.06.2016, 01:16:27 »

Благодарю!
Вот старый код давно написал юзаю если надо.
Код:
$user_id = JFactory::getUser()->id;
$user = JFactory::getUser($user_id);
$access_levels = JAccess::getAuthorisedViewLevels($user_id);
$user_groups = $user->get('groups');
if ($user()->guest) {$user_guest = true;}
if (in_array(10, $user_groups)) {$user_author = true;}
if (in_array(6, $access_levels)) {$user_admin = true;}

А под ваши нужды
Код:
$user_id = JFactory::getUser()->id;
$user = JFactory::getUser($user_id);
$user_groups = $user->get('groups');
$check_gorup =  $field->value[0]; // ID необходимой группы
if (in_array($check_gorup, $user_groups)) {$user_basic = true;}

Ошибка у вас в лишнее echo  должно быть так
Код:
<?php
$user = JFactory::getUser();
if (in_array($field->value[0], $user->groups)) {echo 'text1';}
else {echo 'text2';}
?>
Пользуйтесь нормальный редактором с подсветкой и проверкой и таких проблем не будет
« Последнее редактирование: 02.06.2016, 01:21:56 от Septdir » Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3581


« Ответ #5 : 02.06.2016, 02:07:26 »

Код:
$user_id = JFactory::getUser()->id;
$user = JFactory::getUser($user_id);
« Последнее редактирование: 02.06.2016, 02:32:23 от robert » Записан
meatrich
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #6 : 02.06.2016, 10:36:04 »



Здравствуйте robert!

Пожалуйста, объясните, что здесь не так?
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #7 : 02.06.2016, 10:37:51 »

Здравствуйте robert!

Пожалуйста, объясните, что здесь не так?
Код
$user_id = JFactory::getUser()->id;
$user = JFactory::getUser($user_id);
=
Код
$user = JFactory::getUser();
Записан
meatrich
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #8 : 02.06.2016, 11:01:36 »

Код
$user_id = JFactory::getUser()->id;
$user = JFactory::getUser($user_id);
=
Код
$user = JFactory::getUser();

Понял. Спасибо!
Записан
meatrich
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #9 : 02.06.2016, 11:09:04 »


А под ваши нужды
Код:
$user_id = JFactory::getUser()->id;
$user = JFactory::getUser($user_id);
$user_groups = $user->get('groups');
$check_gorup =  $field->value[0]; // ID необходимой группы
if (in_array($check_gorup, $user_groups)) {$user_basic = true;}

Ошибка у вас в лишнее echo  должно быть так
Код:
<?php
$user = JFactory::getUser();
if (in_array($field->value[0], $user->groups)) {echo 'text1';}
else {echo 'text2';}
?>
Пользуйтесь нормальный редактором с подсветкой и проверкой и таких проблем не будет

Спасибо за ответ и помощь!

вот это у меня работает:
Код:
<?php
$user = JFactory::getUser();
if (in_array($field->value[0], $user->groups)) {echo 'text1';}
else {echo 'text2';}
?>
Скажите, разве мне этого недостаточно? Обязательно ли нужен следующий код?

Вот этот:
Код:
$user_id = JFactory::getUser()->id;
$user = JFactory::getUser($user_id);
$user_groups = $user->get('groups');
$check_gorup =  $field->value[0]; // ID необходимой группы
if (in_array($check_gorup, $user_groups)) {$user_basic = true;}

Id группы я устанавливаю в определенном поле для каждого случая (каждой страницы). Если я состою в нескольких группах, то код:
Код:
<?php
$user = JFactory::getUser();
if (in_array($field->value[0], $user->groups)) {echo 'text1';}
else {echo 'text2';}
?>
работает исправно.

Нужна ли еще какая-либо проверка?
Записан
Septdir
Живу я здесь
******

Репутация: +35/-3
Offline Offline

Пол: Мужской
Сообщений: 837


Skype: septdir


« Ответ #10 : 02.06.2016, 11:36:22 »

Нужна ли еще какая-либо проверка?
Если работает то не нужна.

И правда видать из проверки конкретного юзера остался, а может просто тупанул
« Последнее редактирование: 02.06.2016, 12:36:16 от Septdir » Записан
meatrich
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #11 : 02.06.2016, 11:46:10 »

Если работает то не нужна.

Благодарю!
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet