Рекомендуем

Скидки до 30% на все темы и подписки... Никаких уловок или обмана Подписка на GavickPro включает в себя полный доступ к шаблонам для Joomla и WordPress, без каких-либо...

Далее...

Elegant Icon Font - 310 великолепных иконок... ElegantThemes создали поистине самый красивый, элегантный и полный набор иконок. Набор предлагается в виде веб шрифта,...

Далее...

JA Fubix адаптивный шаблон для Joomla... JA Fubix - апрельский шаблон от JoomlArt. Отлично подходящий для сайтов с тематикой спортивных новостей использующих...

Далее...

T3 Framework от JoomlArt О фреймворке Фреймворк T3 заслужено считается одним из самых популярных шаблонных фреймворков для Joomla. Все шаблоны...

Далее...

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

Далее...

  • Prev
  • Next

Добавляем свое меню в «Панели управления» Joomla. Часть 4. Убираем «лишние» пункты меню

1

Категории: Joomla, Общие вопросы программирования в Joomla

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

Во третьей части Добавляем свое меню в «Панели управления» Joomla. Часть 3. Локализация и выключенное меню мы разобрались, как пользоваться языковыми файлами и, как добавить пункт к выключенному меню.

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

Давай для простоты объяснения, определимся, что для всех групп пользователей кроме группы «Супер-пользователи» должны быть доступны: из меню «Сайт» – пункты «Панель управления», «Мой профиль», «Выйти», меню «Материалы» – полностью, меню «Мое меню» – полностью и меню «Справка» – полностью. Практически такой набор пунктов меню мы получим, если у пользователя будет группа «Менеджер». За исключением одного но, там не нужен пункт меню «Компоненты» которое включено для этой группы.
Ни и теперь, сформулировав задачу мы снова обратимся файлу формирования включенного меню default_enabled.php. Так хотелось опять полезть в дебри кода и быстро все исправить, но в Joomla мы можем управлять правами группы и, все, что нам необходимо – это просто запретить использовать расширения находящиеся в пункте меню «Компоненты».

Рассмотри на примере компонента «Баннеры». Заходим в «Менеджер баннеров»: Меню > Компоненты > Баннеры:

В правом верхнем меню выбираем «Настройки», в всплывающем окне «Настройки менеджера баннеров» выбираем закладку «Права» и выбираем группу «Менеджеры»:
Настройки менеджера баннеров
Для всех действий выбираем «Запрещено», сохраняемся. Вот и все для всех пользователей группы «Менеджер» компонент «Баннеры» не доступен. Проделав такую операцию со всеми компонентами, расположенными в пункте меню «Компоненты» мы сможем избавиться и от самого пункта «Компоненты», Если в нем не будет подпунктов, то он просто не будет отображаться.

Но, все таки существуют задачи, в которых может понадобиться правка default_enabled.php. Например, можно захотеть дать доступ к компоненту «Баннеры», но при этом убрать пункт меню «Компоненты». В данной ситуации мы не можем запретить доступ к компоненту «Баннеры», следовательно пункт «Компоненты» будет отображаться. Для решения этой задачи, найдем в файле формирования меню следующие строки:

//
// Components Submenu
//
// Get the authorised components and sub-menus.
$components = ModMenuHelper::getComponents( true );
// Check if there are any components, otherwise, don't render the menu
if ($components)
{

В этом куске кода, в 5 строке, проверяется, есть ли компоненты для вывода и если есть, то дальше идет формирование пункта «Компоненты». Нам нужно отключить формирование, если пользователь принадлежит группе «Менеджеры». В «Менеджер пользователей: Группы пользователей» на нужно посмотреть ID этой группы – он равен 6. Получить список групп пользователя можно так: $user->get('groups') – это будет массив со всеми группами, к которым принадлежит пользователь. И теперь мы можем изменить приведенный выше код, чтобы для группы «Менеджеры» пункт меню «Компоненты» не выводился:, исправляем 7 строку на:

if ($components and !in_array(6, $user->get('groups')))

Вообще, данный код некорректен с логической точки зрения, потому, что если пользователь будет принадлежать помимо группы «Менеджеры» еще и к группе «Администратор», то у него тоже отключится вывод формирование пункта «Компоненты». Но, как иллюстрацию применения такого подхода этим можно пренебречь. Вообще для решения подобной задачи можно было пойти от противного не запретить какой-то группе, а разрешить определенным группам. В нашем случае это бы выглядело так: разрешить пользователям из групп «Супер-пользователи» (ID=8) и «Администраторы» (ID=7) показывать пункт меню «Компоненты». И соответственно строка 7 была бы такой:

if ($components and (in_array(7, $user->get('groups')) or in_array(8, $user->get('groups'))))

или такой

if ($components and !empty(array_intersect(array(7,8), $user->get('groups'))))

Предыдущая запись:

Следующая запись:


Комментариев (1)

[…] Добавляем свое меню в «Панели… Хотите сделать более удобное меню в Панели управления Joomla? Нет ничего проще, несколько простых шагов и сможете… […]

Добавить комментарий

Professional Responsive Joomla Templates