2017-01-20 11 views
0

У меня есть следующий код, который определяет, является ли пользователь членом определенной группы пользователей Joomla и отображает соответствующую ссылку на пользователя.Небольшая проблема с пользовательским кодом для определения того, является ли пользователь членом определенной группы пользователей

Это отлично подходит для 1 группы пользователей, НО, если пользователь является членом более 1 группы пользователей, кнопки повторяются для количества пользовательских групп, членом которых является пользователь.

Так, если, например, пользователь входит в 4 группы пользователей, кнопка будет отображаться 4 раза (если пользователь является членом группы пользователей, например, «Usergroup001» 1 из 4 отображаемых кнопок будет « Пуск "(в соответствии с циклом)).

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

Может быть, это будет работать:

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

Сделали, еще раз спасибо! Мне было интересно, как мне нужно запускать этот код несколько раз на одной странице, и я думаю, что будет чрезмерным для ресурсов, чтобы каждый раз запускать db-запрос, im пытается вырезать запрос и, но пока не повезло, еще раз любая помощь был бы очень признателен! :) Еще раз спасибо! – 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

Привет, Большое спасибо за Ваш ответ/помощь, хотя Unfortunetly кнопки по-прежнему отображаются (количество раз, когда пользователь является членом группы пользователей (если пользователь входит в 4 пользовательских кнопки, кнопки отображаются 4 раза) .. также ваш код не предоставляет правильную кнопку «Пуск», если пользователь ember из 'Usergroup001'. Чтобы уточнить ваш модифицированный код, все кнопки «Зарегистрироваться», независимо от того, является ли пользователь членом группы пользователей. Извините за плохие новости, и огромное спасибо за попытку помочь !!!!!!!!!!!!!!!!!!!!!!!! :) – jimmywiddle

+0

@jimmywiddle попробуйте сейчас – mwweb

+0

Привет, Да, я заметил отсутствующую закрывающую скобку и добавил ее, но мне жаль, что я боюсь, что это не сработало, еще раз большое спасибо за ваше время и помощь, хотя !!! – jimmywiddle