草草整理一下思路,如果现在再不整理,估计就遥遥无期了。
第一:Hack思路。
1。本Hack彻底改变原LB的附件方式,所有的附件都在帖子里面以[ uploadfile=***]方式存在。
2。上传机制是在$usrfile目录下面建立tmp目录,在此目录下面以用户name分目录存临时上传的文件,可以限制每个人一次上传的个数。(目录程序自动处理)
3,在帖子提交时候,[b]选择插入[/b]的附件被处理。Copy到$usr/$foumid/XX目录下面,并且在帖子里面更新文件名字。
4。改革了附件都放在$usr/$foumid/根目录下面的习惯,在这个目录下面参考用户库再次分目录,使贴图区不在慢如蜗牛。(来自bbser老大的建议)
5。由于存储方式改变,所以和原来上传的旧格式完全兼容(牺牲了点速度)
6。全部转化中文,不建议出现中文目录和中文文件。
7。js实现插入。
8。没有插入帖子的存在与tmp目录下面的临时文件会在15分钟后自动删除。
第二:新建文件简单介绍
upfile.cgi 上传主界面,会被post.cgi等文件自动用iframe方式调用的。
其中函数:
sub uppic #界面函数
sub doupfile #处理上传函数
sub delup #删除已经上传的文件。
dopost.pl 函数模块,处理获取文件/copy数据/处理帖子cache/删除帖子/移动帖子等等的文件附件处理。
其中函数:
sub upfileonpost #提交的时候处理临时文件到合适的地方:)更新帖子
sub delupfiles #删除当前帖子全部附件(遍历帖子方式)---删除回复时候用
sub delallupfiles #删除当前主贴全部附件,全部删除的时候调用(cache方式)
sub moveallupfiles #移动/copy当前主贴全部附件,移动/copy的时候调用(cache方式)
sub getusrdir #获取临时文件夹,基本函数,上面的函数多调用他,获取$usr/tmp/等等。也负责创建目录,删除超时临时文件。加文件上传数目限制等等,中文处理等等
sub gettmpname #获取临时文件名字,也是基本函数,亦有中文处理等等
第三:修改办法(废话那么多,终于正题了)
1.界面修改,修改文件:fastreplay.pl,forumfastpost.pl,post.cgi,editpost.cgi
打开这些文件,找到:
改成
2。上传处理:
打开post.cgi
找到
改成
找到
删除或者屏障掉这句。
打开doaddnewtopic.pl
找到
删除或者屏障掉这句。
找到
改成
打开dotopicreplay.pl
找到
全部删除。
找到
删除。
找到
改成
3.修改帖子处理(有新上传)
打开editpost.cgi
找到
改成
找到
删除或者屏障掉这句。
找到
改成
找到
改成
4。处理删除回复,删除帖子/移动帖子。
打开delpost.cgi
找到
改成
找到
改成
找到
改成
找到
改成
打开jinghua.cgi
找到
改成
5。分论坛显示处理 打开 forums.cgi
找到
删除这些。
找到
改成
6.帖子显示处理
打开toptic.cgi
找到
改成
后面的代码
为大量的兼容代码。不与理会了。
7.标签转化。
打开code.cgi
找到
前面加上
完成。
可以看的出来,为了保持原来的兼容,保留了大量的代码。
草率之作,很多地方都可以完善,只是路杨精力不足了。
JS部分我今天测试时候,发现删除的js更新不会进行(难道又是IE5兼容)?其他的都是在IE5下正常运行。请Anthony老弟高手看看解决的问题。
注意事项
1。本功能适合XP/MX,改法相似。
2。本功能和LeoBBS的加密附件功能没有柔和,期待高手
3。本功能对显示下载功能有冲突,似乎我的改法已经破坏了这个功能?但是这个功能我是从来没有开放过。期待高手完善。
4。还是那句话,跟进官方升级的人不要用喔,有兼容问题
5。路杨的程序一般都会在每个程序段上加上功能注释,欢迎指教。
6。欠扁的话,路杨近来很忙……所以免责版本,请先备份。