这是我第一个discuz插件,用一年多discuz了,头一次弄个像样的插件。
围棋在线打谱,用现成的flash打谱程序,只需要嵌入discuz即可,非常简单的一件事。可是我PHP刚入门,javascript基本没学,参考类似的插件也用了近一天才出成品,修改bug又差不多用了一下午。 /lh/
下图是插件效果,棋盘大小可调。
关于棋盘大小,还有一段波折,一开始没有缓存插件变量值就直接读取了插件变量,结果都是空值,不管怎么设置棋盘大小都是一样的,提交审核后才发现,于是连夜修改。最终通过定义私有成员解决了问题,第二天,应用中心发来审核失败的邮件:
看来应用中心审核还真仔细。
急急忙忙把昨天修复过的打包发过去,然后在测试,发现非法SGF棋谱会导致flash未响应,网页卡死的现象,于是又开始了苦逼的修改。一开始在javascript代码中忙活,从编辑器工具中输入的代码确实是可以处理了,可是如果直接手敲代码javascript就无能为力了,最终还是得靠服务器端检查。只能去改php代码了。代码是基于其他插件修改的,这次才发现,原来代码的正则匹配根本不适合现在的要求,SGF棋谱是以 “(;”开头,以”)”结尾的,只要出现“(;)”,flash就不会卡死。于是修改正则匹配为:
/\s?\[go\][\n\r]*(\(;.+?\))[\n\r]*\[\/go\]\s?/es'
很多功能可以用类似的方法实现,接下来几天在试试代码高亮和围棋习题。
下面给出插件在应用中心的链接,欢迎有围棋需求的论坛多多支持:
发表回复