phile/user-agent

Phile的插件,用于将浏览器用户代理数据暴露给模板。

dev-master 2014-06-19 13:25 UTC

This package is auto-updated.

Last update: 2024-08-29 03:47:33 UTC


README

此插件用于Phile,以将浏览器用户代理数据暴露给模板。

1.1 安装(composer)

php composer.phar require phile/user-agent:*

1.2 安装(下载)

  • 安装Phile的最新版本
  • 将此仓库克隆到plugins/phile/userAgent

2. 激活

安装插件后,您需要将以下行添加到您的config.php文件中

$config['plugins']['phile\\userAgent'] = array('active' => true);

用法

此插件将在您的模板中创建一个新的变量,名为{{ useragent }}

您可以使用此变量来加载条件内容,添加特殊类,甚至修改javascript。

暴露的信息

以下是一个示例(从我笔记本电脑的完整用户代理数组)

array(
  'useragent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.6 Safari/537.36', // full useragent string
  'name' => 'Google Chrome', // name of the browser
  'browser' => 'google-chrome', // css safe browser name
  'version' => '32.0.1700.6', // browser version number
  'type' => 'desktop', // form factor browser || mobile
  'platform' => 'mac', // Operating System
  'pattern' => '#(?<browser>Version|Chrome|other)[/ ]+(?<version>[0-9.|a-zA-Z.]*)#' // regex pattern that matched
);

条件内容

{% if useragent.type == 'desktop' %}
  <div class="desktop-header-image">
    <img src="images/desktop.jpg" alt="desktop screenshot">
  </div>
{% else %}
  <div class="mobile-header-image">
    <img src="images/mobile.jpg" alt="mobile screenshot">
  </div>
{% endif %}

特殊类

<body class="{{ useragent.platform }} {{ useragent.type }}">
  <div class="content">
    {{ content }}
  </div>
</body>

JavaScript添加

如果我们把这段代码放在文档的head部分,我们可以将{{ useragent }}数组编码为json并在javascript中使用它

<script type="text/javascript">
  window.Phile.useragent = {{ useragent|json_encode() }};
</script>

现在在javascript中,Phile.useragent.browser会返回CSS安全的浏览器名称。