帝国cms列表页模板动态获取文章内容点击数的方法

为了优化帝国CMS在列表页动态获取文章点击数目的性能,并且避免页面加载缓慢的问题,你可以按照以下步骤进行操作:

1、修改HTML结构 在需要显示点击数的位置插入一个新的元素,并添加必要的数据属性。

<em class="clicknum" data-class="[!--classid--]" data-id="[!--id--]">[!--onclick--]</em>

2、在页面尾部加入JS代码 在页面底部加入以下JS代码,用于异步加载点击数。

<script>
    window.onload = function() {
        $('.clicknum').each(function(i) {
            var url = "[!--news.url--]e/public/ViewClick?&down=0&nojs=1&classid=" + $(this).attr("data-class") + "&id=" + $(this).attr("data-id");
            $(this).text(""); // 清空原有内容
            $.get(url, function(data) {
                $(this).text(data);
            });
        });
    }
</script>

3、修改源码 找到 /e/public/ViewClick/index.php 文件,并修改其中的代码。

if ($_GET['nojs'] == 1) {
    echo $shownum;
} else {
    echo "document.write('" . $shownum . "');";
}

相关解释

HTML结构:

  • <em class="clicknum" 元素用于显示点击数。
  • data-class 和 data-id 属性分别存储类ID和文章ID。

JS代码:

  • window.onload 确保DOM完全加载后再执行脚本。
  • 使用 $.get 异步请求点击数,避免阻塞页面渲染。
  • $(this).text(data) 更新元素的内容。

PHP代码:

  • 判断是否为异步请求(nojs=1),如果是,则直接返回点击数。
  • 否则,使用 document.write 输出点击数。

通过这些帝国cms列表页模板动态获取文章内容点击数的方法步骤,可以有效地优化页面加载速度,并动态获取文章点击数。