::NoName Magazine 无名杂志 » Project Parasy » [PP插件] 会员头像展示Ajax缓存版1.0 完成~


2008-2-19 23:03 exgbit
[PP插件] 会员头像展示Ajax缓存版1.0 完成~

[PP插件] 会员头像展示Ajax缓存版1.0
/*  Project Parasynthesis 插件
会员头像展示Ajax缓存版
版本:1.0
exgbit(果比)  sai
支持站:[url=http://saicn.com/bbs/]http://saicn.com/bbs/[/url]
*/

比起0.5改进:
1、采用ParasyCore.php更新缓存
2、读取首页时,采用php随机读取,避免了ajax冲突
3、保留了ajax方式,ajax即时刷新头像覆盖php读取内容
4、FF行显示


安装:

1、上传exgbit_avatar.js到include\javascript\文件夹下

2、打开parasy_json_tab.php
找到[code] case 'json_home_tab_latest':[/code]在上面加上[code] case 'json_exg_ava':
  require_once DISCUZ_ROOT.'./forumdata/cache/cache_exgbit_ava.php';
  $top = array();
  $i = 0;
  foreach($exgava as $exgav) {
   $i++;
   $exga[$i]['uidav'] = $exgav['uidav'];
   $exga[$i]['picav'] = $exgav['picav'];
   $exga[$i]['nameav'] = iconv('gbk', 'utf-8', $exgav['nameav']);
   $exga[$i]['nicknameav'] = iconv('gbk', 'utf-8', $exgav['nicknameav']);
  }
  header('Content-type: text/plain; charset=utf-8');
  header('Cache-control: no-cache, must-revalidate');
  if (function_exists('json_encode')) {
   $encoded = json_encode($exga);
  } else {
   $encoded = Zend_Json::encode($exht);
  }
  echo $encoded;
  break;[/code]3、打开ParasyCore.php
找到[code]?>[/code]在上面加上[code]/*Parasy || Exgbit Ajax Avatar*/
function exg_avas() {
global $db, $_DCACHE, $timestamp, $tablepre, $discuz_uid, $member;
$data = array();
$query_exgava = $db->query("SELECT cm.uid,username,nickname,avatar from {$tablepre}members cm LEFT JOIN {$tablepre}memberfields cdm ON cm.uid=cdm.uid WHERE avatar !='' ORDER BY rand() LIMIT 20");
while($exgava = $db->fetch_array($query_exgava)) {
  $data['exgava'][$exgava[uid]]['uidav'] = $exgava['uid'];
  $data['exgava'][$exgava[uid]]['nameav'] = $exgava['username'];
  $data['exgava'][$exgava[uid]]['nicknameav'] = $exgava['nickname'];
  $data['exgava'][$exgava[uid]]['picav'] = $exgava['avatar'];
}
$data['exgava_expiration'] = 900 + time();
nmwritetocache(cache_exgbit_ava, '', nmgetcachevars($data),'','cache');
return $data['exgava'];
}
/*Parasy || Exgbit Ajax Avatar*/[/code]4、打开discuz.htm
找到[code]<!--{if $show_cloud == 0}-->
<div class="maintable" align="left">
<span class="tip_i">New in NoName [/code]在上面加上[code]<!--{if $exgava}-->
<div class="maintable" align="left"><table width="100%"><tr><td>
<script type="text/javascript" src="$bbsdir/include/javascript/exgbit_avatar.js"></script>
<ul class="tabs">
<li class="normal" id="exgava" onclick="initHomeTabs_ex('exgava')">会员头像展示(点击刷新) ...</li>
</ul>
<div id="home_tab_top_ex"></div><div id="home_tab_content_ex">
<table><tr>
<!--{loop $exgava $exga}-->
<!--{eval $i_exg ++;}-->
<!--{if $i_exg <= 6}-->
<td><a href="viewpro.php?uid=$exga[uidav]" class="friend"><img src="$exga[picav]" class="portrait" /><br />$exga[nameav]<div class="tip">$exga[nicknameav]</div></a></td>
<!--{/if}-->
<!--{/loop}-->
</tr></table>
</div>
</td></tr></table>
</div>
<!--{/if}-->[/code]下载文件:[url=http://www.51ok.com/filedown-803967239.html]http://www.51ok.com/filedown-803967239.html[/url](exgbit_avatar.js)

预览:
[url=http://tu.6.cn/pic/id/e306ee7cc601ef91b12ff1d82dce6510][img]http://tu.6.cn/img/id/e306ee7cc601ef91b12ff1d82dce6510[/img][/url]上图红色区域,点击可即时刷新头像。

演示:[url=http://www.csustbbs.net/bbs/]http://www.csustbbs.net/bbs/[/url]

[[i] 本帖最后由 exgbit 于 2008-2-20 00:02 编辑 [/i]]

2008-2-19 23:06 exgbit
补充:

6、打开index.php

找到:[code]$gid = !empty($gid) ? intval($gid) : 0;
if(!$gid) {[/code]在上面加上:[code]/*Parasy || Exgbit Ajax Avatar*/
@include DISCUZ_ROOT.'./forumdata/cache/cache_exgbit_ava.php';
if((@!include('forumdata/cache/cache_exgbit_ava.php')) || $exgava_expiration < time()) {
        $exgava = exg_avas();
} else {
        $exgava = $exgava;
}
@shuffle($exgava);
/*Parasy || Exgbit Ajax Avatar*/[/code]

[[i] 本帖最后由 exgbit 于 2008-2-19 23:07 编辑 [/i]]

2008-2-20 00:08 Sai
这是我见过的最快的版本升级....

Good job!

2008-2-20 07:57 exgbit
...插件嘛..没必要那么讲究哈.. = 3 =

关键功能上已经完善了,应该不用大动,直接1.0...

2008-2-20 11:46 kinway
哈哈 好东西~!
不过我有个小问题 就是我论坛里面有很多会员没有了头像 或者头像过期了 如何把这些会员的头像都默认为noavatar呢?

2008-2-20 11:52 exgbit
要把这些会员都赛选出来,有没有什么共同特征呢?

如果实在没有,干脆点

一次性把全部会员头像都清空,都重新上传

sql:
UPDATE `cdb_memberfields` SET `avatar` = ''

2008-2-20 12:40 Sai
[code]
UPDATE `cdb_memberfields` SET `avatar` = '' ` WHERE `avatar` LIKE 'http%';[/code]
清空使用url作为头像的会员

2008-2-20 21:40 kinway
感谢两位的帮助,可是用

UPDATE `cdb_memberfields` SET `avatar` = '' ` WHERE `avatar` LIKE 'http%';

提示错误

。。。

然后我又发现 在无名这直接点击copy to clipboard
会连着[Copy to clipboard]CODE:都copy掉

2008-2-20 22:36 exgbit
[code]
UPDATE `cdb_memberfields` SET `avatar` = ''  WHERE `avatar` LIKE 'http%';[/code]

2008-2-20 22:53 Sai
恩……where前面多了一个`

2008-2-21 01:23 kinway
哈 that's it

2008-2-21 01:27 kinway
基本搞定咯(ll05)

[[i] 本帖最后由 kinway 于 2008-2-21 10:35 编辑 [/i]]

2008-2-21 20:51 Sai
这个会整合到r46里

2008-2-25 22:51 hanzi
开始使用的0.5的一直有问题

现在这个出来了
是直接按上面操作还是怎么去升级?

2008-2-25 23:11 Leeiio
那个个人主页被浏览的次数也应该在r46里了吧

2008-2-29 10:01 aquino
檔案沒了~可否再放到儲存較長的空間.....(ll11)

2008-3-1 11:57 exgbit
安装1.0是全新安装,如果曾装过0.5,请先卸载...

2008-3-1 16:45 aquino
(ll11)下載不到exgbit_avatar.js這支檔案。

2008-3-2 01:32 exgbit
那个空间不经用...我重新上传...

2008-4-13 17:25 Sonic
有点问题,就是使用的会员的昵称,很多会员都没有昵称的。那么鼠标放上去后,上面就显示一条橘黄色的线。有什么方法修改呢?

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.