网络建站知识发布于分享网站

当前位置:首页>>新闻中心>>CMS教程>>dedecms教程

Dedecms开发点赞功能

时间:2025-03-30 13:08:19    来源:    人气:0

在网站建设中,实现点赞功能是一个常见的需求。以下是如何在DedeCMS中添加点赞功能的详细步骤,包括SQL语句、PHP代码和前端样式设计。 首先,我们需要在数据库中进行一些修改。通过执行以下SQL语句,我们可以在`dede_archives`表中新增一个名为`zan`的字段,用于记录文章的点赞次数。


ALTER TABLE dede_archives ADD zan int(11) NOT NULL DEFAULT '0' AFTER weight;
接下来,为了防止重复点赞,我们需要创建一个新的表`dede_zan`,用来存储每个点赞的IP地址和对应的文档ID(aid)。

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/extend.func.php`文件,并添加一个函数来获取文章的点赞数。

function zan($aid) {
    global $dsql;
    $row = $dsql->GetOne("Select id,zan From dede_archives where id='" . $aid . "'");
    return $row['zan'];
}
接下来,在模板文件`templets/default/article_article.htm`中加入相应的CSS样式,以美化点赞按钮。

.zan p{
background:#000; opacity:.8;filter:alpha(opacity=80);
}
.zan p a{
padding-left:30px; height:24px; background:url(/images/heart.png) no-repeat 4px -1px;
color:#fff; font-weight:bold; font-size:14px
}
.zan p a:hover{
background-position:4px -25px;text-decoration:none
}
此外,还需要引入jQuery库并添加JavaScript代码,以便处理点赞请求。

$(function(){
    $("p a").click(function(){
        var zan = $(this);
        var id = zan.attr("rel");
        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;
    });
});
在HTML部分,添加如下代码片段,用于显示点赞按钮。

<div class="zan"><p><a href="#" title="赞一个 "class="img_on" rel="{dede:field.id/}">{dede:field.id function="zan(@me)"/}</a></p></div>
最后,创建一个名为`zan.php`的文件并放置在网站根目录下,用于处理后端逻辑。

require_once (dirname(__FILE__) . "/include/common.inc.php");
$ip =getip();
$id = $_POST@['id'];
if(!isset($id) || empty($id)) exit;

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

if($count==0){
    $dsql->ExecuteNoneQuery("update dede_archives set zan=zan+1 where id='$id'; ");
    $dsql->ExecuteNoneQuery("insert into dede_zan (aid,ip) values ('$id','$ip'); ");
    $rows = $dsql->GetOne("Select zan from dede_archives where id='".$id."'");
    $zan = $rows['zan'];
    echo $zan;
}else{
    echo "赞过了..";
}
至此,点赞功能已经开发完成。以上步骤确保了用户可以为内容点赞,并且同一IP地址不会重复点赞。这样的功能不仅可以提升用户体验,还能增加用户参与度。

相关文章

  • Dedecms 删除文档时同时清除文章中图片的方法

    Dedecms 删除文档时同时清除文章中图片的方法

    在网站建设与维护的过程中,优化代码结构和功能是提升网站性能的重要步骤。本文将介绍如何通过自定义函数实现文章删除时自动清理相关资源的功能,从而提高系统的整洁性和存储效率。以下是具体的操作步骤及代码实现。首先, 在 `/include` 目录下创建一个名为 `extend.func.php` 的文件...
    2025-03-31
  • Dedecms上传图片提示302错误ERROR的解决方法

    Dedecms上传图片提示302错误ERROR的解决方法

    在进行图片上传操作时,用户可能会遇到302错误以及带有ERROR提示的图片上传失败问题。这些问题可能由多种原因引发,因此本文将对这些情况进行整理,以帮助大家更有效地定位并解决问题。 第一种情况:图片文件本身损坏。 这种情况会导致系统返回ERROR错误提示,不过发生概率较低。如果怀疑是图片损坏导致的...
    2025-03-31
  • DEDECMS模板使用教程

    DEDECMS模板使用教程

    如果您正在寻找一种高效的方法来使用Dedecms模板搭建网站或论坛,那么本文将为您提供详尽的指导。从模板解压到最终完成配置,每一步都将清晰呈现,帮助您快速掌握整个流程。 第一步:解压Dedecms模板 将下载的Dedecms模板文件解压出来,确保所有文件完整无误。如下图所示: 第二步:获取D...
    2025-03-31
  • Dedecms Dede 附加表自定义字段与主表文章关联方法

    Dedecms Dede 附加表自定义字段与主表文章关联方法

    在使用DedeCMS开发装修网站时,设计师和设计作品之间的关联是一个重要的功能需求。通常情况下,文章(作品)的内容部分存储在主表dede_addonarticle中,而自定义字段则存储在附加表dede_archives中。为了实现这一功能,可以采用以下两种方法。 ① 根据发布人调用相关文章; ...
    2025-03-31

公众号