帝国cms首页列表页如何实现点赞功能

查看帝国cms建站程序新闻系统的内容页模版代码,找到顶一下的HTML代码块,如下所示:

<table border="0" align="center" cellpadding="0" cellspacing="0" class="digg"> 
<tr> 
<td class="diggnum" id="diggnum"><strong><script type="text/javascript" src="[!--news.url--]e/public/ViewClick/?classid=[!--classid--]&id=[!--id--]&down=5"></script></strong></td> 
</tr> 
<tr> 
<td class="diggit"><a href="JavaScript:makeRequest('[!--news.url--]e/public/digg/?classid=[!--classid--]&id=[!--id--]&dotop=1&doajax=1&ajaxarea=diggnum','EchoReturnedText','GET','');" rel="external nofollow" >来顶一下</a></td> 
</tr> 
</table>

由以上代码可知,当前的总顶数是通过动态脚本载入的方式实时输出,而a标签上的makeRequest()函数就是用来实现顶一下功能的方法。makeRequest()函数的第一个参数是请求地址并附带参数数据,第二个参数是成功请求后执行的回调函数名,第三个参数指定以GET方式发送请求。了解实现的原理之后就很容易在网站其他页面上实现顶一下(点赞)功能,以下给出实现方法的相关代码。

例如我们需要在产品列表模板页面上实现顶一下功能,那么首先就需要修改产品列表模板的代码,以下是我修改后的列表模板代码:

页面模板内容

<!DOCTYPE html> 
<html lang="zh"> 
<head> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta charset="utf-8"> 
<title><?php echo ReturnClassAddField(0,"seotitle");?></title> 
<meta name="keywords" content="[!--pagekey--]"> 
<meta name="description" content="[!--pagedes--]"> 
<link rel="stylesheet" href="[!--news.url--]index/css/style.css" rel="external nofollow" > 
</head> 
<body> 
<div class="head_about">[!--temp.header--]</div> 
<div class="bannProOuter"><div class="bannPro"><ul><li><a class="current" href="<?=sys_ReturnBqClassname($class_r[1],9)?>" rel="external nofollow" ><?=$class_r[1][classname]?></a></li></ul></div></div> 
<div class="proOuter"><div class="proInner clearfix"> 
  <div class="proSort"> 
    <ul> 
[e:loop={"select classid,classname,classpath from phome_enewsclass where classid in (7,8,9,10,11) order by classid asc",0,24,0}] 
<?php 
if($bqno==5){ 
  echo '<li class="lastChild">'; 
}else{ 
  echo "<li>"; 
} 
$titleclass=""; 
if($bqr[classid]==$GLOBALS[navclassid]){ 
  $titleclass="current"; 
} 
?> 
<a href="<?=$bqsr[classurl]?>" rel="external nofollow" class="<?=$titleclass?>"><?=$bqr[classname]?></a></li> 
[/e:loop] 
    </ul> 
  </div> 
  <div class="selectNumberScreen"><div class="screenBox"><?=user_ShowFieldandChange()?></div></div> 
  <div class="proList clearfix"><ul>[!--empirenews.listtemp--]<!--list.var1-->[!--empirenews.listtemp--]</ul></div> 
  <div class="page2 txtC">[!--show.listpage--]</div> 
</div></div> 
[!--temp.footer--] 
<script type="text/javascript"> 
$(".proList .photo").hover(function(){$(this).find(".txt").stop().animate({height:"300px"},300);},function(){$(this).find(".txt").stop().animate({height:"0px"},300);}); 
</script> 
</body> 
</html>

列表内容模板(list.var)

$nomar=""; 
if($no%4==0){$nomar=" class=\"nomar\"";}else{$nomar="";} 
if($r[titlepic]){$tpic=sys_ResizeImg($r[titlepic],300,300,1,"");}else{$tpic="/e/data/images/notimg.gif";} 
$listtemp='<li'.$nomar.'><div class="photo"><img src="'.$tpic.'"><a href="[!--titleurl--]" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><div class="txt"><h4>查看<br>详情</h4></div></a></div> 
<b><a href="[!--titleurl--]" rel="external nofollow" rel="external nofollow" rel="external nofollow" >[!--title--]([!--model--])</a></b> 
<a href="[!--titleurl--]" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="icon-thumbs-up" data-classid="[!--classid--]" data-id="[!--id--]"><em>[!--diggtop--]</em>人赞过</a></li>'; 
最后在底部模板里或JS文件中加入以下js代码,大功告成
[html] view plain copy print?
<script type="text/javascript"> 
$(".icon-thumbs-up").click(function(event){ 
  event.preventDefault(); 
  var mythis = $(this); 
  var classid = mythis.data("classid"); 
  var id = mythis.data("id"); 
  $.ajax({ 
    type:"GET", 
    url:"[!--news.url--]e/public/digg/", 
    data:{"classid":classid,"id":id,"dotop":1,"doajax":1,"ajaxarea":"diggnum"}, 
    dataType:"text", 
    success:function(data){ 
      var reinfo = data.split("|"); 
      if (reinfo.length != 1) { 
        if (reinfo[0] != "") { 
          mythis.find("em").html(reinfo[0]); 
        } 
        if (reinfo[2] != "") { 
          //var left = parseInt(mythis.offset().left)+20, top = parseInt(mythis.offset().top); 
          var left = 20, top = mythis.find("em").get(0).offsetHeight; 
          $(".zan").remove(); 
          if (reinfo[2] == "谢谢您的支持") { 
            mythis.append('<div class="zan">+1 谢谢您的支持</div>'); 
            //$("body").append('<div class="zan">+1 谢谢您的支持</div>'); 
          }else{ 
            mythis.append('<div class="zan">已赞</div>'); 
            //$("body").append('<div class="zan">已赞</div>'); 
          } 
          //"text-shadow":"0 1px 0 rgba(0,0,0,0.5)","font-family":"simsun" 
          $(".zan").css({"position":"absolute","z-index":"10","left":left+"px","top":-top+"px","color":"inherit"}).animate({top:-top-30},"slow",function(){$(this).fadeIn("fast").remove();}); 
        } 
      }else{} 
    } 
  }); 
}); 
</script>

原创文章,作者:DQTQZ,如若转载,请注明出处:http://www.wangzhanshi.com/n/10032.html

(0)
DQTQZ的头像DQTQZ
上一篇 2025年1月1日 16:55:10
下一篇 2025年1月1日 16:55:12

相关推荐

  • 选择phpcms的理由

    理由如下: 1、PHPCMS使用方便 每更新一篇文章会自动更新首页以及文章所在栏目页,不像其他CMS每次更新完毕后,还要点击生成首页,生成栏目页,很麻烦。 2、phpcms关键字替…

    网站建设 2025年1月2日
  • PHPCMS不能支持PHP7吗

    PHPCMS支持PHP7,在官方升级更新日志中已经说明了最新版支持“PHP5.5”、“PHP5.6”和“PHP7”,PHPCMS是一款网站管理软件,该软件采用模块化开发,支持多种分…

    网站建设 2025年1月2日
  • 织梦CMS调用问答栏目文章到首页的方法

    织梦CMS调用问答栏目文章到首页的方法: 使用织梦DEDECMS问答模块的站长还是挺多的,织梦问答系统高分悬赏问题,待解决问题,新解决问题,推荐问题等需要在网站里面调用,比如调用到…

    网站建设 2025年1月2日
  • 如何正确选择CMS

    一般情况下,初级程序猿无非是用企业站CMS居多,少数部分会接到一些简单的行业站。 首先,你要弄清楚你现在是属于哪个级别,如果是什么都不懂的,就想直接弄一个CMS,包括模板也不修改的…

    网站建设 2025年1月2日
  • 修改phpcms导航链接的方法

    phpcms导航链接怎么修改 有两种方法可以实现更改phpcms导航链接: 1、在后台添加一个栏目,方式是外部链接,链接地址自己填写,并设为导航栏显示,位置不对时,可以设置一下排序…

    网站建设 2025年1月2日
  • dedecms和phpcms的介绍

    dedecms简介 织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展,目前…

    网站建设 2025年1月2日
  • 无法访问phpcms网页怎么办

    phpcms网页无法访问的解决办法:首先修改“/caches/configs/system.php”里面所有和域名有关的;然后对相应的站点的域名进行修改;接着更新系统缓存,并把附件…

    网站建设 2025年1月2日
  • phpcms联动菜单的使用方法

    phpcms联动菜单如何使用 在phpcms中,联动菜单的管理位置位于“后台-扩展-联动菜单”支持自定义添加,联动菜单一般有使用用法: 一、在数据模型中创建自定义字段时,字段类型设…

    2025年1月2日
  • 解决phpcms中hash数据验证失败的问题

    phpcms hash数据验证失败怎么解决 phpcms在修改个别文章的时候保存失败,提示hash数据验证失败。下面说说怎么解决吧。 1、首先找到 php.ini 文件 我的是放在…

    网站建设 2025年1月2日
  • 解决phpcms v9安装无法连接数据库的问题

    phpcms v9安装无法连接数据库怎么办? phpcms v9安装提示“数据库连接错误”解决方法 描述: 今天在搭建phpcms v9 程序时,进行到第五步安装程序一直提示“无法…

    2025年1月2日

发表回复

登录后才能评论