Inter-Net.PRO

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

  В принципе сделать это не сложно если вы понимаете структуру HTML и сможете добавить в нужные вам места куски кода PHP.


PHP код для проверки доступа прав пользователя

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

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

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

 

  Для залогиненных - незалогиненных

  Первый пример кода выводит что либо согласно прав для авторизированных на сайте и неавторизированных:

$user = JFactory::getUser();


<?php if ($user->guest) { ?> 
	Здесь то, что видно только для неавторизированных пользователей
<?php } else { ?> 
	Видно только для пользователей авторизировавшихся на сайте
<?php } ?> 

 

  Первая строчка кода $user = JFactory::getUser(); как правило уже прописана в индексном файле шаблона (index.php) и её не нужно вставлять в код. Но если у вас самописный шаблон, то обязательно добавьте её.

  Остальной код - это условие проверки. Расшифровуется он так: если пользователь гость, то мы показываем ему первый вариант, иначе (подразумевается что залогинен) показываем второй вариант.

 

  Вместо поставленного мною текста можно фигачить HTML, CSS, JavaScript, в общем всё что угодно.


Вывод только для авторизированных

  Если нам нужно вывести что либо только для залогиненных на сайте пользователей, то можем использовать конструкцию покороче:

<?php if !($user->guest) { ?> 
	Видно только для зарегистрированных пользователей
<?php } ?>

 

  Восклицательный знак перед параметром условия означает НЕ (не равно, не правда).

  Собственно расшифровуется код как: - если пользователь не гость, то он увидит содержимое. А значит если пользователь залогинен, то он увидит содержимое.

 

 


Только для супер админа

  Так же в API джумлы есть условие для определения супер администратора.

  Для супер-админа код будет выглядеть так:

<?php if ($user->authorise('core.admin')) { ?> 
	Видно только супер админу
<?php } 

 

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


Пример использования кода по правам доступа

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

Вот собственно вместо этих кнопок:

кнопки вход регистрация

  после авторизации на сайте в этом месте выводится кнопка с выпадающим меню:

меню пользователя

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

Код кнопок и меню пользователя:

<div class="dost-menu">
	
	<?php if ($user->guest) { ?>
		<div>
			<a href="#">Войти</a>
			<a href="#">Регистрация</a>
		</div>
	<?php } else { ?>
		<div>
			<button class="dropdown-toggle" data-toggle="dropdown">
				Меню пользователя
			</button>
			<ul class="dropdown-menu">
				<li><a href="#">Профиль</a></li>
				<li><a href="#">Настройки</a></li>

				<?php if ($user->authorise('core.admin')) { ?>
					<li><a href="#">Админка</a></li>
				<?php } ?>
				<li><a href="#">Выйти</a></li>
			</ul>
		</div>
	<?php } ?>
</div>

 

  Данный код не есть 100-ным оригиналом. Чтобы было удобно видеть структуру кода и то где используются проверка по правам, я поубирал из него классы, ссылки и прочую мишуру, оставив основной скелет кода.

  Сам код я прописал в шаблоне (файл index.php)

 

 


Как вставить код в Joomla

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

  Чтобы использовать данные возможности в материалах (в статьях) или в модуле тип HTML, нужно использовать редактор с настройками которые не обрезают PHP код.

  Так же можно переключить в настройках сайта редактор, установив редактор CodeMirror, в котором можно писать как на HTML, так и на PHP и JavaScript.

Плагин Sourser

  Ещё одним из популярных способов вставки кода в Joomla является плагин с названием Sourcerer от известного разработчика Regular Labs.

  Я пользуюсь именно этим плагином и мне вполне хватает бесплатной версии, которую можно скачать нажав на кнопку:

Скачать Sourcerer

  Ссылка с оф. сайта. Если вдруг она не рабочая (разработчик сменил у себя ссылку) - просьба сообщите пожалуйста об этом в комментарии, чтобы я поправил ссылку на актуальную.

 Плагин добавляет кнопку под редактором, при помощи которой можно вставлять прям в материалы коды CSS, JavaScript и PHP.


 

Авторизация

Войти через соцсети: