安利一款Hansome主题专用的UserAgent插件

前两天Airs_Lau同学说来一篇关于评论UA的文章,本来一开始就打算咕咕咕的٩(ˊᗜˋ*)و,还不是因为我技术菜人又懒(我不要面子的嘛)。
刚好今天闲下来,就把自己魔改的UserAgent插件打包了下,代码水平有限,望多多指正。

食用指南

  1. 操作前请做好相应备份工作
  2. 此插件只适用于Handsome主题,未对其它主题优化!!!
  3. 请先将插件置于Typechoplugins目录下,且插件目录名应为UserAgent,注意大小写,否则将无法正常食用!!!
  4. 修改Handsome主题,component目录下的comments.php代码文件,大概第60~80行左右,
<span class="comment-author vcard">
    <b class="fn"><?php echo $author; ?></b><?php echo $Identity; ?>
</span>

添加代码<?php UserAgent_Plugin::get_useragent($comments->agent,$comments->ip); ?> ,修改后代码如下:

<span class="comment-author vcard">
    <b class="fn"><?php echo $author; ?></b><?php echo $Identity; ?><?php UserAgent_Plugin::get_useragent($comments->agent,$comments->ip); ?>
</span>

获取真实IP

Typecho开启CDN后,可能无法获取访客真实IP,只能取得CDN节点IP,为此可以在Typecho博客网站的根目录的config.inc.php插入下面的代码:

//** 防止CDN造成无法获取客户真实IP地址 */
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
{
    $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
    $_SERVER['REMOTE_ADDR'] = $list[0];
}

更新日志

2019-10-2

  • 说不准新增了部分BUG😂呢,记得反馈哦!
  • 修复第三方获取IP信息接口报错

拖了好几天呢,🤞沉迷小说《斗破苍穹》无法自拔!

Tips:切记先禁用插件后操作,更新完毕请刷新浏览器缓存

历史更新日志

2019-9-24

  • 修复 Warning: in_array()

2019-9-17

  • 修复 $code_ip 提示未定义的错误(无辜脸,习惯了PHP弱类型,还是 error_reporting(0); 最实在😭
  • 增加几个不怎么常见的移动端UA

2019-9-10

  • 更新 Instant.page2.0.0 版本
  • 新增:UA仅博主可见 (感谢 @mlch911 建议)
  • 新增:IP仅博主可见
  • 目前仅博主可见,只支持uid=1,有需求的话,提一下,下次改成管理组也行

2019-7-26

  • 修复部分UA
  • 优化一处错误代码,在某些情况下插件会导致HTTP 502 (感谢 @Android 建议)

2019-4-28

  • 支持常见移动端浏览器UA
  • 修正部分错误,优化部分代码
  • 移除(庞大的)font-awesome图标库,改为阿里iconfont

Screenshot_2019-04-28-22-58-36-283.png
Screenshot_2019-04-28-22-58-36-283.png

2019-4-20

  • 增加鼠标悬停效果,当有鼠标经过或悬停时才显示UA信息(感谢 @皮皮凛 建议)

文件下载

## Hash校验
Ver: 1.0.10
MD5: F89AA165E965E0B1DD1A96466153F5A0
SHA1: 6A162CB84D5CDD7C0903442B005A7FBB09E07CAE
CRC32: 13212161

效果预览

普通只显示ICON
普通只显示ICON
展示UA详细信息
展示UA详细信息
后台设置界面
后台设置界面

最后修改:2019 年 10 月 02 日 04 : 12 PM

发表评论

122 条评论

  1. 丑源

    我也出现了这种情况
    Notice: Undefined offset: 1 in /www/wwwroot/handsome.52aicy.cn/usr/plugins/UserAgent/Plugin.php on line 265

    1. 松鼠大大
      @丑源

      是用的最新版嘛

      1. 丑源
        @松鼠大大

        1.0.8的版本

        1. 松鼠大大
          @丑源

          试一下1.0.10,昨天我改了部分bug,看看还有木有提示

          1. 丑源
            @松鼠大大

            好了 谢谢

  2. 蓝颜

    Notice: Undefined offset: 1 in /home/ftp/4/43077/e74e.cn/usr/plugins/UserAgent/Plugin.php on line 256 报错!尚未修复!

    1. 松鼠大大
      @蓝颜

      暂时屏蔽掉了,试试能否正常使用吧

    2. 松鼠大大
      @蓝颜

      能提供下评论时的UA信息嘛,方便我查询问题,谢谢

    3. 松鼠大大
      @蓝颜

      好像是其它问题,我先看看

  3. 兔姬菌

    Notice: Undefined offset: 1 in /www/wwwroot/usr/plugins/UserAgent/Plugin.php on line 265

    大佬这个一般是什么问题?

    1. 松鼠大大
      @兔姬菌

      报错的BUG,暂时屏蔽了,试试看能否正常使用吧

    2. 松鼠大大
      @兔姬菌

      看了下,未定义错误,可能是数组下标溢出,这行代码对应的是:
      $title = 'ViVO '. $matches[1];
      估计是解析的UA有问题(可能是与我之前样例的UA格式不一样),我这边暂时没有比较全的的VIVO UA信息可供参考,感谢反馈!

  4. he

    出现以下问题
    /www/wwwroot@xx.cn/usr/plugins/UserAgent/Plugin.php on line 389

    Warning: in_array() expects parameter 2 to be array, null given in /www/wwwroot/xx.cn/usr/plugins/UserAgent/Plugin.php on line 414

    1. 松鼠大大
      @he

      (´இ皿இ`)修复了,试试看是否还有问题吧

  5. mano

    请选择 UA 信息展示效果
    鼠标经过或悬停时显示UA信息 仅博主可见

    2者均不选择时候。会报错!Warning: in_array() expects parameter 2 to be array, null given in /usr/plugins/UserAgent/Plugin.php on line 389

    Warning: in_array() expects parameter 2 to be array, null given in /usr/plugins/UserAgent/Plugin.php on line 414

    1. 松鼠大大
      @mano

      Warning: in_array() 报错已修复ヾ(´・ ・`。)ノ"

    2. 松鼠大大
      @mano

      好的,收到,问题已经记录了,

  6. 范明明

    用了新版,没问题了。游客方式也正常了。