自定义代码的小问题,以检测用户是否是特定用户组的成员
我有以下代码,它检测用户是否是某个Joomla用户组的成员,并向用户显示相关链接。自定义代码的小问题,以检测用户是否是特定用户组的成员
这对1个用户组非常有用,但是当用户是多于1个用户组的成员时,对于用户组成员的用户组数量重复按钮。
因此,例如,如果用户是4个用户组的成员,则按钮将显示4次(如果用户是用户组的成员,例如'Usergroup001',则显示的4个按钮中的1个将是'开始“按钮(按照循环))。
像按钮一样仅显示一次,无论用户是多少个用户组成员。
<?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>
嗨,你的答复/帮助非常感谢,但偏偏按钮仍然显示(量用户是用户组的成员的次数(如果用户是4个用户组成员的按钮会显示4次)..如果用户是上午,您的代码也不会提供正确的“开始”按钮'Usergroup001'的余烬。为了澄清你的修改代码,无论用户是否是用户组的成员,所有按钮都是'注册'。对不起这个坏消息,非常感谢你帮助!!!!!!!!!!!!!!!!!!!!!!!! :) – jimmywiddle
@jimmywiddle现在试试 – mwweb
嗨,是的,我确实发现了缺失的左括号并添加了它,但很抱歉地说,我担心它没有工作,再次非常感谢您的时间和帮助! – jimmywiddle
作品完美,非常感谢!!!!!!!!! – jimmywiddle
欢迎您!请标记为答复;-) –
已经完成,再次感谢!我想知道,因为我需要在一页中运行这段代码几次,即时通讯认为这将是过度的资源来运行数据库查询每次,即时尝试切断查询,但没有运气到目前为止,再次任何帮助将不胜感激! :) 再次感谢! – jimmywiddle