-
Notifications
You must be signed in to change notification settings - Fork 1
/
sgfview.class.php
113 lines (94 loc) · 3.37 KB
/
sgfview.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
/*
* sgfview 1.2 by tecbbs.com
* 2013-7-23
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class plugin_zxsq_sgfview {
function global_header() {
global $_G;
@extract($_G['cache']['plugin']['zxsq_sgfview']); //缓存插件变量值
if($seletSgfviewer=="1") {
$script = "<script type=\"text/javascript\" src=\"source/plugin/zxsq_sgfview/tools/sgf/flash_goban.js\"></script>";
} else {
$script = "";
}
//浏览帖子时才插入脚本
if(CURMODULE == 'viewthread') {
return $script;
}
return "";
}
function discuzcode($param) {
global $_G;
@extract($_G['cache']['plugin']['zxsq_sgfview']);//缓存插件变量值
// 如果内容中没有 go 的话则不尝试正则匹配
if (strpos($_G['discuzcodemessage'], '[/go]') === false) {
return false;
}
// 仅在解析discuzcode时执行对 go 的解析
if($param['caller'] == 'discuzcode') {
$_G['discuzcodemessage'] = preg_replace('/\s?\[go\][\n\r]*(.+?)[\n\r]*\[\/go\]\s?/ies', '$this->gelgo(\'\\1\')', $_G['discuzcodemessage']);
} else {
$_G['discuzcodemessage'] = preg_replace('/\s?\[go\][\n\r]*(.+?)[\n\r]*\[\/go\]\s?/ies', '', $_G['discuzcodemessage']);
}
}
function gelgo($sgfcode) {
global $_G;
@extract($_G['cache']['plugin']['zxsq_sgfview']);//缓存插件变量值
$lang=lang('plugin/zxsq_sgfview');
$sgfcode=str_replace("\n","",$sgfcode);
$sgfcode=str_replace("\r","",$sgfcode);
$sgfcode=str_replace("[hr]","[hr ]",$sgfcode); //[hr]和discuz水平线代码冲突
$newstr=substr($sgfcode,0,2);
if($newstr!=="(;" ||(!strpos($sgfcode,"]"))){
$sgfcode=lang('plugin/zxsq_sgfview','error');
}
$sgfcode=preg_replace('/\[url(.+?)\](.+?)\[\/url\]/','\\2',$sgfcode); //解决发链接时自动转[url]代码和sgf解析的冲突
if($seletSgfviewer=="1") {
if($goWidth <200 || $goHeight<300){
$goWidth=240;
$goHeight=450; //设置棋盘大小
}
if($goHeight/$goWidth < 1.6){
$goHeight=1.8*$goWidth; //控制棋盘长宽比例不要太离谱
}
include template('zxsq_sgfview:sgf');
return trim($sgfview);
} else if($seletSgfviewer=="2") {
if($goWidth<500) {
$goWidth=750;
$goHeight=550;
}
$panel=$goWidth/3; //解说栏宽度
include template('zxsq_sgfview:flashgoview');
return trim($flashgoview);
} else if($seletSgfviewer=="3")
{
include template('zxsq_sgfview:goswf');
return trim($goswf);
}
}
}
class plugin_zxsq_sgfview_forum extends plugin_zxsq_sgfview {
function post_editorctrl_left() { //函数名称就是前台页面嵌入点的名称
global $_G;
$lang = lang('plugin/zxsq_sgfview');
@extract($_G['cache']['plugin']['zxsq_sgfview']);//缓存插件变量值
if(!in_array($_G['fid'],(array)unserialize($isenable))) return '';
if($displayBtn) {
$btn = "
<link rel=\"stylesheet\" href=\"source/plugin/zxsq_sgfview/img/btn_sgf.css\" type=\"text/css\" />
<script src=\"source/plugin/zxsq_sgfview/js/addsgf.js\" type=\"text/javascript\"></script>
<a id=\"btn_sgf\" title=".lang('plugin/zxsq_sgfview','title')." onClick=\"addsgf('btn_sgf','".lang('plugin/zxsq_sgfview','title')."','".lang('plugin/zxsq_sgfview','l_submit')."','".lang('plugin/zxsq_sgfview','l_close')."','".lang('plugin/zxsq_sgfview','l_tips')."','".lang('plugin/zxsq_sgfview','l_help')."','"."')\" href='javascript:void(0);' >".lang('plugin/zxsq_sgfview','l_sgf')."</a>";
} else {
$btn = "";
}
return $btn;
}
}
class plugin_zxsq_sgfview_group extends plugin_zxsq_sgfview_forum {
}
?>