【Discuz插件】围棋在线打谱

这是我第一个discuz插件,用一年多discuz了,头一次弄个像样的插件。

 

围棋在线打谱,用现成的flash打谱程序,只需要嵌入discuz即可,非常简单的一件事。可是我PHP刚入门,javascript基本没学,参考类似的插件也用了近一天才出成品,修改bug又差不多用了一下午。  /lh/

下图是插件效果,棋盘大小可调。

discuz围棋在线打谱

关于棋盘大小,还有一段波折,一开始没有缓存插件变量值就直接读取了插件变量,结果都是空值,不管怎么设置棋盘大小都是一样的,提交审核后才发现,于是连夜修改。最终通过定义私有成员解决了问题,第二天,应用中心发来审核失败的邮件:

discuz围棋在线打谱

看来应用中心审核还真仔细。

急急忙忙把昨天修复过的打包发过去,然后在测试,发现非法SGF棋谱会导致flash未响应,网页卡死的现象,于是又开始了苦逼的修改。一开始在javascript代码中忙活,从编辑器工具中输入的代码确实是可以处理了,可是如果直接手敲代码javascript就无能为力了,最终还是得靠服务器端检查。只能去改php代码了。代码是基于其他插件修改的,这次才发现,原来代码的正则匹配根本不适合现在的要求,SGF棋谱是以 “(;”开头,以”)”结尾的,只要出现“(;)”,flash就不会卡死。于是修改正则匹配为:

/\s?\[go\][\n\r]*(\(;.+?\))[\n\r]*\[\/go\]\s?/es'

很多功能可以用类似的方法实现,接下来几天在试试代码高亮和围棋习题。

下面给出插件在应用中心的链接,欢迎有围棋需求的论坛多多支持:

http://addon.discuz.com/?@zxsq_sgfview.plugin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注