[[予定表]] [[BBS]] _WRITEBYNAKAX

*kifubbs改造部分の公開 [#ef68e396]
をここに書いていきますね~
~
~
-おしごとも気掛かりなことにひと区切りついたことだし、こっちもやっていかないとな -- [[nakax]] &new{2006-05-11 (木) 19:30:25};

#contents

*編集ファイル [#p2460df1]
とりあえず3ファイルほど修正します。
**init.inc.php [#ra872415]
-以下の項目を付け加えてください
 // sage メール欄に sage と含まれた文字列が書かれた場合、「あげない」機能
 define('KIFUBBS_SAGE', 'sage');
 //define('KIFUBBS_SAGE', ''); 	//無効
 
 // fusianasan メール欄に fusianasan と含まれた文字列が書かれた場合 IPアドレスをさらす機能
 define('KIFUBBS_FUSIANASAN', 'fusianasan');
 //define('KIFUBBS_FUSIANASAN', '');	// 無効
**display.inc.php [#nfc681d5]
-get_col関数を修正します
--トリップ計算は [[2chBBS>http://wwww.vis.ne.jp/wiki/index.php?%B7%C7%BC%A8%C8%C4%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3]]さんから一部いただいています。ありがとうございます。
 	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('&#44;',',',$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 [#qbf07ea0]
-修正がいくつかあるので、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;

**コメント [#kdded5d5]
-なにか問題ありそうだったら教えてくださいませ。 -- [[nakax]] &new{2006-05-16 (火) 23:04:22};
- KaKyCKZZbIlX -- [[ybzqnhxas]] &new{2009-11-16 (月) 12:22:11};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS