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

  • 14 Ответов
  • 718 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

meatrich

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

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

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

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

Код: css
.hidebutton {
    display: none;
}

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

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


Благодарю!

*

SmokerMan

Re: Проверка группы пользователя
« Ответ #1 : 01.06.2016, 14:42:14 »
Цитировать
                $user = JFactory::getUser();
                if (in_array('id гурппы', $user->groups)) {
                    //пользователь в группе
                }

*

meatrich

Re: Проверка группы пользователя
« Ответ #2 : 01.06.2016, 15:35:24 »


Благодарю! Вроде бы работает. Буду проверять дальше! Крепкого Вам здоровья!

*

meatrich

Re: Проверка группы пользователя
« Ответ #3 : 01.06.2016, 23:53:18 »

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

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

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

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

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

Благодарю!
« Последнее редактирование: 02.06.2016, 00:21:39 от meatrich »

*

Septdir

  • *******
  • 2099
  • [+]106 / [-]0
  • JoomlaZen
Re: Проверка группы пользователя
« Ответ #4 : 02.06.2016, 02: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, 02:21:56 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

robert

Re: Проверка группы пользователя
« Ответ #5 : 02.06.2016, 03:07:26 »
Код
$user_id = JFactory::getUser()->id;
$user = JFactory::getUser($user_id);
« Последнее редактирование: 02.06.2016, 03:32:23 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

meatrich

Re: Проверка группы пользователя
« Ответ #6 : 02.06.2016, 11:36:04 »


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

Пожалуйста, объясните, что здесь не так?

*

Wertos

Re: Проверка группы пользователя
« Ответ #7 : 02.06.2016, 11:37:51 »
Здравствуйте robert!

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

*

meatrich

Re: Проверка группы пользователя
« Ответ #8 : 02.06.2016, 12:01:36 »
Код: php
$user_id = JFactory::getUser()->id;
$user = JFactory::getUser($user_id);
=
Код: php
$user = JFactory::getUser();

Понял. Спасибо!

*

meatrich

Re: Проверка группы пользователя
« Ответ #9 : 02.06.2016, 12: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

  • *******
  • 2099
  • [+]106 / [-]0
  • JoomlaZen
Re: Проверка группы пользователя
« Ответ #10 : 02.06.2016, 12:36:22 »
Нужна ли еще какая-либо проверка?
Если работает то не нужна.

И правда видать из проверки конкретного юзера остался, а может просто тупанул
« Последнее редактирование: 02.06.2016, 13:36:16 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

meatrich

Re: Проверка группы пользователя
« Ответ #11 : 02.06.2016, 12:46:10 »
Если работает то не нужна.

Благодарю!

*

Ishti39

Re: Проверка группы пользователя
« Ответ #12 : 11.08.2017, 12:24:26 »

Скажите, если несколько групп, то id как писать, через запятую?
Учиться учиться и ещё раз учиться

*

Septdir

  • *******
  • 2099
  • [+]106 / [-]0
  • JoomlaZen
Re: Проверка группы пользователя
« Ответ #13 : 11.08.2017, 12:30:21 »
Скажите, если несколько групп, то id как писать, через запятую?
http://php.net/manual/ru/function.array-intersect.php
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

Ishti39

Re: Проверка группы пользователя
« Ответ #14 : 11.08.2017, 13:06:09 »
http://php.net/manual/ru/function.array-intersect.php
Я в рнр не сильно понимаю, особенно как написать массивы, я этот код вставил:
Спойлер
[свернуть]
вместо id гурппы вставил 10, это id группы, а как ещё добавить 7 и 8 ID групп?
Учиться учиться и ещё раз учиться