2 if (!function_exists('sql_table'))
4 function sql_table($name) {
5 return 'nucleus_' . $name;
9 class NP_Board extends NucleusPlugin {
11 function getName() {return 'Board'; }
12 function getAuthor() { return 'nakahara21'; }
13 function getURL() { return 'http://xx.nakahara21.net/'; }
14 function getVersion() { return '0.31'; }
15 function getDescription() {
18 function getTableList() { return array( sql_table('plugin_bbs') ); }
19 function supportsFeature($what) {
21 case 'SqlTablePrefix':
28 $this->createOption("bbstitle", "Title of BBS", "text", "²¿¤Ç¤âBBS");
29 $this->createOption("bbsdesc", "ÀâÌÀʸ", "text", "²¿¤Ç¤â¤´¼«Í³¤Ë<br />¤ª½ñ¤²¼¤µ¤¤¤Í¡ª");
30 $this->createOption("bbsamount", "1¥Ú¡¼¥¸¤Ëɽ¼¨¤¹¤ëµ»ö¿ô", "text", "15");
31 // $this->createOption("name2", "desc2", "yesno", "yes");
32 $this->createOption("smily", "Convert smilies?", "yesno", "no");
33 $this->createOption("adminpass", "BBS admin password", "password", "password");
34 // $this->createOption("name4", "desc4", "textarea", "");
35 // $this->createOption("name5", "desc5", "select", "val1", "Opt1|val1|Opt2|val2|Opt3|val3");
36 $this->createOption("del_uninstall", "Delete tables on uninstall?", "yesno", "no");
38 $query = "CREATE TABLE IF NOT EXISTS ".sql_table('plugin_bbs');
39 $query .= "( bbsid int(11) NOT NULL auto_increment,";
40 $query .= " bbs_number int(11) NOT NULL default '0',";
41 $query .= " bbs_baseid VARCHAR(11) NOT NULL default 'B',";
42 $query .= " bbs_name varchar(50) default NULL,";
43 $query .= " bbs_userinfo varchar(100) default NULL,";
44 $query .= " bbs_pass varchar(50) NOT NULL default '',";
45 $query .= " bbs_mes text default NULL,";
46 $query .= " bbs_host varchar(60) default NULL,";
47 $query .= " bbs_ip varchar(15) NOT NULL default '',";
48 $query .= " bbs_date datetime NOT NULL default '0000-00-00 00:00:00',";
49 $query .= " PRIMARY KEY (bbsid))";
53 function uninstall() {
54 if ($this->getOption('del_uninstall') == "yes") {
55 mysql_query ("DROP table ".sql_table('plugin_bbs'));
60 $this->pageamount = $this->getOption('bbsamount');
64 //ºï½ü¤µ¤ì¤¿¥í¥°¤ËŬÍѤ¹¤ëname¤È¤Ê¤ë
65 $this->deny_name = "-";
68 ':mrgreen:' => 'smiles/icon_mrgreen.gif',
69 ':wink:' => 'smiles/icon_wink.gif',
70 ':lol:' => 'smiles/icon_lol.gif',
71 ':oops:' => 'smiles/icon_redface.gif',
72 ':cry:' => 'smiles/icon_cry.gif',
73 ':roll:' => 'smiles/icon_rolleyes.gif',
74 '8)' => 'smiles/icon_cool.gif',
75 ':?:' => 'smiles/icon_question.gif',
78 ':-D' => 'smiles/icon_biggrin.gif',
79 ':P' => 'smiles/icon_razz.gif',
80 ':-)' => 'smiles/icon_smile.gif',
81 ':o' => 'smiles/icon_surprised.gif',
82 ';-)' => 'smiles/icon_wink.gif',
83 ':|' => 'smiles/icon_neutral.gif',
84 ':?' => 'smiles/icon_confused.gif',
85 ':-(' => 'smiles/icon_sad.gif',
86 '8O' => 'smiles/icon_eek.gif',
87 ':idea:' => 'smiles/icon_idea.gif',
88 ':arrow:' => 'smiles/icon_arrow.gif',
89 ':!:' => 'smiles/icon_exclaim.gif',
90 ':x' => 'smiles/icon_mad.gif',
93 ':D' => 'smiles21/biglaugh.gif',
94 ':r' => 'smiles21/rolleyes.gif',
95 ':)' => 'smiles21/smile.gif',
96 ';)' => 'smiles21/wink.gif',
97 ':(' => 'smiles21/frown.gif',
98 ':n' => 'smiles21/eek.gif',
99 ':O' => 'smiles21/redface.gif',
102 $this->smiley = array_merge($smileys, $smileys21);
105 function doSkinVar($skinType, $bbs_number = '0', $show = '') {
106 global $CONF, $manager, $member;
108 $temp_params[1] = $bbs_number;
109 $temp_params[2] = $show;
110 if(!is_numeric($temp_params[1])){ $show = $temp_params[1]; }
111 if( is_numeric($temp_params[2])){ $bbs_number = intval($temp_params[2]); }
112 if(!is_numeric($bbs_number) || (!$temp_params[1] && !$temp_params[1]) ){ $bbs_number = '0';}
113 $data['bbs_number'] = $bbs_number;
114 $data['actionurl'] = $CONF['ActionURL'];
117 $sql = "SELECT * FROM ".sql_table('plugin_bbs');
118 $sql .= " WHERE bbs_number=".$bbs_number;
119 $sql .= ' ORDER BY bbsid DESC';
121 $res = mysql_query($sql);
122 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
123 echo $row["bbs_name"].'<br />';
124 echo " (".date("Y-m-d H:i", strtotime($row["bbs_date"])).")<br />";
125 // echo shorten(strip_tags($row["bbs_mes"]),40,'...');
126 echo $this->bbsBody(shorten(strip_tags($row["bbs_mes"]),40,'...'));
131 //======================================
133 //======================================
134 $uri = sprintf("%s%s%s","http://",$_SERVER["HTTP_HOST"],$_SERVER["REQUEST_URI"]);
137 $bbs_uri = parse_url($bbs_uri);
138 parse_str($bbs_uri['query'],$bbs_uri_query);
140 $this->currentpage = $bbs_uri_query['bbsp'];
141 if(intval($this->currentpage)>0){
142 $this->startpos = (intval($this->currentpage)-1) * $this->pageamount;
144 $this->currentpage = 1;
147 $bbs_uri['query'] = '';
148 foreach($bbs_uri_query as $q_key => $q_value){
149 if(!ereg('mode|bbsid|bbsp|bbsq', $q_key)){
150 $bbs_uri['query'][] = $q_key.'='.$q_value;
156 $bbs_uri['query'] = @join("&",$bbs_uri['query']);
157 if($bbs_uri['query']){
158 $bbs_uri = 'http://' . $bbs_uri['host'].$bbs_uri['path'].'?'.$bbs_uri['query'];
159 $this->pagelink = $bbs_uri.'&';
161 $bbs_uri = 'http://' . $bbs_uri['host'].$bbs_uri['path'];
162 $this->pagelink = $bbs_uri.'?';
166 //======================================
168 //======================================
169 $data['redirectTo'] = $bbs_uri;
170 $data['pagelink'] = $this->pagelink;;
171 $data['bbs_mes'] = '';
172 $data['type'] = 'add_mess';
173 $data['extrainput'] = '';
174 $data['submit'] = 'Á÷¿®';
175 if ($this->getOption('smily') == "yes") {
176 $data['smilies'] = $this->insertSmilies();
178 $data['smilies'] = '';
181 //======================================
182 //¥¯¥Ã¥¡¼ÆɤߤȤê (¥Ç¡¼¥¿¤ò¥»¥Ã¥È)
183 //======================================
184 if($member->isLoggedIn()){
185 $data['bbs_name'] = $member->getDisplayName();
186 $data['bbs_userinfo'] = $member->geturl();
188 if(cookieVar('comment_user')){
189 $data['bbs_name'] = htmlspecialchars(cookieVar('comment_user'));
191 $data['bbs_name'] = '';
193 if(cookieVar('comment_userid')){
194 $data['bbs_userinfo'] = htmlspecialchars(cookieVar('comment_userid'));
196 $data['bbs_userinfo'] = '';
199 if(cookieVar('bbs_pass')){
200 $data['bbs_pass'] = htmlspecialchars(cookieVar('bbs_pass'));
202 $data['bbs_pass'] = '';
204 if(cookieVar('comment_user')){
205 $data['check'] = '<input type="checkbox" value="1" name="remember" checked="checked" />cookie ';
207 $data['check'] = '<input type="checkbox" value="1" name="remember" />cookie ';
210 //======================================
211 //¸¡º÷·ë²Ìɽ¼¨ (µ»öɽ¼¨¤Ç½èÍýÃæ»ß)
212 //======================================
214 echo $this->getBBSTemplate(bbs_css);
215 echo '<h1>Search Results</h1>';
216 $this->bHighlight = explode(" ", getVar('bbsq'));
218 $sql = "SELECT * FROM ".sql_table('plugin_bbs');
219 $sql .= " WHERE bbs_number=".$bbs_number;
220 foreach($this->bHighlight as $s){
221 // $sql .= " and ((bbs_name LIKE '%" . addslashes($s) . "%') or (bbs_mes LIKE '%" . addslashes($s) . "%') or (bbs_host LIKE '%" . addslashes($s) . "%'))";
222 $sql .= " and ((bbs_mes LIKE '%" . addslashes($s) . "%'))";
224 $sql .= " ORDER BY bbsid DESC";
225 $res = mysql_query($sql);
227 $num_rows = mysql_num_rows($res);
229 if(cookieVar('comment_user')){
230 $data['extrainput'] = '<input type="hidden" value="2" name="remember" />';
232 $data['extrainput'] = '<input type="hidden" value="0" name="remember" />';
234 $data['bbsq'] = getVar('bbsq');
235 echo TEMPLATE::fill($this->getBBSTemplate(bbs_search),$data);
237 $pageswitch = $this->parse_pageswitch($bbs_number, $num_rows, urlencode(getVar('bbsq')));
240 $sql .= ' LIMIT ' . $this->startpos .',' . $this->pageamount;
242 $res = mysql_query($sql);
244 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
246 if (isValidMailAddress($row["bbs_userinfo"]))
247 $data["bbs_userinfo"] = '<a href="mailto:'.$row["bbs_userinfo"].'">M</a>';
248 elseif (strstr($row["bbs_userinfo"],'http://') != false)
249 $data["bbs_userinfo"] = '<a href="'.$row["bbs_userinfo"].'">W</a>';
251 $data["bbs_userinfo"] = '';
253 $data['bbs_date'] = date("Y-m-d H:i", strtotime($row["bbs_date"]));
255 if($row["bbs_name"]== $this->deny_name){
256 $data["bbs_mes"] .= '¤Ëºï½ü¤µ¤ì¤Þ¤·¤¿';
259 $query = "SELECT count(*) as ct FROM ".sql_table('plugin_bbs')." WHERE bbs_number=".$bbs_number." AND bbsid<=".$row["bbsid"];
260 $data['current_bbsid'] = mysql_result(mysql_query($query), 0, ct);
262 $query = "SELECT count(*) as ct FROM ".sql_table('plugin_bbs')." WHERE bbs_number=".$bbs_number." AND bbsid<=".$row["bbs_baseid"];
263 $data['baseid'] = mysql_result(mysql_query($query), 0, ct);
265 $data['editurl'] = $this->pagelink.'mode=edit&bbsid='.$row["bbsid"];
266 $data['resurl'] = $this->pagelink.'mode=res&bbsid='.$row["bbsid"];
267 $data['permalinkurl'] = $this->pagelink.'bbsid='.$row["bbsid"];
268 $data['bbs_mes'] = $this->bbshighlight($row["bbs_mes"]);
269 $data['bbs_mes'] = $this->bbsBody($data['bbs_mes']);
270 if($data['baseid'] > 0){
271 $data['bbs_mes'] = '[µ»öNo.'.$data['baseid'].' ¤Ø¤ÎÊÖ¿®]<br />'.$data['bbs_mes'];
273 echo TEMPLATE::fill($this->getBBSTemplate(bbslog),$data);
282 //======================================
283 //parmalinkɽ¼¨ (µ»ö1¤Äɽ¼¨¤Ç½èÍýÃæ»ß)
284 //======================================
285 if(!postVar('mode') && !getVar('mode') && intGetVar('bbsid')){
286 echo '<h1>permalink</h1>';
288 echo $this->getBBSTemplate(bbs_css);
289 $sql = "SELECT * FROM ".sql_table('plugin_bbs');
290 $sql .= " WHERE bbs_number=".$bbs_number;
291 $sql .= " AND bbsid=".intGetVar('bbsid');
292 $sql .= " ORDER BY bbsid DESC";
295 $res = mysql_query($sql);
297 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
299 if (isValidMailAddress($row["bbs_userinfo"]))
300 $data["bbs_userinfo"] = '<a href="mailto:'.$row["bbs_userinfo"].'">M</a>';
301 elseif (strstr($row["bbs_userinfo"],'http://') != false)
302 $data["bbs_userinfo"] = '<a href="'.$row["bbs_userinfo"].'">W</a>';
304 $data["bbs_userinfo"] = '';
306 $data['bbs_date'] = date("Y-m-d H:i", strtotime($row["bbs_date"]));
308 if($row["bbs_name"]== $this->deny_name){
309 $data["bbs_mes"] .= '¤Ëºï½ü¤µ¤ì¤Þ¤·¤¿';
312 $query = "SELECT count(*) as ct FROM ".sql_table('plugin_bbs')." WHERE bbs_number=".$bbs_number." AND bbsid<=".$row["bbsid"];
313 $data['current_bbsid'] = mysql_result(mysql_query($query), 0, ct);
315 $query = "SELECT count(*) as ct FROM ".sql_table('plugin_bbs')." WHERE bbs_number=".$bbs_number." AND bbsid<=".$row["bbs_baseid"];
316 $data['baseid'] = mysql_result(mysql_query($query), 0, ct);
318 $data['editurl'] = $this->pagelink.'mode=edit&bbsid='.$row["bbsid"];
319 $data['resurl'] = $this->pagelink.'mode=res&bbsid='.$row["bbsid"];
320 $data['permalinkurl'] = $this->pagelink.'bbsid='.$row["bbsid"];
321 $data['bbs_mes'] = $this->bbsBody($row["bbs_mes"]);
322 if($data['baseid'] > 0){
323 $data['bbs_mes'] = '[µ»öNo.'.$data['baseid'].' ¤Ø¤ÎÊÖ¿®]<br />'.$data['bbs_mes'];
325 echo TEMPLATE::fill($this->getBBSTemplate(bbslog),$data);
330 //======================================
331 //µ»ö¤ÎÊÔ½¸¡¢ºï½ü²èÌÌɽ¼¨ (¥Õ¥©¡¼¥àɽ¼¨¤À¤±¤Ç½èÍýÃæ»ß)
332 //======================================
333 if(getVar('mode') == 'edit' && intGetVar('bbsid')){
334 $data['bbsid'] = intGetVar('bbsid');
335 $data['type'] = 'update';
336 $data['extrainput'] = '<input type="hidden" name="bbsid" value="'.$data['bbsid'].'" />';
337 if(cookieVar('comment_user')){
338 $data['extrainput'] .= '<input type="hidden" value="2" name="remember" />';
340 $data['extrainput'] .= '<input type="hidden" value="0" name="remember" />';
342 $data['check'] = '*cookie will NOT be updated';
343 $data['submit'] = 'ÊÔ½¸ÆâÍƤòÈ¿±Ç';
346 $check_pass = addslashes(md5(postVar('bbs_pass')));
348 $sql = "SELECT * FROM ".sql_table('plugin_bbs');
349 $sql .= ' WHERE bbsid='.$data['bbsid'];
350 $sql .= ' AND bbs_number='.$bbs_number;
352 $res = mysql_query($sql);
354 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
355 if(postVar('bbs_pass') && $check_pass == $row["bbs_pass"]){
356 $data['bbs_name'] = $row["bbs_name"];
357 $data['bbs_userinfo'] = $row["bbs_userinfo"];
358 $data['bbs_mes'] = $row["bbs_mes"];
360 $data['bbs_pass'] = postVar('bbs_pass');
362 echo "¥Ñ¥¹¥ï¡¼¥É¤¬°ã¤¤¤Þ¤¹¡£";
367 echo $this->getBBSTemplate(bbs_css);
368 $data['DELETE'] = TEMPLATE::fill($this->getBBSTemplate(bbs_delete),$data);
369 echo TEMPLATE::fill($this->getBBSTemplate(bbsform),$data);
373 //======================================
374 //°úÍѤ·¤ÆÊÖ¿® (¥á¥Ã¥»¡¼¥¸¥¨¥ê¥¢¤Ëɽ¼¨¤¹¤ë¥Ç¡¼¥¿¤òÄɲÃ)
375 //======================================
376 if(getVar('mode') == 'res' && intGetVar('bbsid')){
378 $data['bbs_baseid'] = intGetVar('bbsid');
379 $data['extrainput'] = '<input type="hidden" name="bbs_baseid" value="'.$data['bbs_baseid'].'" />';
381 $sql = "SELECT * FROM ".sql_table('plugin_bbs');
382 $sql .= ' WHERE bbsid='.$data['bbs_baseid'];
383 $sql .= ' AND bbs_number='.$bbs_number;
385 $res = mysql_query($sql);
387 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
388 $query = "SELECT count(*) as ct FROM ".sql_table('plugin_bbs')." WHERE bbs_number=".$bbs_number." AND bbsid<=".$row["bbsid"];
389 $data['current_bbsid'] = mysql_result(mysql_query($query), 0, ct);
391 // $quote_char = '*'.$row["bbs_number"]."-".$data['current_bbsid']."*>";
392 $quote_char = ">";
393 $data['bbs_mes'] = strip_tags($row["bbs_mes"]);
394 $data['bbs_mes'] = $this->indent($data['bbs_mes'],70,$quote_char);
398 //======================================
399 //Ä̾ïɽ¼¨ (¿·µ¬Åê¹Æ¥Õ¥©¡¼¥à¤Èµ»ö°ìÍ÷)
400 //======================================
402 <script language="JavaScript" type="text/javascript">
404 function paste_strinL(strinL){
405 var input=document.forms["postMsg"].elements["bbs_mes"];
406 input.value=input.value+strinL;
412 echo $this->getBBSTemplate(bbs_css);
414 echo '<h1>'.$this->getOption('bbstitle').'</h1>';
415 echo '<h2>'.$this->getOption('bbsdesc').'</h2>';
417 echo TEMPLATE::fill($this->getBBSTemplate(bbsform),$data);
419 $sql = "SELECT * FROM ".sql_table('plugin_bbs');
420 $sql .= " WHERE bbs_number=".$bbs_number;
421 $sql .= " ORDER BY bbsid DESC";
422 $res = mysql_query($sql);
424 $num_rows = mysql_num_rows($res);
425 if(cookieVar('comment_user')){
426 $data['extrainput'] = '<input type="hidden" value="2" name="remember" />';
428 $data['extrainput'] = '<input type="hidden" value="0" name="remember" />';
430 echo TEMPLATE::fill($this->getBBSTemplate(bbs_search),$data);
431 $data['extrainput'] = '';
433 $pageswitch = $this->parse_pageswitch($bbs_number, $num_rows, '');
436 $sql .= ' LIMIT ' . $this->startpos .',' . $this->pageamount;
438 $res = mysql_query($sql);
440 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
442 if (isValidMailAddress($row["bbs_userinfo"]))
443 $data["bbs_userinfo"] = '<a href="mailto:'.$row["bbs_userinfo"].'">M</a>';
444 elseif (strstr($row["bbs_userinfo"],'http://') != false)
445 $data["bbs_userinfo"] = '<a href="'.$row["bbs_userinfo"].'">W</a>';
447 $data["bbs_userinfo"] = '';
449 $data['bbs_date'] = date("Y-m-d H:i", strtotime($row["bbs_date"]));
451 if($row["bbs_name"]== $this->deny_name){
452 $data["bbs_mes"] .= '¤Ëºï½ü¤µ¤ì¤Þ¤·¤¿';
456 $query = "SELECT count(*) as ct FROM ".sql_table('plugin_bbs')." WHERE bbs_number=".$bbs_number." AND bbsid<=".$row["bbsid"];
457 $data['current_bbsid'] = mysql_result(mysql_query($query), 0, ct);
459 $query = "SELECT count(*) as ct FROM ".sql_table('plugin_bbs')." WHERE bbs_number=".$bbs_number." AND bbsid<=".$row["bbs_baseid"];
460 $data['baseid'] = mysql_result(mysql_query($query), 0, ct);
462 $data['editurl'] = $this->pagelink.'mode=edit&bbsid='.$row["bbsid"];
463 $data['resurl'] = $this->pagelink.'mode=res&bbsid='.$row["bbsid"];
464 $data['permalinkurl'] = $this->pagelink.'bbsid='.$row["bbsid"];
465 $data['bbs_mes'] = $this->bbsBody($row["bbs_mes"]);
466 if($data['baseid'] > 0){
467 $data['bbs_mes'] = '[µ»öNo.'.$data['baseid'].' ¤Ø¤ÎÊÖ¿®]<br />'.$data['bbs_mes'];
469 echo TEMPLATE::fill($this->getBBSTemplate(bbslog),$data);
474 } //end of function doSkinVar
477 function doAction($type) {
478 global $manager, $CONF;
479 $blog =& $manager->getBlog($CONF['DefaultBlog']);
481 // ¥Õ¥©¡¼¥à¤«¤é¥Ç¡¼¥¿¤ò¼õ¤±¼è¤ë
482 $bbs_number = intval(postVar('bbs_number'));
483 $data['bbs_baseid'] = intval(postVar('bbs_baseid'));
484 $data['bbs_name'] = addslashes(strip_tags(postVar('bbs_name')));
485 if($data['bbs_name'] == $this->deny_name){
486 $data['bbs_name'] = '';
489 $data['bbs_userinfo'] = strip_tags(postVar('bbs_userinfo'));
490 $data['bbs_pass'] = addslashes(md5(postVar('bbs_pass')));
491 $data['bbs_mes'] = trim(postVar('bbs_mes'));
492 $data['bbs_mes'] = addslashes(strip_tags($data['bbs_mes']));
493 $data['bbs_host'] = gethostbyaddr(serverVar('REMOTE_ADDR'));
494 $data['bbs_ip'] = serverVar('REMOTE_ADDR');
495 $data['bbs_date'] = date('Y-m-d H:i:s', $blog->getCorrectTime());
496 $data['redirectTo'] = postVar('redirectTo');
498 $remember = intPostVar('remember');
499 if ($remember == 1) {
500 $lifetime = $blog->getCorrectTime()+2592000;
501 setcookie('comment_user',$data['bbs_name'],$lifetime,'/','',0);
502 setcookie('comment_userid', $data['bbs_userinfo'],$lifetime,'/','',0);
503 setcookie('bbs_pass', postVar('bbs_pass'),$lifetime,'/','',0);
504 }elseif($remember == 0){
505 $lifetime = $blog->getCorrectTime()-1;
506 setcookie('comment_user','',$lifetime,'/','',0);
507 setcookie('comment_userid', '',$lifetime,'/','',0);
508 setcookie('bbs_pass', '',$lifetime,'/','',0);
511 if (isValidMailAddress($data['bbs_userinfo']))
512 $data['bbs_userinfo'] = $data['bbs_userinfo'];
513 elseif (strstr($data['bbs_userinfo'],'http://') != false)
514 $data['bbs_userinfo'] = $data['bbs_userinfo'];
515 elseif (strstr($data['bbs_userinfo'],'www') != false)
516 $data['bbs_userinfo'] = 'http://'.$data['bbs_userinfo'];
518 $data['bbs_userinfo'] = '';
523 if (!empty($data['bbs_name']) and !empty($data['bbs_mes'])) {
525 $sql = "INSERT INTO ".sql_table('plugin_bbs')."(bbs_number, bbs_baseid, bbs_name, bbs_userinfo, bbs_pass, bbs_mes, bbs_host, bbs_ip, bbs_date) ";
527 $sql .= "'" . $bbs_number . "',";
528 $sql .= "'" . $data['bbs_baseid'] . "',";
529 $sql .= "'" . $data['bbs_name'] . "',";
530 $sql .= "'" . $data['bbs_userinfo'] . "',";
531 $sql .= "'" . $data['bbs_pass'] . "',";
532 $sql .= "'" . $data['bbs_mes'] . "',";
533 $sql .= "'" . $data['bbs_host'] . "',";
534 $sql .= "'" . $data['bbs_ip'] . "',";
535 $sql .= "'" . $data['bbs_date'] . "'";
537 $res = mysql_query($sql) or die("¥Ç¡¼¥¿Äɲ娥顼");
539 // echo "<p>½ñ¤¹þ¤ß¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿!<br />BBS¤Ë¼«Æ°¤ÇÌá¤ê¤Þ¤¹</p>";
540 // echo '<META HTTP-EQUIV="refresh" content="5;URL='.$data['redirectTo'].'">';
541 header('Location: ' . $data['redirectTo']);
545 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
548 <meta http-equiv="Content-Type" content="text/html; charset=<?php echo _CHARSET?>">
549 <title>¥¨¥é¡¼</title>
551 <p align="center"><b>¤ªÌ¾Á°¤È¥á¥Ã¥»¡¼¥¸¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤</b>
552 <p align="center"><b>¤ªÌ¾Á°¤Ë¡Ö<?php echo $this->deny_name?>¡×¤Ï»È¤¨¤Þ¤»¤ó</b>
553 <br /><a href="javascript:history.go(-1);">Ìá¤ë</a></p>
561 $data['bbsid'] = intval(postVar('bbsid'));
562 // $query = 'UPDATE '.sql_table('plugin_bbs')
563 // . " SET bbs_mes='" .addslashes($data['bbs_mes']). "'"
564 // . " WHERE bbsid=" . $data['bbsid'];
565 $query = 'UPDATE '.sql_table('plugin_bbs')
566 . " SET bbs_name='" .$data['bbs_name']. "',"
567 . " bbs_userinfo='" .$data['bbs_userinfo']. "',"
568 . " bbs_pass='" .$data['bbs_pass']. "',"
569 . " bbs_mes='" .$data['bbs_mes']. "'"
570 . " WHERE bbsid=" . $data['bbsid'];
571 $res = mysql_query($query) or die("¥Ç¡¼¥¿¹¹¿·¥¨¥é¡¼");
573 // echo "<p>½ñ¤¹þ¤ß¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿!<br />BBS¤Ë¼«Æ°¤ÇÌá¤ê¤Þ¤¹</p>";
574 // echo '<META HTTP-EQUIV="refresh" content="0;URL='.$data['redirectTo'].'">';
575 header('Location: ' . $data['redirectTo']);
580 $data['bbsid'] = intval(postVar('bbsid'));
581 $data['bbs_name'] = "-";
582 $data['bbs_userinfo'] = "-";
583 $query = 'UPDATE '.sql_table('plugin_bbs')
584 . " SET bbs_name='" .$data['bbs_name']. "',"
585 . " bbs_userinfo='" .$data['bbs_userinfo']. "',"
586 . " bbs_mes='" .$data['bbs_date']. "'"
587 . " WHERE bbsid=" . $data['bbsid'];
588 $res = mysql_query($query) or die("¥Ç¡¼¥¿¹¹¿·¥¨¥é¡¼");
590 header('Location: ' . $data['redirectTo']);
595 $bbsq = postVar('bbsq');
596 $bbsq = preg_replace("/(\xA1{2}|\xe3\x80{2}|\x20)+/"," ",$bbsq);
599 $bbsq = urlencode($bbsq);
600 header('Location: ' . postVar('pagelink') . 'bbsq=' . $bbsq );
602 header('Location: ' . postVar('redirectTo') );
608 } //end of function doAction
610 //////////////////////////////////////
611 ///. ÀÞ¤êÊÖ¤·¤È¥¤¥ó¥Ç¥ó¥È
612 function indent( $str, $width, $ind ){
613 /// $ind ¤¬¿ô»ú¤Î»þ¤ÏÁ´¤Æ¥¤¥ó¥Ç¥ó¥È¡¢Ê¸»ú¤Î»þ¤Ï¤Ö¤é²¼¤¬¤ê
614 if( is_int( $ind ) ){
615 $spc = str_repeat( ' ', $ind );
618 // $spc = str_repeat( ' ', strlen( $ind ) );
619 $spc = str_repeat( $ind, 1 );
620 $lc = 0; /// ¤Ö¤é²¼¤¬¤ê¥Õ¥é¥°
622 $lines = explode( "\n", $str );
623 foreach( $lines as $line ){
624 if(ereg($ind, $line)){
625 $width += strlen( $line ) * substr_count($line,$ind);
628 $len = strlen( $line );
630 if (extension_loaded('mbstring')) {
631 $tmp = mb_strcut( $line, $p, $width ,_CHARSET);
632 }elseif(function_exists('jstrcut') && strtolower (_CHARSET) == 'euc-jp'){
633 $tmp = jstrcut( $line, $p, $width );
637 /// ºÇ½é¤Î¹Ô¤À¤±¤Ö¤é²¼¤¬¤ê¥¤¥ó¥Ç¥ó¥È
639 $newstr .= $ind.$tmp."\n";
642 else $newstr .= $spc.$tmp."\n";
643 $p += strlen( $tmp );
649 //////////////////////////////////////
651 function bbshighlight($data) {
652 if ($this->bHighlight){
653 $temp = implode($this->bHighlight,'|');
654 $data = preg_replace("/($temp)/","<span class=\"bbs_search\">\\1</span>",$data);
659 function bbsBody($body) {
661 // trim away whitespace and newlines at beginning and end
665 $body = addBreaks($body);
667 // create hyperlinks for http:// addresses
668 // there's a testcase for this in /build/testcases/urllinking.txt
669 $replaceFrom = array(
670 '/([^:\/\/\w]|^)((https:\/\/)([\w\.-]+)([\/\w+\.~%&?@=_:;#,-]+))/ie',
671 '/([^:\/\/\w]|^)((http:\/\/|www\.)([\w\.-]+)([\/\w+\.~%&?@=_:;#,-]+))/ie',
672 '/([^:\/\/\w]|^)((ftp:\/\/|ftp\.)([\w\.-]+)([\/\w+\.~%&?@=_:;#,-]+))/ie',
673 '/([^:\/\/\w]|^)(mailto:(([a-zA-Z\@\%\.\-\+_])+))/ie'
676 '$this->bbscreateLinkCode("\\1", "\\2","https")',
677 '$this->bbscreateLinkCode("\\1", "\\2","http")',
678 '$this->bbscreateLinkCode("\\1", "\\2","ftp")',
679 '$this->bbscreateLinkCode("\\1", "\\3","mailto")'
681 $body = preg_replace($replaceFrom, $replaceTo, $body);
683 if ($this->getOption('smily') == "yes") {
684 $body = $this->doSmilies($body);
690 function bbscreateLinkCode($pre, $url, $protocol = 'http') {
693 // it's possible that $url ends with an entities
694 // since htmlspecialchars is applied before URL linking
695 if (preg_match('/(&\w+;)+$/i', $url, $matches)) {
696 $post = $matches[0]; // found entities (1 or more)
697 $url = substr($url, 0, strlen($url) - strlen($post));
700 if (!ereg('^'.$protocol.'://',$url))
701 $linkedUrl = $protocol . (($protocol == 'mailto') ? ':' : '://') . $url;
706 if ($protocol != 'mailto')
707 $displayedUrl = $linkedUrl;
709 $displayedUrl = $url;
710 return $pre . '<a href="'.$linkedUrl.'">'.$displayedUrl.'</a>' . $post;
714 function insertSmilies() {
717 // $url = $this->getAdminURL();
718 $url = $CONF['PluginURL'] . 'fancytext/';
721 foreach ($this->smiley as $smile => $img) {
722 $data .= "<a href=\"JavaScript:paste_strinL('".$smile."')\">";
723 $data .= '<img src="'.$url.$img.'" align="absmiddle" />';
733 function doSmilies($data) {
736 // $url = $this->getAdminURL();
737 $url = $CONF['PluginURL'] . 'fancytext/';
739 foreach ($this->smiley as $smile => $img) {
740 $data = str_replace($smile, '<img src="'.$url.$img.'" align="absmiddle" />', $data);
747 function parse_pageswitch($bbs_number, $totalamount = 0, $bbsq = ''){
749 $pagelink = $this->pagelink . 'bbsq=' . $bbsq .'&';
751 $pagelink = $this->pagelink;
754 $totalpages = ceil($totalamount/$this->pageamount);
755 if($this->startpos > $totalamount){
756 $this->currentpage = $totalpages;
757 $this->startpos = $totalamount-$this->pageamount;
760 $buf = '<div class="pageswitch">'."\n";
762 $this->currentpage > 1 ? $prevpage = $this->currentpage - 1 : $prevpage = 0;
763 $nextpage = $this->currentpage + 1;
766 $prevpagelink = $pagelink. 'bbsp=' . $prevpage;
767 $buf .= "\n".'<a href="'.$prevpagelink.'" title="Á°¤Î¥Ú¡¼¥¸">«Prev</a>';
772 for($i=1; $i<=$totalpages; $i++){
773 if($i == $this->currentpage){
774 $buf .= " <strong>{$this->currentpage}</strong> |";
775 }elseif($totalpages<10 || $i<4 || $i>$totalpages-3){
776 $buf .= ' <a href="'.$pagelink. 'bbsp=' . $i.'">'.$i.'</a> |';
778 if($i<$this->currentpage-1 || $i>$this->currentpage+1){
779 if(($i==4 && ($this->currentpage>5 || $this->currentpage==1)) || $i==$this->currentpage+2){
783 $buf .= ' <a href="'.$pagelink. 'bbsp=' . $i.'">'.$i.'</a> |';
788 if($totalpages >= $nextpage){
789 $nextpagelink = $pagelink. 'bbsp=' . $nextpage;
790 $buf .= ' <a href="'.$nextpagelink.'" title="¼¡¤Î¥Ú¡¼¥¸">Next»</a>'."\n";
792 $buf .= "</div>\n</form>\n";
798 function getBBSTemplate($type) {
801 // $url = $this->getDirectory() . $type . '.template';
802 $filename = $DIR_PLUGINS . 'fancytext/' . $type . '.template';
804 if (!file_exists($filename))
807 // read file and return it
808 $fd = fopen ($filename, 'r');
809 $contents = fread ($fd, filesize ($filename));