Agent — бесплатный плагин для определения типа устройства и браузера пользователя

Несмотря на свое несколько двусмысленное название, бесплатный плагин Agent ничего шпионского не делает, а называется так, потому что работает с «пользовательским агентом» (user agent). Он всего лишь сообщает информацию о том, с какого типа устройства пользователь смотрит ваш сайт, и какой у него браузер. Это может быть полезно для оптимизации ваших сайтов. Например, если пользователь заходит с мобильного устройства, то вы можете не выдавать ему лишней графики и вообще урезать объем выдаваемого ему контента. Важно понимать, что после установки плагина никаких изменений на вашем сайте автоматически не произойдет. Этот плагин дает только новые возможности, но чтобы воспользоваться ими, вам нужно вносить изменения в код шаблонов и/или писать свои расширения.


Плагин добавляет в систему дополнительный модуль Agent с двумя методами — GetAgent() и GetBrowser(), которые возвращают сущность «агент» и «браузер» соответственно. Код получения этих сущностей выглядит так:
// Для Аlto CMS версии 1.0.+
$oAgent = E::Agent_GetAgent();
$oBrowser = E::Agent_GetBrowser();

// Для Аlto CMS версии 1.0.+
$oAgent = E::ModuleAgent()->GetAgent();
$oBrowser = E::ModuleAgent()->GetBrowser();
Получив агента пользователя, вы можете получить информацию об используемом пользователем устройстве:
  • $oAgent->isMobile() — мобильное устройство (телефон или планшет)
  • $oAgent->isPhone() — телефон
  • $oAgent->isTablet() — планшет
  • $oAgent->isComputer() — компьютер
Проверка операционной системы (тут, по-моему, все ясно без комментариев):
  • $oAgent->isIOS()
  • $oAgent->isAndroidOs()
  • $oAgent->isWindowsPhoneOS()
Информацию о браузере можно получить двумя путями — через сущность агента и через сущность браузера. Вот два варианта, которые возвращают отобразят одинаковый результат — имя используемого браузера:
$oAgent = E::ModuleAgent()->GetAgent();
echo $oAgent->browser->name;

$oBrowser = E::Agent_GetBrowser();
echo $oBrowser->name;
Проверка браузера:
  • $oAgent->browser->name
  • $oAgent->browser->version
  • $oAgent->browser->isIE()
  • $oAgent->browser->isFF()
  • $oAgent->browser->isOpera()
  • $oAgent->browser->isChrome()

Вот пример, как можно использовать эти возможности в шаблоне:
{if E::ActivePlugin('agent') AND E::ModuleAgent()->GetAgent()->isComputer()}
  <!-- Плагин активен и определяем, что пользователь зашел на сайт с компьютера -->
  <!-- Значит ему можно показать слайдер с большими баннерами -->
  <div id="big-slider">
      <!-- здесь код слайдера -->
  </div>
{/if}
Кстати, после активации плагина будет доступна страница site.com/testagent, где вы можете проверить работу плагина.

И в заключение скажу, что для работы плагина используется довольно известный класс Mobile_Detect. И, при желании, вы можете использовать все возможности этого класса (вплоть до определения производителя телефона). С одним небольшим исключением — метод isMobile() в плагине определяет любое мобильное устройство, как телефон, так и планшет, а не просто мобильный телефон, как у оригинала. А для определения телефона введен новый метод isPhone(). Мне показалось это более логичным.

Похожие статьи


3 комментария

+1
Спасибо, отличная штука.
0
Подскажите как сделать на Alto 1.0.8
Это не работает:
{if E::ActivePlugin('agent') AND E::ModuleAgent()->GetAgent()->isComputer()}
  <!-- Плагин активен и определяем, что пользователь зашел на сайт с компьютера -->
  <!-- Значит ему можно показать слайдер с большими баннерами -->
  <div id="big-slider">
      <!-- здесь код слайдера -->
  </div>
{/if}
+2
Для версии ниже 1.1 такой код должен работать:
{if E::ActivePlugin('agent') AND E::Agent_GetAgent()->isComputer()}
  <!-- Плагин активен и определяем, что пользователь зашел на сайт с компьютера -->
  <!-- Значит ему можно показать слайдер с большими баннерами -->
  <div id="big-slider">
      <!-- здесь код слайдера -->
  </div>
{/if}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.