Main Page
20 | 09 | 2023

Joomla Есть ситуации, когда пользователю с меньшими правами доступа нужно показать то, что не нужно более «продвинутым». Это может быть модуль, материал, кнопка, меню или отдельный пункт меню «только для незарегистрированных». В сети есть много способов, но все они сложны, требуют серьезных знаний, что значительно снижает ценность использования CMS(систем управления сайтами), предполагающих возможность «лепить сайты из готовых кирпичиков» простыми смертными, слабо знакомыми с HTML, CSS и уж тем более с PHP. Предлагаю простой, штатный метод Joomla!, работающий на всех версиях, начиная с 1.6.

По моему в одной из книг о Joomla! я видел предлагаемый мною способ. Но тогда у меня ничего не вышло. Потом нашел что-то похожее в статье на одном из сайтов – с тем же эффектом. Сейчас я уже знаю что было упущено в статье и возможно не понял (или тоже упущено) в книге. А пока я этого не знал, задавал и задавал вопросы на разных сайтах Гуру-Вебстроителей, зарабатывающих на изготовлении сайтов, и нигде не получал ответа на вопрос «как ШТАТНЫМИ средствами разрешить доступ только одной и только младшей группе пользователей?». Даже на официальном форуме русской поддержки ответы сложные, в том числе сводящиеся к тому, чтобы в шаблоне прописывать на PHP какие-то процедуры поиска/вызова/переключения. С моим уровнем знаний за это браться было страшно, для меня даже «куда вставить готовое» вопрос непростой. Поэтому пришлось «рыть землю» и думать. Кто пытался решить этот вопрос, тот понимает о чем я говорю и сейчас должен оценить простоту и быстроту предлагаемого способа. Больше всего места займут картинки для тех, кто только начинает изучать CMSJoomla!, так как непосредственно для описания метода достаточно было бы просто написать несколько строчек текста. Но я постараюсь оформить так, чтобы не осталось ни одного недопонявшего.

Думаю, что этот метод может быть примёнён не только на Joomla, а и на других CMS.


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

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

 Внимание! После написания этой статьи мне пришлось переделать и вход/выход, и кое-что ещё. Поэтому посмотреть как работает изложенный принцип вам придется в другом месте - это табы/вкладки "Привет, Гость" и "Не всё нашли?" центрального блока вверху между боковыми колонками. Именно их вы не увидите если зарегистрируетесь и войдете на сайт авторизованным.

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

1. Создаём группу незарегистрированных пользователей

Unreg1

<<< В Панели управления идем в «Пользователи (выпадающее) / Группы / Создать группу».

Вписываем название группы, например «Unregister». Она входит в группу «Все» (на английском «Public») – это оставляем как есть.

Жмём на «Сохранить и закрыть»

Unreg2

<<< и оказываемся на вкладке «Группы пользователей» и видим созданную нами группу «Unregister» первой в списке сразу после группы «Все» (отметил её птичкой).

Эта группа унаследовала от группы «Все» минимальные права доступа. То есть пользователи этой группы ничем не отличаются от незарегистрированных пользователей, кроме того, что у неё не будет наследников - весь фокус именно в этом.

Следующий шаг выполняем в этом же окне Менеджера пользователей.

 

2. Главный шаг: создание и назначение нового уровня доступа для нашей группы

 

Unreg41

Справа вверху того же окна жмем «Настройки» и во всплывающем окне (рис. слева) идём в первую вкладку - это вкладка «Компонент».

В появившемся всплывающем окне пропускаем группу «Для регистрирующихся пользователей», а в выпадающем меню «Группа пользователей для Гостей» устанавливаем свою новую группу (в примере «Unregister"). Во всплывающей подсказке этой настройки написано: «Группа пользователей для гостей. Заданная по умолчанию группа, права которой будут применены для неавторизованных пользователей (все, кто не ввёл логин и пароль).»

Unreg3

На этой же странице менеджера пользователей переходим во вкладку «Уровень доступа» и жмем «Создать».

Вписываем название уровня, напр. «Unregisters » (я добавил букву «s»)

 

Жмём «Сохранить и закрыть».

 

Как ни странно, на этом ВСЁ.

Мы закончили, задача выполнена.

 

Unreg4

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

Обычное дело - открываем редактирование пункта меню и выбираем из выпадающего меню «Доступ» созданный нами доступ незарегистрированных/неавторизованных пользователей.

 

Разное применение метода

Так можно работать не только с пунктами меню - можно, например, написать приветственную статью или предупреждение для неавторизованных о том, что они теряют, поленившись нажать на кнопочку. Можно повесить статью или модуль на отдельный пункт меню, а после авторизации пропадёт всё, что было нужно одноразово. Просто идем хоть в настройку меню, хоть в настройку любого модуля или статьи, которые должны видеть только незарегистрированные, и обычным способом выбираем там «Доступ <Unregisters>».

В простейшем варианте разобранного примера получается, что отдельно взятый пункт меню не видит никто (даже Администраторы и Суперпользователь!), кроме незарегистрированных пользователей, точно так будут работать и кнопки, и модули, и материалы, и может быть что-то еще, что сейчас мне просто на ум не приходит. То есть так можно обрабатывать ВСЁ, что имеет стандартное меню настройки доступа.

Еще одно применение – для тех, кто сильно увлекается монетизацией сайта и имеет слишком много рекламы. Можно показывать рекламные блоки только неавторизованным, а можно сделать группу, которая будет видеть часть рекламы или вовсе будет свободна от рекламы. Это тоже можно сделать за деньги – какая вам разница получать их за просмотры или наоборот – за НЕпросмотры? По-моему что-то типа этого сделано на Укозе – на давно доставшем всех рекламном блоке у них написано «Удалить рекламу», а когда кликаешь, получаешь предложение оплатить это удовольствие. ))

 

Заключение

Кому-то из новичков покажется бредом – создается группа пользователей с определенными правами доступа, а потом еще группа доступа для этой же группы пользователей. Это не бред. Долго объяснять, нужна отдельная статья. Мне помог разобраться в этой казуистике 5-летний опыт администрирования форума с похожим «бредом», а вам… Если кто сильно захочет – вникнет и сам, а кто не хочет, то оно и незачем. Просто повторите вышесказанное (на это уйдет не более 5 минут эксперимента с любым уже имеющимся у вас пунктом меню) - и да будет вам счастье. Как это работает у меня, можно увидеть и попробовать в верхнем горизонтальном меню – меню ОДНО (в отличие от вариантов в сети), в нем меняется только первый/левый пункт.

Точно так у меня реализован пункт «Ваш профиль» с подпунктами «Просмотреть» и «Редактировать» в главном меню (вертикальное слева вверху). Работает? «Чего же боле?!» © )

Кстати, предложенный метод хорош еще и тем, что в отличие от других методов (в основном с внесением изменений/дополнений в шаблон), он не только проще в «установке», с ним еще и проще в случае возникновения необходимости внесения оперативных изменений в структуру и дизайн. Если надо переключить доступ или удалить – не нужно снова лезть в код! И не нужно делать вставки в код для каждого модуля, материала или пункта меню по отдельности.

У меня всё. Всех благ и до новых встреч!

 

 


 Из удаленной системы комментариев:

 

Уточнение.
Пример действия кнопки только для незарегистрированных я удалил, так как он работал некорректно. Соль не в методе, а в неудачном выборе примера. Вход/выход работает очень специфически, с использованием нескольких перенаправлений. Оказалось, что в некоторых случаях перенаправление устанавливается и срабатывает ошибочно. Причем, зависит это еще и от того, в каком браузере логинишься (в ИЕ не было ни одной проблемы, а в Опере и Лисе с переменным успехом, нестабильно).

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

Придумывать какой-нибудь лишний пункт чисто для иллюстрации не хочется. Сайт все-таки рабочий.
В задумках есть показ незарегистрированным модуля или материала с описанием чего они теряют (не видят) без регистрации - вот это и будет иллюстрацией к статье.
Цитирую VladMih:

Придумывать какой-нибудь лишний пункт чисто для иллюстрации не хочется. Сайт все-таки рабочий.
В задумках есть показ незарегистрированным модуля или материала с описанием чего они теряют (не видят) без регистрации - вот это и будет иллюстрацией к статье.

Вот и сделал обещанное. На главной странице рядом с главным меню есть таб "Привет, Гость" - он и заменил мою менюшку, его видят только гости, а после авторизации это обращение пропадает вместе с табом "Добро пожаловать!".
Как и сказано в статье, мне ничего не пришлось менять, только в настройках этих двух табов установил"Unregisters"

 

 

Logo facebookLogo VKLogo YouTubeLogo LivejournalLogo Google-plus