#!/usr/local/bin/perl

#┌─────────────────────────────────
#│ Honey Board
#│ admin.cgi - 2007/10/25
#│ Copyright (c) KentWeb
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#└─────────────────────────────────

# 外部ファイル取り込み
require './init.cgi';
require $jcode;

&parse_form;
&admin;

#-------------------------------------------------
#  管理モード
#-------------------------------------------------
sub admin {
	# 認証
	if ($in{'pass'} eq "") {
		&enter_form;
	} elsif ($in{'pass'} ne $pass) {
		&error("認証できません");
	}

	# 削除処理
	if ($in{'no'}) {

		my %del;
		foreach ( split(/\0/, $in{'no'}) ) {
			$del{$_}++;
		}

		# 削除情報をマッチングし更新
		my @data;
		open(DAT,"+< $logfile") || &error("Open Error : $logfile");
		eval "flock(DAT, 2);";
		my $top = <DAT>;
		while (<DAT>) {
			my ($no,$reno,$date) = split(/<>/);

			next if (defined($del{$no}));
			next if (defined($del{$reno}));

			push(@data,$_);
		}

		# 更新
		unshift(@data,$top);
		seek(DAT, 0, 0);
		print DAT @data;
		truncate(DAT, tell(DAT));
		close(DAT);
	}

	# ページ認識
	my $page = 0;
	foreach ( keys(%in) ) {
		if (/^page:(\d+)$/) {
			$page = $1;
			last;
		}
	}
	$pglog *= 2;

	&header;
	print <<EOM;
[<a href="$admincgi?">ログオフ</a>]
<ul>
<li>削除する記事のチェックボックスにチェックを入れ、削除ボタンを押して下さい。
<li>親記事を削除するとレス記事も一括して削除されます。
</ul>
<form action="$admincgi" method="post">
<input type="hidden" name="pass" value="$in{'pass'}">
<input type="submit" value="削除する">
<dl>
EOM

	my $i = 0;
	open(IN,"$logfile") || &error("Open Error: $logfile");
	my $top = <IN>;
	while (<IN>) {
		my ($no,$reno,$date,$name,$mail,$sub,$icon,$icon2,$com,$color,$url,$host,$pw) = split(/<>/);

		if ($reno eq "") { $i++; }
		if ($i < $page + 1) { next; }
		if ($i > $page + $pglog) { last; }

		if (!$reno) {
			print "<dt><hr>";
		} else {
			print "<dd>";
		}

		# 削除チェックボックス
		print qq|<input type="checkbox" name="no" value="$no">|;
		print qq|<b style="color:$onepnt">$sub</b> 投稿者：<b>$name</b> 日時：$date <span style="color:$onepnt">No.$no</span>\n|;

	}
	close(IN);

	print <<EOM;
<dt><hr>
</dl>
EOM

	my $next = $page + $pglog;
	my $back = $page - $pglog;

	if ($back >= 0) {
		print qq|<input type="submit" name="page:$back" value="前の$pglog組">\n|;
	}
	if ($next < $i) {
		print qq|<input type="submit" name="page:$next" value="次の$pglog組">\n|;
	}

	print <<EOM;
</form>
</body>
</html>
EOM
	exit;
}

#-------------------------------------------------
#  入室画面
#-------------------------------------------------
sub enter_form {
	&header;
	print <<EOM;
[<a href="$bbscgi?">掲示板</a>]
<div align="center">
<h4>パスワードを入力してください。</h4>
<form action="$admincgi" method="post">
<input type="password" name="pass" size="20">
<input type="submit" value=" 認証 ">
</form>
</div>
</body>
</html>
EOM
	exit;
}

