安利一款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-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信息(感谢 @皮皮凛 建议)

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

文件下载

## Hash校验
Ver: 1.0.4
MD5: 82ED8A7E776910704DBBF20F85A3C1E2
SHA1: CC610051EBEBB0209303E816B68D8C938109F018
CRC32: 7EB7416A

效果预览

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

Vultr注册就送$50,可开日本/新加坡等机房,【点击注册】。
最后修改:2019 年 06 月 13 日 08 : 34 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论

52 条评论

  1. 访客

    66666

  2. detechn

    怎么我的提示“Class 'Get_Ip' not found”

    1. 松鼠大大
      @detechn

      是完整安装吗?先查看下文件权限是否正常,PHP版本是否7.0以上(我的环境是PHP7.2/7.3,其他版本没有测试过)|´・ω・)ノ

      1. detechn
        @松鼠大大

        已经可以了,下载的文件不完整导致的

  3. Bixan

    网站开启了CDN会导致获取的IP不准

    1. 松鼠大大
      @Bixan

      嗯,百度一下typecho获取用户真实IP,这个问题就解决啦,(๑•̀ㅁ•́ฅ)

      1. Bixan
        @松鼠大大

        解决了 谢谢啦!ヾ(≧∇≦*)ゝ

  4. newcoderlife

    挺好的,赞一个!

  5. Qing

    好棒好棒哈哈😁୧(๑•̀⌄•́๑)૭

    1. 松鼠大大
      @Qing

      早安ノ☀

      1. Qing
        @松鼠大大

        早呀早呀

  6. Jockie

    按照食用指南只添加了代码,其他没有做修改。也按照了tips的提示修改,上传后刷新出现错误:
    syntax error, unexpected 'endif' (T_ENDIF), expecting end of file
    ParseError: syntax error, unexpected 'endif' (T_ENDIF), expecting end of file in /data/wwwroot/x.cn/usr/themes/handsome/component/comments.php:210
    Stack trace:
    #0 /data/wwwroot/x/usr/themes/handsome/post.php(83): Widget_Archive->need('component/comme...')
    #1 /data/wwwroot/x.cn/var/Widget/Archive.php(2022): require_once('/data/wwwroot/c...')
    #2 /data/wwwroot/x.cn/var/Typecho/Router.php(138): Widget_Archive->render()
    #3 /data/wwwroot/x.cn/index.php(23): Typecho_Router::dispatch()
    #4 {main}
    怎么破?

    1. 松鼠大大
      @Jockie

      你确定不是改错了东西

      1. Jockie
        @松鼠大大

        没有鸭,和原文件对比了,只修改了comment.php这个文件

        1. 松鼠大大
          @Jockie

          标点符号或者其他的,,你检查一下,只添加 <?php UserAgent_Plugin::get_useragent($comments->agent,$comments->ip); ?> 是木有问题的,仔细核对下代码呢。

          1. Jockie
            @松鼠大大

            我是直接复制粘贴的。其他地方都没有修改。还是不行呢

            1. 松鼠大大
              @Jockie

              emmm,好吧,看看comment.php 210行有啥错误,语法是否正确,,实在不行,,我也木得办法呢

              1. Jockie
                @松鼠大大

                这个文件到底也才207行。所以我很纳闷

                1. Star
                  @Jockie

                  我刚改的 也有你的问题 把原始的comments.php恢复 直接复制 放到同一行就好了

                2. 松鼠大大
                  @Jockie

                  🤣🤣🤣🤣 玄学,先恢复原来的文件再说吧,我母鸡这是啥问题,也没有其他同学报过这个问题

  7. Paul

    很好!

    1. 松鼠大大
      @Paul

      大半夜还不睡觉哈,“熬夜伤身体,我建议你通宵”

  8. 鹤别空林

    感谢大佬分享,文章转载可否~

    1. 松鼠大大
      @鹤别空林

      (๑•̀ㅁ•́ฅ)嗯,可以,注明就行。

  9. 范明明

    才发现有更新了,另外你的网站为什么名称显示是别人的名称。还有邮箱和网址都是别人的信息。

    1. 松鼠大大
      @范明明

      |´・ω・)ノ应该缓存插件的锅,之前也有小伙伴说起过这件事情

      1. 范明明
        @松鼠大大

        现在正常了。上面那条是我评论的。

  10. temperature

    哎呦,不错呦