织梦文章页实现点赞功能(非插件)_织梦CMS教程


    因为自己的网站是DedeCMS架构的,实现起来比WordPress博客要复杂一些,参考了一下DedeCMS自己带的点赞功能,发现已经十分完善,就直接借鉴过来加以扩展,加了一个打赏的二维码,实现了自己博客文章页的点赞+打赏功能,效果如下图:

    接下来,把具体实现的方法写出来,希望能对大家有所帮助。


    一、js引用

    实现点赞功能需要引用系统已有的js文件,这个文件位置为:/include/dedeajax2.js ,引用代码为:

    <script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>

    将这段代码放在DedeCMS当前使用主题文章页模版的<head>部分即可。缓存点击数和判断当前是否点击过的判断js代码为:

    <script language="javascript" type="text/javascript">
    <!--
    function postBadGood(ftype,fid)
    {
        var taget_obj = document.getElementById(ftype+fid);
        var saveid = GetCookie('badgoodid');
        if(saveid != null)
        {
            var saveids = saveid.split(',');
            var hasid = false;
            saveid = '';
            j = 1;
            for(i=saveids.length-1;i>=0;i--)
            {
                if(saveids[i]==fid && hasid) continue;
                else {
                    if(saveids[i]==fid && !hasid) hasid = true;
                    saveid += (saveid=='' ? saveids[i] : ','+saveids[i]);
                    j++;
                    if(j==10 && hasid) break;
                    if(j==9 && !hasid) break;
                }
            }
            if(hasid) { alert('您刚才已表决过了喔!'); return false;}
            else saveid += ','+fid;
            SetCookie('badgoodid',saveid,1);
        }
        else
        {
            SetCookie('badgoodid',fid,1);
        }
        myajax = new DedeAjax(taget_obj,false,false,'','','');
        myajax.SendGet2("{dede:field name='phpurl'/}/feedback.php?aid="+fid+"&action="+ftype+"&fid="+fid);
    }
    function postDigg(ftype,aid)
    {
        var taget_obj = document.getElementById('newdigg');
        var saveid = GetCookie('diggid');
        if(saveid != null)
        {
            var saveids = saveid.split(',');
            var hasid = false;
            saveid = '';
            j = 1;
            for(i=saveids.length-1;i>=0;i--)
            {
                if(saveids[i]==aid && hasid) continue;
                else {
                    if(saveids[i]==aid && !hasid) hasid = true;
                    saveid += (saveid=='' ? saveids[i] : ','+saveids[i]);
                    j++;
                    if(j==20 && hasid) break;
                    if(j==19 && !hasid) break;
                }
            }
            if(hasid) { alert("您已经表决过,请不要重复点击哦 !"); return; }
            else saveid += ','+aid;
            SetCookie('diggid',saveid,1);
        }
        else
        {
            SetCookie('diggid',aid,1);
        }
        myajax = new DedeAjax(taget_obj,false,false,'','','');
        var url = "{dede:global.cfg_phpurl/}/digg_ajax.php?action="+ftype+"&id="+aid;
        myajax.SendGet2(url);
    }
    function getDigg(aid)
    {
        var taget_obj = document.getElementById('newdigg');
        myajax = new DedeAjax(taget_obj,false,false,'','','');
        myajax.SendGet2("{dede:global.cfg_phpurl/}/digg_ajax.php?id="+aid);
        DedeXHTTP = null;
    }
    -->
    </script>

    这段代码紧跟dedeajax2.js调用语句后面。

    注:使用的DedeCMS版本为V5.7 SP1正式版,而DedeCMSV5.5版本以后都自带dedeajax2.js 这个文件。


    二、点赞/踩html代码

    将以下代码放入要显示点赞和踩的位置(一般都是文章页调用文章正文代码{dede:field.body /}后)

    <!-- //顶踩 -->

      <div class="social-main" id="newdigg"></div>

        <script language="javascript" type="text/javascript">getDigg({dede:field.id/});</script>

        <!-- //顶踩部份的源码结束 -->


    三、css样式

    将以下css代码加入到文章页模版的css文件中:

    /*顶踩*/
    #newdigg{border-bottom:medium none;padding:5px 0;}
    .social-main{margin:10px auto;position:relative;width:283px;height:40px}
    .social-main a{border-radius:2px;color:#fff;float:left;line-height:35px;text-align:center}
    .social-main a:hover{background:#878787 none repeat scroll 0 0;transition:all .2s ease-in 0s}
    .like a{background:#e15782 none repeat scroll 0 0;display:block;width:140px}
    .shang a{background:#5ea51b none repeat scroll 0 0;border:4px solid #fff;border-radius:40px;font-size:18px;font-weight:600;height:50px;left:115px;line-height:45px;position:absolute;top:-7px;width:50px}
    .bad a{background:#37ccca none repeat scroll 0 0;display:block;width:140px}
    .cpa{padding-left:10px;}
    .shang a:hover .s_in ,.shang a:hover .s_arrow ,.shang a:hover .s_img{display:block;}
    .s_img{display:none;position:relative;background:#fff none repeat scroll 0 0;border-radius:5px;border: 1px solid #ddd;padding: 10px 10px 2px;width: 246px;top:18px;right:113px;}
    .s_arrow {display:none;position: absolute; right:10px;top:35px; width: 0; height: 0; font-size: 0; border-width:16px; border-style: dashed dashed solid dashed; border-color: transparent transparent #ddd transparent;}
    .s_in{ display:none;position:absolute;right:-16px;top:-14px; width: 0; height: 0; font-size: 0; border-width:16px;border-color:transparent transparent #fff transparent; border-style:dashed dashed solid dashed; z-index:999; }

    实现的效果为:


    四、提示语与html修改

    点赞后提示语修改在第一步的第二段js代码中,自己找到相关的文字,修改即可。

    而调用点赞的html代码中其实只有一段js而已,要修改点赞的相关html代码则要打开/plus/digg_ajax.php,找到第98行,这里的代码为:

    $digg = '<span class="like"><a href="javascript:;" onclick="postDigg(\'good\','.$id.')">顶一下
                            <span class="digg_num">('.$row['goodpost'].')</span> </a></span>
                <span class="shang"><a href="javascript:;" id="shang">赏<span class="s_arrow"><span class="s_in"></span></span><div class="s_img"><img src="/templets/yq/images/ds.png"></div></a></span>
                    <span class="bad"><a href="javascript:;" onclick="postDigg(\'bad\','.$id.')"><span class="cpa">踩一下<span class="digg_num">('.$row['badpost'].')</span></span></a></span>';
    }

    大家可以看到其实就是用js调用php文件中的这段html代码实现的点赞和踩的计数功能,到这里就完美实现了DedeCMS文章页实现点赞功能,而打赏功能中,图片引用位置为/templets/yq/images/ds.png,大家可以把自己的打赏二维码上传到对应文件夹做下名字的修改即可。


# 年度推广营销案例范文大全  # saveids  # split  # 重庆做网站建设的价格  # 站长优化哪个网站好  # 嘉兴抖音营销推广投放  # 湖州 外贸网站建设  # 刚哥营销推广  # 山东网站建设知识测评  # 长春网站优化搜索  # seo网络排名优化技巧  # 便捷的郑州网站推广公司  # 第二段  # 海南营销推广要多久  # 惠州抖音推广营销广告  # 中山律师网站建设电话  # 杭州网站专题优化  # 宜春网络营销推广策划  # 华亭seo搜索优化  # 营销推广公司广州运营  # 茶山网站优化  # 外贸自建网站建设  # 洛阳seo运营模式分析  # 点击数  # 织梦CMS教程  # 织梦文章  # 织梦文章点赞  # 点赞功能  # 这段  # 自己的  # 都是  # 实现了  # 放在  # 过了  # 织梦文章页实现点赞功能(非插件)  # 博客  # 请不要  # 可以看到  # 自带  # 您已经  # 能对  # 到第  # 如下图  # 则要  # 找到相关 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化91478 】 【 技术知识72672 】 【 云计算0 】 【 GEO优化84317 】 【 优选文章0 】 【 营销推广36048 】 【 网络运营41350 】 【 案例网站102563 】 【 AI智能45237


相关推荐: 建站之星配置全解析:模板选择与填写指南轻松掌握  linux服务器wdcp面板做301域名重定向设置_织梦CMS教程  建站之星登录生*流程解析:快速搭建多端网站与后台配置  如何通过老薛主机一键快速建站?  如何配置WinSCP新建站点的密钥验证步骤?  织梦dedecms栏目列表页单独调用页码数 _织梦CMS教程  织梦UTF-8编码模板顶部空白一行解决方法_织梦CMS教程  如何在宝塔面板中创建新站点?  dedecms织梦实现中英文分页功能_织梦CMS教程  织梦增加栏目缩略图、栏目图片功能的方法_织梦CMS教程  dedecms织梦清除快照劫持木马_织梦CMS教程  织梦DedeCms如何做淘宝客链接跳转_织梦CMS教程  宁波自助建站系统如何快速打造专业企业网站?  如何在宝塔面板创建新站点?  dedecms织梦幻灯片大图管理插件_织梦插件  建站三合一如何选?哪家性价比更高?  建站org新手必看:2024最新搭建流程与模板选择技巧  网站SEO从业五年多,软文编写经验总结_SEO优化教程  建站OpenVZ教程与优化策略:配置指南与性能提升  黑客如何通过漏洞一步步攻陷网站服务器?  织梦调用上一篇下一篇以及样式修改_织梦CMS教程  织梦判断栏目是否有栏目图片,如果没有的话就显示栏目名称_织梦CMS教程  dedecms织梦有缩略图则显示缩略图,没有则显示随机缩略图_织梦CMS教程  dedecms织梦更换成kindeditor后栏目内容无法保存_织梦CMS教程  建站之星导航菜单设置与功能模块配置全攻略  织梦修改下载地址{dede:field name='softlinks'/}只显示链接方法_织梦CMS教程  织梦dedecms自定义表单添加地区联动显示数字解决方法_织梦CMS教程  织梦用PHP方式来实现当前栏目高亮_织梦CMS教程  织梦二级域名附件相对路径修改*路径链接_织梦CMS教程  如何在IIS7中新建站点?详细步骤解析  建站之星模板推荐_2025快速建站教程_免费网站生成神器  dedecms织梦相关文章标签likearticle调用自定义字段_织梦CMS教程  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  建站助手启动失败?环境配置错误如何排查  建站主机功能解析:服务器选择与快速搭建指南  黑客如何利用漏洞与弱口令入侵网站服务器?  建站主机如何安装配置?新手必看操作指南  建站助手如何使用?三步轻松搭建网站  如何实现建站之星域名转发设置?  织梦全站GBK编码转UTF-8编码图文教程 _织梦CMS教程  织梦DEDECMS会员调用方法详解_织梦CMS教程  建站助手启动失败:域名解析错误还是端口冲突?  如何选择适配移动端的WAP自助建站平台?  网站*自定义分享代码,可以自定义分享图片标题描述(支持https)_织梦CMS教程  如何快速上传建站程序避免常见错误?  织梦的联动信息类型只能增加一级和三级选择,不能增加二级选择解决方法_织梦CMS教程  织梦提示信息提示框美化教程_织梦CMS教程  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南 

 2019-08-16

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

南京市珐之弘网络技术有限公司


南京市珐之弘网络技术有限公司

南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 87067657

 13565296790

 87067657@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.