2017-01-20 4 views
0

ユーザーが特定のJoomlaユーザーグループのメンバーであるかどうかを検出し、ユーザーに関連するリンクを表示する次のコードがあります。ユーザーが特定のユーザーグループのメンバーであるかどうかを検出するカスタムコードの小さな問題

これは、1つのユーザーグループには効果的ですが、ユーザーが複数のユーザーグループのメンバである場合、そのボタンはユーザーが所属するユーザーグループの数だけ繰り返されます。

例えば、ユーザーが4つのユーザーグループのメンバーである場合、そのボタンは4回表示されます(ユーザーがユーザーグループのメンバーの場合 'Usergroup001'のように4つのボタンのうち1つは ' (ループごとに)[開始]ボタンをクリックします)。

ユーザーが何人のユーザーグループに属していても、一度表示されるボタンのようなIDは表示されません。

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

in_array試してみてください。

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

もう一度、ありがとう! 1つのページでこのコードを実行する必要があるときに私は疑問に思っていました。毎回dbクエリを実行するためにリソースが過剰になると思っていましたが、クエリを削除しようとしていましたが、大変感謝しています! :) 再度、感謝します! – jimmywiddle

0

多分これが動作します

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

こんにちは、お返事/助けに感謝、unfortunetlyボタンがまだディスプレイ(の量ですが、ユーザーがusergroupのメンバである回数(ユーザーが4人のusergroupsボタンのメンバーである場合、4回表示されます)..また、ユーザーがいる場合、コードは正しいStartボタンを提供しません'Usergroup001'のエバー。変更されたコードを明確にするために、ユーザーがユーザーグループのメンバーであるかどうかにかかわらず、すべてのボタンは「サインアップ」されます。悪いニュースを申し訳ありません、そして、お手伝いをしてくれてありがとう!!!!!!!!!!!!!!!!!!!!!!!! :) – jimmywiddle

+0

@jimmywiddle今すぐお試しください – mwweb

+0

こんにちは、はい、私は行方不明の閉じ括弧を見つけてそれを追加しましたが、私はあなたの時間のために、再び多くのおかげで恐れて、 – jimmywiddle

関連する問題