2016-10-10 12 views
0

Я пытаюсь настроить сообщения об ошибках клиента для разных групп пользователей в Joomla 3.6. Мы заблокировали контент на интерфейсе нашего сайта, в настоящее время существует общее сообщение, в котором пользователю предлагается войти в систему, чтобы увидеть его, однако мы недавно скорректировали наши группы пользователей для создания нескольких уровней доступа, поэтому даже после входа в систему все еще может быть быть довольным, пользователь не может видеть. В таких случаях мне нужно иметь возможность показывать сообщение, специфичное для этой группы пользователей, а не общее «пожалуйста, войдите».Сообщения об ошибках Joomla для конкретной группы пользователей

Я ранее использовал языковые переопределения для пользовательских сообщений, но нет опции, которую я нашел, чтобы она показывалась определенным группам. Я не очень много знаю о коде, и Google не обнаружил никаких существующих ответов для этого.

ответ

0

Это может быть что-то, чтобы вы собираетесь:

$groups = JUserHelper::getUserGroups((int) $user->user_id); 

if(in_array(8, $groups)) 
{ 

    $level = 'admin'; 

} elseif (in_array(4, $groups)) { 

    $level = 'globalmoderator'; 

} elseif (in_array(3, $groups)) { 

    $level = 'moderator'; 

} elseif (in_array(2, $groups)) { 

    $level = 'user'; 

} else { 

    $level = 'guest'; 

} 
+0

Спасибо! Где я могу это применить? –

+0

Вы можете использовать его в своем файле переопределения шаблона –

0

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

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

Вы можете сделать то же самое для любого другого события Joomla, например onUserLogout, onUserLoginFailure и т. Д. Есть много событий на выбор.

Что касается сообщений конкретных групп, вы можете добавить свои собственные общие сообщения, подобные этим:

COM_USERS_ERROR_LOGIN_GUEST

COM_USERS_ERROR_LOGIN_REGISTERED

COM_USERS_ERROR_LOGIN_ADMIN

Тогда вы просто «COM_USERS_ERROR_LOGIN_ "и добавьте имя группы (или идентификатор, когда язык не-английский). Вот и все.

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

0

Старайтесь использовать статьи для сообщений и фильтровать их с разрешениями для групп пользователей.

+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^