找回密码
 立即注册
搜索

途迹耕耘

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

GMT+8, 2025-12-22 05:45 , Processed in 0.194872 second(s), 14 queries .

[DZ教程] discuz 用户主页的收听列表

[复制链接]
bdk 发表于 2020-5-2 07:28:01 | 显示全部楼层 |阅读模式
最近在做一个自定义的用户主页,需要用到收听和取消收听,但是默认的用户空间和card名片里的代码拿出来无效。所以自己改了下,只要能获取到双方uid即可在任意位置和页面使用。
只是简单的示例:
一.当前登陆用户与网友主页的收听关系,适用于单独按钮:
查询
  1. $ismyfav=DB::result_first("select followuid from ".DB::table("home_follow")." WHERE `uid` = $_G[uid] AND `followuid`=$_GET[uid]");
复制代码
然后模板中使用代码:
  1. <!--{if !$ismyfav}-->
  2. <a id="followmod" onclick="showWindow(this.id, this.href, 'get', 0);" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$_GET[uid]" class="btn btn-block btn-default">收听TA</a>
  3. <!--{else}-->
  4. <a id="followmod" onclick="showWindow(this.id, this.href, 'get', 0);" href="home.php?mod=spacecp&ac=follow&op=del&fuid=$_GET[uid]" class="btn btn-block btn-default">取消收听</a>
  5. <!--{/if}-->
复制代码
需要用到的JS
  1. <script type="text/javascript">
  2. function succeedhandle_followmod(url, msg, values) {
  3. var fObj = $('followmod');
  4. if(values['type'] == 'add') {
  5. fObj.innerHTML = '取消收听';
  6. fObj.href = 'home.php?mod=spacecp&ac=follow&op=del&fuid='+values['fuid'];
  7. } else if(values['type'] == 'del') {
  8. fObj.innerHTML = '收听TA';
  9. fObj.href = 'home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid='+values['fuid'];
  10. }
  11. }
  12. </script>
复制代码
二、关注我的/TA的
查询:
  1. $followinglists=array();
  2. $fgs=DB::query("SELECT a.*,b.* FROM ".DB::table("home_follow")." a LEFT JOIN ".DB::table("common_member")." b on b.uid=a.uid WHERE a.`uid` = $_GET[uid] AND b.`status`=0 ORDER BY a.`dateline` DESC LIMIT 0,50");
  3. while ($fg=DB::fetch($fgs)) {
  4.         $followinglists[]=$fg;
  5. }
复制代码
模板中调出列表:
  1. <!--{loop $followerlists $fls}-->
  2. <!--{eval $isuserfav=DB::result_first("select followuid from ".DB::table("home_follow")." WHERE `uid` = $_G[uid] AND `followuid`=$fls[fuid]");}-->
  3. <div class="col-xs-12 col-sm-6 col-md-4">
  4. <div class="media user-card">
  5. <div class="media-left"><a title=" href=""><img class="media-object avatar-48" src="uc_server/avatar.php?uid=$fls['fuid']&size=middle" alt="56"></a></div>
  6. <div class="media-body">
  7. <div class="media-heading"><a class="user-name" data-name="congteng" href="user.php?uid=$fls['fuid']">{$fls['uname']}</a></div>
  8. <div class="infos">
  9. <div class="item opts">
  10. <!--{if $_G[uid] == $_GET[uid]}-->
  11. <!--{if !$isuserfav}-->
  12. <a id="a_followmod_{$fls[fuid]}" onclick="ajaxget(this.href);doane(event);" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid={$fls[fuid]}">关注TA</a>
  13. <!--{else}-->
  14. <a id="a_followmod_{$fls[fuid]}" onclick="ajaxget(this.href);doane(event);" href="home.php?mod=spacecp&ac=follow&op=del&fuid={$fls[fuid]}">取消关注</a>
  15. <!--{/if}-->
  16. <!--{/if}-->
  17. <!--{if $fls['mutual']==1}-->[互相]<!--{else}-->[单向]<!--{/if}-->
  18. </div>
  19. </div>
  20. </div>
  21. </div>
  22. </div>
  23. <!--{/loop}-->
复制代码
我关注的:
查询:
  1. $followinglists=array();
  2. $fgs=DB::query("SELECT a.*,a.uid as fuid,b.* FROM ".DB::table("home_follow")." a LEFT JOIN ".DB::table("common_member")." b on b.uid=a.uid WHERE a.`uid` = $_GET[uid] AND b.`status`=0 ORDER BY a.`dateline` DESC LIMIT 0,50");
  3. while ($fg=DB::fetch($fgs)) {
  4.         $followinglists[]=$fg;
  5. }
复制代码
模板中调出列表
  1. <!--{loop $followinglists $fls}-->
  2. <!--{eval $isuserfav=DB::result_first("select followuid from ".DB::table("home_follow")." WHERE `uid` = $_G[uid] AND `followuid`=$fls[followuid]");}-->
  3. <div class="col-xs-12 col-sm-6 col-md-4">
  4. <div class="media user-card">
  5. <div class="media-left"><a title=" href=""><img class="media-object avatar-48" src="uc_server/avatar.php?uid=$fls['followuid']&size=middle" alt="56"></a></div>
  6. <div class="media-body">
  7. <div class="media-heading"><a class="user-name" data-name="congteng" href="user.php?uid=$fls['followuid']">{$fls['fusername']}</a></div>
  8. <div class="infos">
  9. <div class="item opts">
  10. <!--{if $_G[uid] == $_GET[uid]}-->
  11. <!--{if !$isuserfav}-->
  12. <a id="a_followmod_{$fls[followuid]}" onclick="ajaxget(this.href);doane(event);" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid={$fls[followuid]}">关注TA</a>
  13. <!--{else}-->
  14. <a id="a_followmod_{$fls[followuid]}" onclick="ajaxget(this.href);doane(event);" href="home.php?mod=spacecp&ac=follow&op=del&fuid={$fls[followuid]}">取消关注</a>
  15. <!--{/if}-->
  16. <!--{/if}-->
  17. <!--{if $fls['mutual']==1}-->[互相]<!--{else}-->[单向]<!--{/if}-->
  18. </div>
  19. </div>
  20. </div>
  21. </div>
  22. </div>
  23. <!--{/loop}-->
复制代码
所需JS
  1. <script type="text/javascript">
  2. function succeedhandle_followmod(url, msg, values) {
  3. var numObj = $('followernum_'+values['fuid']);
  4. if(numObj) {followernum = parseInt(numObj.innerHTML);}
  5. if(values['type'] == 'add') {
  6. if(values['from'] == 'head') {
  7. if($('followflag')) $('followflag').style.display = '';
  8. if($('unfollowflag')) $('unfollowflag').style.display = 'none';
  9. if($('fbkname_'+values['fuid'])) $('fbkname_'+values['fuid']).style.display = '';
  10. } else if($('a_followmod_'+values['fuid'])) {

  11. $('a_followmod_'+values['fuid']).innerHTML = '取消关注';
  12. if(values['from'] != 'block') {
  13. $('a_followmod_'+values['fuid']).className = 'flw_btn_unfo';
  14. }
  15. $('a_followmod_'+values['fuid']).href = 'home.php?mod=spacecp&ac=follow&op=del&fuid='+values['fuid']+(values['from'] == 'block' ? '&from=block' : '');

  16. }
  17. if(numObj) {
  18. numObj.innerHTML = followernum + 1;
  19. }

  20. } else if(values['type'] == 'del') {
  21. if(values['from'] == 'head') {
  22. if($('followflag')) $('followflag').style.display = 'none';
  23. if($('unfollowflag')) $('unfollowflag').style.display = '';
  24. if($('followbkame_'+values['fuid'])) $('followbkame_'+values['fuid']).innerHTML = '';
  25. if($('fbkname_'+values['fuid'])) {
  26. $('fbkname_'+values['fuid']).innerHTML = '[添加备注]';
  27. $('fbkname_'+values['fuid']).style.display = 'none';
  28. }
  29. } else if($('a_followmod_'+values['fuid']))  {
  30. $('a_followmod_'+values['fuid']).innerHTML = '关注TA';
  31. if(values['from'] != 'block') {
  32. $('a_followmod_'+values['fuid']).className = 'flw_btn_fo';
  33. }
  34. $('a_followmod_'+values['fuid']).href = 'home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid='+values['fuid']+(values['from'] == 'block' ? '&from=block' : '');
  35. }
  36. if(numObj) {
  37. numObj.innerHTML = followernum - 1;
  38. }
  39. } else if(values['type'] == 'special') {
  40. if(values['from'] == 'head') {
  41. var specialObj = $('specialflag_'+values['fuid']);
  42. if(values['special'] == 1) {
  43. specialObj.className = 'flw_specialfo';
  44. specialObj.innerHTML = '添加特别关注';
  45. } else {
  46. specialObj.className = 'flw_specialunfo';
  47. specialObj.innerHTML = '取消特别关注';
  48. }
  49. specialObj.title = specialObj.innerHTML;
  50. specialObj.href = 'home.php?mod=spacecp&ac=follow&op=add&hash=661ce971&special='+values['special']+'&fuid='+values['fuid']+'&from=head';
  51. } else {
  52. $('a_specialfollow_'+values['fuid']).innerHTML = values['special'] == 1 ? '添加特别关注' : '取消特别关注';
  53. $('a_specialfollow_'+values['fuid']).href = 'home.php?mod=spacecp&ac=follow&op=add&hash=661ce971&special='+values['special']+'&fuid='+values['fuid'];
  54. }
  55. }
  56. }
  57. function changefeed(tid, pid, flag, obj) {
  58. var x = new Ajax();
  59. var o = obj.parentNode;
  60. for(var i = 0; i < 4; i++) {
  61. if(o.id.indexOf('original_content_') == -1) {
  62. o = o.parentNode;
  63. } else {
  64. break;
  65. }
  66. }
  67. x.get('forum.php?mod=ajax&action=getpostfeed&inajax=1&tid='+tid+'&pid='+pid+'&type=changefeed&flag='+flag, function(s){
  68. o.innerHTML = s;
  69. });
  70. }
  71. function vieworiginal(clickobj, id) {
  72. var obj = $(id);
  73. if(obj.style.display == 'none') {
  74. obj.style.display =  '';
  75. clickobj.innerHTML = '- 收起';
  76. } else {
  77. obj.style.display =  'none';
  78. clickobj.innerHTML = '+ 展开全文';
  79. }
  80. }

  81. </script>
复制代码
因为改动频繁,代码比较随意。