У меня есть следующий код, который определяет, является ли пользователь членом определенной группы пользователей 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
}
?>
Большое спасибо заранее, если кто-нибудь может помочь !!!
Может быть, это будет работать:
<?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; ?>
Попробуй 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>