予定表 BBS _WRITEBYNAKAX
kifubbs改造部分の公開 †
をここに書いていきますね
- おしごとも気掛かりなことにひと区切りついたことだし、こっちもやっていかないとな -- nakax
編集ファイル †
とりあえず3ファイルほど修正します。
init.inc.php †
- 以下の項目を付け加えてください
// sage メール欄に sage と含まれた文字列が書かれた場合、「あげない」機能
define('KIFUBBS_SAGE', 'sage');
//define('KIFUBBS_SAGE', ''); //無効
// fusianasan メール欄に fusianasan と含まれた文字列が書かれた場合 IPアドレスをさらす機能
define('KIFUBBS_FUSIANASAN', 'fusianasan');
//define('KIFUBBS_FUSIANASAN', ''); // 無効
display.inc.php †
- get_col関数を修正します
- トリップ計算は 2chBBSさんから一部いただいています。ありがとうございます。
function get_col($col, $ismain)
{
if($ismain){
$str[] = '<h2>' . htmlspecialchars($col->subject) . '</h2>';
}
/* $str[] = '<span class="name">【' . make_link($col->name) . '】</span>'; */
//$str[] = '<span class="name">' . make_link($col->name) . '</span>';
// 表示時にトリップ計算
$name = $col->name;
if(strstr($name,'◆')){
$name = $name . 'トリップ詐称';
}elseif(strstr($name,"#")){
$pass = substr($name,strpos($name,"#") + 1);
$pass = str_replace(',',',',$pass);
$salt = substr($pass . "H." , 1 , 2);
$salt = ereg_replace("[^\.-z]", "." , $salt);
$salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");
$name2 = substr($name , 0, strpos($name,"#"));
$name = $name2 . ' ◆' . substr(crypt($pass,$salt),-10);
}
$str[] = '<span class="name">' . make_link($name) . '</span>';
if($col->mail != null){
$str[] = '<span class="mail"><a href="mailto:' . htmlspecialchars($col->mail) . '">[mail]</a></span>';
}
if($col->url != null){
$str[] = '<span class="url"><a href="' . htmlspecialchars($col->url) . '">[url]</a></span>';
}
$str[] = '<span class="number"> - No.' . $col->num . '</span>';
$str[] = '<span class="timestamp">' . $col->date . ' ' . $col->time . '</span>';
if($ismain){
$str[] = '<span class="res"><input type="hidden" name="kifubbs_resto" value="' . $col->num . '" /><input type="hidden" name="kifubbs_command" value="showres" /><input type="submit" value="返信" /></span>';
}
//if($this->vars['states']['adminmode'] == true){
if($this->vars['states']['adminmode'] == true || ( KIFUBBS_FUSIANASAN != '' && ereg(KIFUBBS_FUSIANASAN,$col->mail) )){
$str[] = '<span class="ipaddress">' . $col->ip . ' - ' . htmlspecialchars($col->host) . '</span>';
}
db_mysql.inc.php †
- 修正がいくつかあるので、diff をとってみました。これでわかるかな?
*** kifubbs.1.5.1.org\kifubbs\db_mysql.inc.php Mon Mar 29 22:15:02 2004
--- kifubbs\kifubbs\db_mysql.inc.php Tue May 16 22:21:28 2006
***************
*** 250,255 ****
--- 250,256 ----
}
//親記事のタイムスタンプを更新する
+ if(! ereg(KIFUBBS_SAGE,$mail)){ // sage が含まれていなければ更新する
if($resto != null){
$query = 'UPDATE ' . $this->table;
$query .= ' SET timestamp = NOW()';
***************
*** 260,265 ****
--- 261,267 ----
$this->error = 'SQL文送信時に何らかの失敗をし、最新記事の並べ換えができませんでした。' . mysql_error();
}
}
+ }
return true;
}
***************
*** 321,327 ****
--- 323,331 ----
$query .= " time = '$time',";
$query .= " ip = '$ip',";
$query .= " host = '$host',";
+ if(! ereg(KIFUBBS_SAGE,$mail)){ // sage が含まれていなければ更新する
$query .= " timestamp = NOW(),";
+ }
$query .= " kifu = $kifu";
$query .= " WHERE num = $num";
***************
*** 366,374 ****
--- 370,388 ----
*/
function getlist($n = -1)
{
+ /*
$query = 'SELECT num, subject FROM ' . $this->table;
$query .= ' WHERE (resto is null AND delflug = "false")';
$query .= ' ORDER BY timestamp DESC';
+ */
+
+ $query = 'SELECT s.num, s.subject, COUNT(r.resto) + 1 count';
+ $query .= ' FROM ' . $this->table . ' s,' . $this->table . ' r ';
+ $query .= ' WHERE s.delflug = "false" AND r.delflug = "false"';
+ $query .= ' AND (r.resto = s.num OR s.resto IS NULL and r.resto IS NULL)';
+ $query .= ' GROUP BY s.num, s.subject';
+ $query .= ' ORDER BY s.timestamp DESC';
+
if($n != -1){
$query .= ' LIMIT ' . addslashes($n);
}
***************
*** 381,387 ****
--- 395,404 ----
$ret = null;
while($row = mysql_fetch_array($result)){
+ /*
$ret[] = array('num' => $row['num'], 'subject' => $this->autostripslashes($row['subject']));
+ */
+ $ret[] = array('num' => $row['num'], 'subject' => $this->autostripslashes($row['subject']) . '(' . $this->autostripslashes($row['count']) . ')' );
}
mysql_free_result($result);
return $ret;
コメント †
- なにか問題ありそうだったら教えてくださいませ。 -- nakax
|