Иногда бывает ситуация, когда нужно определить какой браузер у посетителя нашего сайта. Для этого в 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 более предпочтительно использовать первый способ.
Да прибудет с вами сила!