首页 > 其他分享 >帝国cms列表页模板动态获取文章内容点击数

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

时间:2024-10-05 16:34:22浏览次数:1  
标签:点击数 -- cms 代码 加载 data 模板 页面

为了优化帝国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,代码,加载,data,模板,页面
From: https://www.cnblogs.com/hwrex/p/18447964

相关文章

  • 帝国CMS登录后台提示"您的Cookie没有开启,不能登陆成功"的解决方法
    当帝国CMS后台登录时提示“您的Cookie没有开启,不能登陆成功”,通常是由于服务器环境中的某些设置导致的。按照以下步骤操作,可以解决这个问题。操作步骤找到 php.ini 文件:联系你的空间商或登录服务器,找到 php.ini 文件。通常 php.ini 文件位于服务器的 etc/php/版本号......
  • 帝国CMS GBK编码使用AJAX提交数据中文乱码问题!
    在帝国CMS使用GBK编码的环境中,通过AJAX提交数据时可能会遇到中文乱码的问题。这是因为AJAX默认使用UTF-8编码,而帝国CMS使用的是GBK编码。解决这个问题的关键是在接收数据的PHP文件中对数据进行编码转换。解决方案在接收数据的PHP文件中进行编码转换:使用 iconv 函数将接收......
  • 帝国CMS建立模型字段报错:Row size too large. The maximum row size for the
    在帝国CMS中建立模型字段时,如果字段过多或单个字段过长,可能会遇到MySQL报错“Rowsizetoolarge”。这个错误是因为MySQL表的最大行大小限制为65535字节(不包括BLOB和TEXT类型字段)。解决这个问题的方法是将一些字段转换为TEXT或BLOB类型。解决方案分析现有字段......
  • 帝国CMS为什么发布内容时间为“1970-01-01 ”
    在发布内容时,如果时间显示为 1970-01-01,通常是因为以下几个原因:字段未设置为录入项:在建立系统模型时,newstime 字段没有被设置为录入项。字段不可修改:即使设置了录入项,但该字段可能被设置为不可修改。字段不可增加:该字段可能被设置为不可增加。解决方法要解决这个问题,需要......
  • 帝国cms实现发布时间为几小时前几天前等格式的方法
    要在帝国CMS中实现时间显示为“几小时前”、“几天前”等格式,可以通过自定义函数来完成。以下是具体的步骤和代码示例。步骤编写自定义函数:将自定义函数写入 userfun.php 文件中。调用函数:在列表模板和内容模板中调用该函数。自定义函数将以下代码放入 userfun.php 文......
  • 为什么帝国cms验证码一直均显示为“ecms”
    在帝国CMS中,验证码显示为“ecms”的主要原因是因为服务器空间不支持GD库(GraphicsDrawingLibrary)。GD库是PHP的一个扩展库,用于生成图像,如验证码图片。当服务器不支持GD库时,验证码生成功能会受到影响,导致默认显示为“ecms”。解决方案升级服务器环境:确保服务器支持GD库。使用......
  • 帝国CMS图片集只能上传10张图片的原因及解决办法_max_file_uploads
    在帝国CMS中上传图片时,如果发现上传多张图片但最终只显示部分图片,这通常是由于PHP配置中的 max_file_uploads 参数限制导致的。具体来说,这个参数限制了一个表单最多能上传多少个文件。原因分析在帝国CMS中,每张图片都会生成一张大图和一张缩略图,因此实际上每次上传都会占用两......
  • 帝国CMS列表页判断是否有标题图片,如果没有就显示指定的图片
    在帝国CMS列表页中,如果文章没有标题图片,则可以显示指定的备选图片。这样可以确保页面视觉统一美观,提升用户体验。方法1:使用PHP判断复制以下代码到列表内容模板:php if(empty($r['titlepic'])){$pic='';}else{$pic='<imgsrc="'.$r['titlepic'].'"/>'......
  • 帝国CMS表单提交跳转到指定页面
    以下是如何在表单中添加隐藏字段 ecmsfrom 的示例代码:<formaction="your_action_url.php"method="post"><!--其他表单字段--><!--添加隐藏字段ecmsfrom--><inputtype="hidden"name="ecmsfrom"value="跳转地址"......
  • 帝国CMS模板调用指定栏目的tag或当前栏目的tag
    在帝国CMS模板中,可以通过不同的SQL查询方式来调用指定栏目中的所有TAG。以下是四种不同的方法及其解释。方法1SQL查询sql selectDISTINCT([!db.pre!]enewstags.tagname),[!db.pre!]enewstags.tagid,[!db.pre!]enewstags.numfrom[!db.pre!]enewstagsinnerjoin[......