前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Typecho增加阅读时长统计

Typecho增加阅读时长统计

作者头像
小东东
发布2023-03-20 11:35:57
2930
发布2023-03-20 11:35:57
举报
文章被收录于专栏:小东东小东东

本文共 142 个字数,平均阅读时长 ≈ 1分钟

修改functions.php文件

底部增加,文件路径: /usr/themes/Joe 找一个风水宝地放以下代码

代码语言:javascript
复制
// 文章阅读时长设置
$onlineTime = new Typecho_Widget_Helper_Form_Element_Select(
    'onlineTime',
    array(
        'off' => '关闭(默认)',
        'on' => '开启',
    ),
    'on',
    '是否启用文章阅读时长统计',
    '介绍:开启后,文章底部展示文章字数,预计阅读时长和已阅读时长'
);
$onlineTime->setAttribute('class', 'joe_content joe_other'); 
$form->addInput($onlineTime->multiMode());

修改article.php文件

文件路径: usr/themes/Joe/public

{tabs-pane label="代码"}

代码语言:javascript
复制
<div class="contain" style="margin-bottom: 10px; <?php if(Helper::options()->onlineTime !== 'on') echo 'display:none;'  ?>">
    <blockquote id="onlineTime">本文共 <?php art_count($this->cid); ?> 个字数,平均阅读时长 ≈ <?php echo art_time($this->cid); ?>分钟</blockquote>
</div>
</div>

{/tabs-pane} {tabs-pane label="截图"}

{tabs-pane label="代码"}

代码语言:javascript
复制
fetchRow ($db->select ('table.contents.text')->from ('table.contents')->where ('table.contents.cid=?',$cid)->order ('table.contents.cid',Typecho_Db::SORT_ASC)->limit (1));
    $text = preg_replace("/[^\x{4e00}-\x{9fa5}]/u", "", $rs['text']);
    $text_word = mb_strlen($text,'utf-8');
    echo ceil($text_word / 400);
}

//文章字数统计
function art_count ($cid){
    $db=Typecho_Db::get ();
    $rs=$db->fetchRow ($db->select ('table.contents.text')->from ('table.contents')->where ('table.contents.cid=?',$cid)->order ('table.contents.cid',Typecho_Db::SORT_ASC)->limit (1));
    $text = preg_replace("/[^\x{4e00}-\x{9fa5}]/u", "", $rs['text']);
    echo mb_strlen($text,'UTF-8');
}
?>

    var second=0;
    var minute=0;
    var hour=0;
    window.setTimeout("interval();",1000);
    function interval()
    {
        second++;
        if(second==60)
        {
            second=0;minute+=1;
        }
        if(minute==60)
        {
            minute=0;hour+=1;
        }
        var onlineTime = "您已阅读:" + hour + "时" + minute + "分" + second + "秒。";
        var joe_message_content = "本文共 " + <?php art_count($this->cid); ?> + "个字数,平均阅读时长 ≈ " + <?php echo art_time($this->cid); ?> + "分钟,";
        $('#onlineTime').text(joe_message_content + onlineTime);
        window.setTimeout("interval();", 1000);
    }

{/tabs-pane} {tabs-pane label="截图"}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 修改functions.php文件
  • 修改article.php文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档