dedecms织梦二次开发独立点赞功能

dedecms织梦二次开发独立点赞功能

第一步:在 dede_archives 表中增加 zan  这个字段,用来记录每篇文章的赞数量

进入后台:系统 ---> SQL命令工具  ---> 输入以下sql语句,然后执行。(如果你的表前缀改了,记得修改 dede_ 这个表前缀哦)

ALTER TABLE dede_archives ADD zan int(11) NOT NULL DEFAULT '0' AFTER weight;

第二步:新建一个 dede_zan 表格,用来记录赞的具体数据,如点赞的文档aid,点赞人的ip,用ip可以判断是否重复点赞同一篇文章,执行sql语句如下:

CREATE TABLE IF NOT EXISTS `dede_zan` ( 

`id` int(11) NOT NULL AUTO_INCREMENT, 

`aid` int(11) NOT NULL, 

`ip` varchar(40) NOT NULL, 

PRIMARY KEY (`id`) 

) ENGINE=MyISAM  DEFAULT CHARSET=utf8

第三步:写点赞函数,到  /include/ 的最下面,函数代码如下:

1

2

3

4

5

6

 

  function zan($aid)

    {

        global $dsql;

        $row = $dsql->GetOne("Select id,zan From dede_archives where id='".$aid."'");

        return $row['zan'];

        }

 

第四步:在模板上添加点赞按钮,样式就自己写了,我写一个简单的格式,如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

 

<script type="text/javascript" src=""></script>

    <script>

    $(function(){ 

        $("p a").click(function(){ 

            var zan = $(this); 

            var id = zan.attr("rel"); //对应id 

            zan.fadeOut(300); //渐隐效果 

            $.ajax({ 

                type:"POST", 

                url:"/zan.php", 

                data:"id="+id, 

                cache:false, //不缓存此页面 

                success:function(data){ 

                    zan.html(data); 

                    zan.fadeIn(300); //渐显效果 

                } 

            }); 

            return false; 

        }); 

    });

    </script>

    <div><p><a href="#"  

    title="赞一个 "class="img_on" rel="{dede:field.id/}">{dede:field.id function="zan(@me)"/}</a></p></div>

 

第五步:在第四步中,用到了 zan.php,需要创建一个,创建在站点的根目录,具体代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

 

<?php

    require_once (dirname(__FILE__) . "/include/common.inc.php");

    $ip =getip(); //获取用户IP 织梦模板下载

    $id = $_POST['id']; 

    if(!isset($id) || empty($id)) exit; 

      

    //查询已赞过的IP

    $dsql->SetQuery("SELECT ip FROM dede_zan  WHERE aid='".$id."' and ip='$ip'");

    $dsql->Execute();

    $count = $dsql->GetTotalRow();

      

    if($count==0){ //如果没有记录 

      

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c112a4520a2e1793fe49fcdb0a35e3c8.html