Небольшая проблема с пользовательским кодом для определения, является ли пользователь членом определенной группы пользователей

У меня есть следующий код, который определяет, является ли пользователь членом определенной группы пользователей Joomla, и отображает соответствующую ссылку для пользователя.

Это прекрасно работает для 1 группы пользователей, НО, когда пользователь является участником более 1 группы, кнопки повторяются для количества групп пользователей, членом которых он является.

Так, если, например, пользователь является членом 4 групп пользователей, кнопка будет отображаться 4 раза (если пользователь является членом группы пользователей, например, «Usergroup001» 1 из 4 отображаемых кнопок будет кнопкой «Пуск» ( согласно петле)).

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

<?php
$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
foreach($user_->groups as $group){
$query  = 'SELECT title FROM #__usergroups';
$query .= ' WHERE id = ' . $group;
$db->setQuery( $query );
$grp = $db->loadResult();

if ($grp=='Usergroup001') : ?>
<a href="/start">Start</a>

<?php else : ?>
<a href="/sign-up">Sign up to Usergroup 001</a>

<?php endif; ?>
<?php
}
?>

Большое спасибо заранее, если кто-нибудь может помочь !!!

0

Решение

Может быть, это будет работать:

<?php
$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
$isMember = false;
foreach($user_->groups as $group){
$query  = 'SELECT title FROM #__usergroups';
$query .= ' WHERE id = ' . $group;
$db->setQuery( $query );
$grp = $db->loadResult();
if ($grp=='Usergroup001') {
$isMember = true;
break;
}
}
if ($isMember ) : ?>
<a href="/start">Start</a>
<?php else : ?>
<a href="/sign-up">Sign up to Usergroup 001</a>
<?php endif; ?>
1

Другие решения

Попробуй in_array

http://php.net/manual/en/function.in-array.php

if (in_array($grp,'Usergroup001')) : ?>
<a href="/start">Start</a>

<?php else : ?>
<a href="/sign-up">Sign up to Usergroup 001</a>
0

По вопросам рекламы [email protected]