2017-01-20 34 views
0

我有以下代碼,它檢測用戶是否是某個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 
} 
?> 

非常感謝,如果任何人都可以幫助!!!

回答

1

也許這將工作:

<?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

0

嘗試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

相關問題