をここに書いていきますね
とりあえず3ファイルほど修正します。
// sage メール欄に sage と含まれた文字列が書かれた場合、「あげない」機能 define('KIFUBBS_SAGE', 'sage'); //define('KIFUBBS_SAGE', ''); //無効 // fusianasan メール欄に fusianasan と含まれた文字列が書かれた場合 IPアドレスをさらす機能 define('KIFUBBS_FUSIANASAN', 'fusianasan'); //define('KIFUBBS_FUSIANASAN', ''); // 無効
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>'; }
*** 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;