×

Внимание

Ваш браузер . Для корректного серфинга сети рекомендуем установить один из современных браузеров Chrome или Firefox.
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Иногда бывает ситуация, когда нужно определить какой браузер у посетителя нашего сайта. Для этого в Joomla существует класс JBrowser, предоставляющий информацию о текущем веб-клиенте.  Идентификация браузера выполняется путем изучения переменной среды сервера HTTP_USER_AGENT.

Как это работает?

Да очень просто. Для использования нужно получить экземпляр класса JBrowser через JBrowser::getInstance();.

Таким образом мы получим объект содержащий информацию о браузере. Рассмотрим на деле, несколько вариантов использования данного класса и воспользуемся несколькими полезными его методами.

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

// Создаем экземпляр JBrowser
$browser = JBrowser::getInstance();

// Получаем название браузера
$browserName = $browser->getBrowser();
// Проверяем не является ли клиент известным роботом
$browserIsRobot = $browser->isRobot();
// Смотрим не мобильный ли браузер
$browserIsMobile = $browser->isMobile();

// Проверяем все необходимые нам условия, и если что-то не так выводим сообщение на страницы
if ($browserName !== 'dchrome' and $browserName !== 'mozilla' and !$browserIsRobot and !$browserIsMobile){
	$browserMessage = "<strong>Ваш браузер $browserName</strong>. Для корректного серфинга сети рекомендуем установить один из современных браузеров <a target='_blank' href='https://www.google.com/chrome/browser/index.html'>Chrome</a> или <a target='_blank' href='https://www.mozilla.org/ru/firefox'>Firefox</a>.";
	$app->enqueueMessage("$browserMessage", 'Notice');
}

Выводить сообщения на страницы можно  используя конструкцию 

$app->enqueueMessage('Ваше сообщение', 'Тип'); 

где  $app - это объект JApplication, а enqueueMessage - это его метод для добавления сообщений на страницу, которому передается два параметра: само сообщение и тип выводимого сообщения (Message - зеленое сообщение, Notice - синее, Warning желтое  и Error). В качестве первого аргумента (Сообщения) я передал переменную $browserMessage, в которую заранее сформировал тело сообщения.

Для использования enqueueMessage убедитесь, что у вас создан соответствующий объект, обычно в шаблонах Joomla он создается строкой 

$app = JFactory::getApplication();

в начале шаблона. Или используйте полную конструкцию в виде

JFactory::getApplication()->enqueueMessage('Ваше сообщение', 'Тип');

Так же можно добавлять сообщения используя конструкцию 

JError::raiseWarning( 100, 'Ваше сообщение' );

Но начиная с Joomla 3x и перехода Joomla на Bootstrap более предпочтительно использовать первый способ.

Да прибудет с вами сила!

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

У вас недостаточно прав для того чтобы тут гадить.