自定义代码的小问题,以检测用户是否是特定用户组的成员

问题描述:

我有以下代码,它检测用户是否是某个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; ?> 
+0

作品完美,非常感谢!!!!!!!!! – jimmywiddle

+0

欢迎您!请标记为答复;-) –

+0

已经完成,再次感谢!我想知道,因为我需要在一页中运行这段代码几次,即时通讯认为这将是过度的资源来运行数据库查询每次,即时尝试切断查询,但没有运气到目前为止,再次任何帮助将不胜感激! :) 再次感谢! – jimmywiddle

尝试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

嗨,你的答复/帮助非常感谢,但偏偏按钮仍然显示(量用户是用户组的成员的次数(如果用户是4个用户组成员的按钮会显示4次)..如果用户是上午,您的代码也不会提供正确的“开始”按钮'Usergroup001'的余烬。为了澄清你的修改代码,无论用户是否是用户组的成员,所有按钮都是'注册'。对不起这个坏消息,非常感谢你帮助!!!!!!!!!!!!!!!!!!!!!!!! :) – jimmywiddle

+0

@jimmywiddle现在试试 – mwweb

+0

嗨,是的,我确实发现了缺失的左括号并添加了它,但很抱歉地说,我担心它没有工作,再次非常感谢您的时间和帮助! – jimmywiddle