DedeCMS会员中心调用会员心情列表

       DedeCMS会员中心能发布会员心情,有点像社交软件的说说,但会员中心并没有显示列表,只是显示最新的一个心情。网上也没有类似的教程,干脆自己来!参考会员中心的ajax加载最新文档、我的动态、全站动态这个功能,做了一个教程和大家分享一下。

       做啦做啦的PHP和ajax基础并不好,有弄得不好的地方欢迎指出。

       DedeCMS会员中心首页有两个小BUG,如果你的CMS没有把“我的动态”、头像旁边的“我的心情”正常加载出来,就先看看《DedeCMS后台与会员中心会员心情显示乱码处理》《DedeCMS后台与会员中心会员动态管理不显示修复》。

       打开/member/templets/index.htm,“发表”下面的动态加载里增加“我的心情”选项卡,按照下面修改好。

<li id="xinqing"><a href="javascript:void(0)">我的心情</a></li>
<li id="arcticle"><a href="javascript:void(0)">最新文档</a></li>
<li class="thisTab" id="myfeed"><a href="javascript:void(0)">我的动态</a></li>
<li id="allfeed"><a href="javascript:void(0)">全站动态</a></li>

       修改后如下图:

DedeCMS会员中心发布心情

       直接点击“我的心情”是没有点击效果也没有任何内容显示,和Javascript的选项卡直接显示内容不同,里面的内容需通过ajax调用。

       打开/member/templets/js/feed.js,找到

$("#mood").removeClass("thisTab"); //共有3处

       三处代码下面增加

$("#xinqing").removeClass("thisTab"); 

       在代码的最下面增加

//我的心情按钮
$(function(){
 $('#xinqing').click(function() {
  $.ajax({
   type: "GET",
   url: "feed.php?type=xinqing",
   dataType: "json",
   success : function(data){
   $('#FeedText').empty();
   var html = '';
   $.each( data  , function(commentIndex, comment) {
   html += '<p class="feeds_title"><span><a href="/member/index.php?uid='+ comment['userid'] +'">'+ comment['userid'] +'</a>' + comment['msg'] + ' <em>' + comment['dtime'] + '</em></span><p>' + '</p></p>';
  })
   $('#FeedText').html(html);
   $("#xinqing").addClass("thisTab"); 
   $("#myfeed").removeClass("thisTab");
   $("#allfeed").removeClass("thisTab");
   $("#arcticle").removeClass("thisTab");
   }
  });
 });
})

       注意到“feed.php?type=xingming”,这里ajax请求需要增加一个type参数值xingming。

       打开/member/feed.php,找到

//选择数据库

       增加一个else if条件,继续找到

else {
require_once(DEDEINC.'/channelunit.func.php');

       在这段代码前增加下面代码

//我的心情swww.zuola.net by 做啦
else if ($type=="xinqing"){    
 $sql="SELECT * FROM `dede_member_msg`  where mid='".$cfg_ml->M_ID."' ORDER BY dtime DESC limit 8";
 $dsql->SetQuery($sql);
 $dsql->Execute();
 while ($row = $dsql->GetArray()) {
  if($cfg_soft_lang == 'gb2312') {
   $row['userid'] = gb2utf8($row['userid']);
   $row['msg'] = gb2utf8(htmlspecialchars_decode($row['msg'],ENT_QUOTES));
   $row['dtime']= gb2utf8(FloorTime(time()- $row['dtime']));
   }else{
   $row['userid'] = gb2utf8($row['userid']);
   $row['msg'] = htmlspecialchars_decode($row['msg'],ENT_QUOTES);
   $row['dtime']= FloorTime(time()- $row['dtime']);
   }
   $feeds[] = $row;
  }
}

       这样会员中心就能把我的心情加载出来啦。

DedeCMS会员中心调用我的心情列表

       对会员心情还应该有删除功能,有兴趣的童鞋可以参考一下“我的动态”的删除方法。另外“我的心情”不建议全站动态显示,这样给一些会员乱发心(lao)情(sao)就不好了。可以对会员动态需要审核:后台-系统-系统基本设置-会员设置,“会员动态是否许需要审核”选择是。