Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[经验] techweb下的送礼、投票、问答插件在1.5RC1下问题解决总结(新增导航记录方案)

[复制链接]
koolea 发表于 2008-8-13 09:36:53 | 显示全部楼层 |阅读模式
本人对PHP不熟,但程序大概还能读懂,自己研究了几天,1.5下产生的一些问题解决了一下,本来去问TECHWEB的工程师的,但人家一句“半年内不准备升级到1.5”就把我堵回来,没办法,自给自足吧。

另外,此类问题的解决希望能帮助各位插件作者更好的维护老插件,推出新插件,我是殷切希望啊。

1、对于提交按钮的点击,因为1.5RC1增加了提交验证,因此插件要随之作出更改,经过对比版本后主要是要增加一个隐含域,因此修改方案如下:

送礼:找到gift\view\文件夹
投票:找到vote\view\文件夹
问答:找到ask\view\文件夹

在其中所有的html文件中,在所有的</form>标签前增加语句“<input type="hidden" name="formhash" value="<!--{eval echo formhash();}-->" />”,这将产生一个供验证的随机HASH值

2、问答的积分问题

找到ask_cp.php,其中找到“if ($_SGLOBAL['member']['credit'] < $score)”把它替换为
“$space = getspace($_SGLOBAL['supe_uid']);
if ($space['credit'] < $score)

另外SUP老大提出的替换为
“getmember();
if ($_SGLOBAL['member']['credit'] < $score)

我没有测试,我估计这样做是为了提高效率,从缓存中获取,但我没有选用,担心这样会影响积分同步。

3、投票的评论问题

首先,要保证source\cp_comment.php是1.5的原版
其次,请按照以下修改:
找到第一个“case 'sid':”,107行左右
在它下的“break;”后增加以下代码:

//为了投票能使用系统评论而添加 1
                case 'app_vote_id':       
                        //事件
                        $fs['title_template'] = "{actor} 评论了".$_POST['app_name']." {touser}";
                        $fs['title_data'] = array('touser'=>"<a href=\"".$_POST['refer']."\">{$_POST['app_title']}</a>");
                        $fs['body_template'] = '';
                        $fs['body_data'] = array();
                        //$fs['body_general'] = '';
                        break;       

找到第二个“case 'sid':”,173行左右
在它下的“break;”后增加以下代码:

//为了投票能使用系统评论而添加        2
                case 'app_vote_id':
                        $n_url = "app.php?do=vote&ac=view&id=$id&uid=$tospace[uid]";
                        $note_type = 'app_comment';
                        $note = "评论了你的投票 <a href='{$n_url}' target='_blank'>".addslashes($_POST['app_title'])."</a>";
                        $q_note = "回复了你的投票 <a href='{$n_url}' target='_blank'>".addslashes($_POST['app_title'])."</a>";
                        $msg = 'do_success';
                        $magvalues = array();
                        $msgtype = 'app_comment';
                        break;       

找到第三个“case 'sid':”,333行左右
在它下的“break;”后增加以下代码:

case 'app_vote_id':
                        $cspace = array('uid'=>$_POST['app_uid'], 'username'=>$_POST['app_username'], 'app_title'=>$_POST['app_title'], 'app_link' => $_POST['refer'], 'app_name' =>$_POST['app_name']);
                        //检索空间
                        $tospace = getspace($_POST['app_uid']);
                        break;

这样就可以了,改不动的把附件解开覆盖也行,注意做好备份

4、在导航条加载历史记录,因个人时间关系还未解决,据闻做奴隶的阿塞解决了,可以找他问问,如果我解决了会把解决方案尽快发出来

注:
1、修改完,缓存清理很重要哦
2、插件最好在1.2上装完再升级,千万不要在1.5上直接装
3、1.5的安装最后一步是提示删除多余表和字段,千万不要删,忽略过去就行

[ 本帖最后由 koolea 于 2008-8-13 11:06 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

2

查看全部评分

 楼主| koolea 发表于 2008-8-13 09:38:10 | 显示全部楼层
宣传一下自己的小站:露pp的穷苦力们 pp.koolea.com

大家有好的插件别忘了告诉我一声啊
回复

使用道具 举报

5979772 发表于 2008-8-13 09:44:40 | 显示全部楼层
回帖一种美
回复

使用道具 举报

maoqoo 发表于 2008-8-13 09:52:24 | 显示全部楼层
顶起。。。
导航条部分需要用插件管理平台吧 manyou的提供了吗
回复

使用道具 举报

luring 发表于 2008-8-13 10:00:14 | 显示全部楼层














.
回复

使用道具 举报

 楼主| koolea 发表于 2008-8-13 11:06:06 | 显示全部楼层

导航部分修改

在ask.php,vote.php,gift.php

在“//获取变量”前添加如下代码

//更新活动session
if($_SGLOBAL['supe_uid']) {
        getmember(); //获取当前用户信息
        updatetable('session', array('lastactivity' => $_SGLOBAL['timestamp']), array('uid'=>$_SGLOBAL['supe_uid']));
}

//添加窗口
window_set("问答", 'ask.php');

最后一句可以修改指定的标题和路径
回复

使用道具 举报

wagcog 发表于 2008-8-13 11:18:14 | 显示全部楼层

回复 6# koolea 的帖子

这个不错
回复

使用道具 举报

liangfan3721 发表于 2008-8-13 11:38:16 | 显示全部楼层
恩。支持。。。。
回复

使用道具 举报

 楼主| koolea 发表于 2008-8-13 15:21:46 | 显示全部楼层
自己顶自己一下,免得大家重复劳动
回复

使用道具 举报

lino310 发表于 2008-8-13 15:44:28 | 显示全部楼层
顶一下
有用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 01:57 , Processed in 0.035837 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表