NoName Mobile

登录
NoName » Project Parasy » [PP插件] 会员头像展示Ajax缓存版0.5

[PP插件] 会员头像展示Ajax缓存版0.5

by exgbit at 2008-2-19 18:51
/*  Project Parasynthesis 插件
会员头像展示Ajax缓存版
版本:0.5
exgbit(果比)
支持站:http://saicn.com/bbs/
邮箱:exgbit@126.com
*/

花了一个白天时间,把它做了出来,根据上次Sai说的那个思路 ---->
利用计划任务定时更新缓存(一次从数据库随机抽取20张头像),首页参照最新讨论的Ajax方式随机读取其中6张,显示在首页
由于跟最新讨论利用的是同一个Ajax,目前出现了一个问题...这个放后面说。

安装方法:

1、上传exgbit_avatar.inc.php文件至include\crons\文件夹下

2、到后台添加计划任务,设置每小时更新一次。

3、打开parasy_json_tab.php
找到
case 'home':
  dheader("Location: {$boardurl}");
  break;

在下面添加
case 'json_exg_ava':
require_once DISCUZ_ROOT.'./forumdata/cache/cache_exg_ava.php';
$top = array();
$i = 0;
foreach($_DCACHE['exgava'] as $exgava) {
$i++;
$exga[$i]['uidav'] = $exgava['uidav'];
$exga[$i]['picav'] = $exgava['picav'];
$exga[$i]['nameav'] = iconv('gbk', 'utf-8', $exgava['nameav']);  $exga[$i]['nicknameav'] = iconv('gbk', 'utf-8', $exgava['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;

4、上传exgbit_avatar.js至include\javascript\文件夹下

5、打开discuz.htm
找到
<!--{if $show_cloud == 0}-->
<div class="maintable" align="left">
<span class="tip_i">New in NoName

在上面加上

下载包: http://www.51ok.com/downlink-803967047.html   (里面有两个文件exgbit_avatar.inc.php和exgbit_avatar.js)

预览:http://www.csustbbs.net/bbs/

[ 本帖最后由 exgbit 于 2008-2-19 18:56 编辑 ]
# 1 - exgbit at 2008-2-19 18:56
这个会员展示功能可以即时“点击”刷新

上面说有个问题,就是打开首页时,最新讨论和这个头像展示,有一定几率只出现一个,另一个会一只显示"正在读取..."

Sai,知道什么原因不?
# 2 - exgbit at 2008-2-19 18:59
后来觉得可能两个公用某个相同的东东...

所以我的论坛目前干脆把头像展示直接读取switchHomeTabContentLoading_ex();就让它显示读取算了..反正可以点击刷新..
# 3 - anson at 2008-2-19 19:16
支持,(ll01) 如果是从最新发帖的用户群中随机抽取是不是会更好点?
# 4 - exgbit at 2008-2-19 19:22
由于利用的是缓存,最新发帖的会员头像也只能1个小时后才能随机显示出来,这样可以吗?
# 5 - Sai at 2008-2-19 19:29
原来的home_tabs.js只能get一个Obj,所以要更新页面里面别的obj会出现你说的那种情况

那个缓存其实可以不用计划任务,可以参照ParasyCore.php里的function topic_update()

======================
还有在FF下变成一竖列了。。。
# 6 - exgbit at 2008-2-19 20:06
...额
那暂时不用ajax好了....
参考hot_topic看看
# 7 - Sai at 2008-2-19 20:06
补充:
                @include(DISCUZ_ROOT.'./forumdata/cache/parasy_topic_answered.php');
                if((@!include('forumdata/cache/parasy_topic_answered.php')) || $topics_expiration < time()) {
                        $topic = topic_update('answered','t.lastpost DESC');
                } else {
                        $topic = $topics;
                }

来更新缓存
# 8 - exgbit at 2008-2-19 21:51
ajax冲突问题解决了哦~ 呵呵

第一次读取首页时,采用index.php读取,然后用ajax方式覆盖原php读取内容~这就避免了冲突。

可以说插件已经完成了~

剩下生成缓存参照PP的问题~
# 9 - anson at 2008-2-19 22:13

QUOTE:
原帖由 exgbit 于 2008-2-19 11:22 发表 http://www.saicn.com/bbs/images/common/back.gif http:///bbs/images/common/o_in_new.gif
由于利用的是缓存,最新发帖的会员头像也只能1个小时后才能随机显示出来,这样可以吗?

我觉得这样总比抽到一些万年潜水的头好,,还有这个会不会把没有头的也抽上来的./exgbit,你的网现在出错了.(ll05) 回来再试试,呵呵
 下一页 1/2 
© 2007 NoNameMagazine