# Ir-i-BBS - interface for j-sky
# ---------------------------------
# Copyright (c) 1999 by Irao Computer System, All rights reserved.
#
my $copyright_js = "(c)1999 by Irao";
my $copyright_js_long = "(c)1999 by Irao Computer System ";
#ここまで変更厳禁
sub about_jsky {
$about_data_jsky = '
' . &load_about . '
';
$buffer = <<"EOB";
$copyright_js_long
$about_data_jsky
EOB
&$output_buffer;
exit;
}
sub write_jsky_body {
my (@vals);
unless ($#rewrite_array < 0) {
my $i = 0;
foreach (@rewrite_array) {
$vals[$i++] = $_ if ($i == 4);
$vals[$i++] = (' value="' . $_ . '"');
}
if ($FORM{'saveform'} eq 'true') {
$baseElement = qq| |;
$add = '保存用投稿フォーム ';
$vals[5] = qq| value="$FORM{'pass'}"|;
} else {
$add = '削除Passを入力してください! ';
}
}
my $check = q| 保存用フォーム表示| unless ($FORM{'saveform'} eq 'true');
$buffer = <<"EOB";
$add
EOB
&$output_buffer;
exit;
}
sub view_jsky_head {
my ($arg) = @_;
require $ir_i_def_pl if (($imchr_title) && ($FORM{'sv'} =~ /^js$/i));
my $svjs = ($FORM{'sv'} =~ /^js$/i)? '&sv=js' : '';
my $counterStr = '' . $mobile_counter_front_str . $a_count . $mobile_counter_back_str . ' '
if ($mobile_counter_mode and $enable_counter);
if ($imode_post_button) {
$post_link =<<"EOP";
$counterStr
EOP
} else {
$post_link =<<"EOP";
$counterStr投稿する
EOP
}
$buffer = <<"EOC";
${post_link}
EOC
my ($add, $add2);
if (($save_log) && (-e $bbs_log_file)) {
$add = 'ログ';
}
if ($arg) {
my $next = $start;# + $page_max;
$buffer .= <<"EOB";
検索 修正
削除
EOB
$add2 = qq/ /;
}
$buffer .= <<"EOB";
概要 管理${add} ${add2}
EOB
$jcclen = length($buffer) if ($jsky_auto);
}
sub view_jsky_body {
my ($line, $add) = @_;
my ($post_item, $pilen, $url, $addition, $maxlen);
unless ($line) {
$buffer .= '投稿はありません ' . "\n";
return;
}
my ($subject, $name, $mail, $web, $message, $date, $host,
$addr, $agent, $pass, $unkey) = split("\t", $line);
chomp $unkey;
$date = &conv_date_imode($date);
if (defined $add) {
if ($add < 0) {
$addition = <<"EOAVIBM";
EOAVIBM
} else {
$addition = <<"EOAVIB";
EOAVIB
}
}
$name = '' . $name . ' '
if ($mail ne "");
$url = 'URL ' if ($web ne "");
$message = &conv_imchr($message);
$subject = &conv_imchr($subject);
$name = &conv_imchr($name);
$post_item .= <<"EOB";
$addition$date $url $subject
$name $message
EOB
$pilen = length($post_item);
$maxlen = $jsky_auto_size * 1024;
if (($jsky_auto) && ($jcclen + $pilen > $maxlen) && !($force)) {
return 1;
} else {
$buffer .= $post_item;
$jcclen += $pilen;
return 0;
}
}
sub view_jsky_foot {
my ($nf, $called) = @_;
my ($next, $prev, $svjs, $add, $ret_link);
$next = $start + $page_max;
$buffer .= '';
$svjs = ($FORM{'sv'} =~ /^js$/i)? '&sv=js' : '';
$prev = $start - $page_max;
$prev = 0 if ($prev < 0);
$prev = $FORM{'p'} if ($FORM{'p'} > 0);
$tagp = ($jsky_auto)? '&p=' . $start : '';
if ($called == 1) {
$add = '&action=delete';
} elsif ($called == 2) {
$add = '&action=select';
} else {
$ret_link = '';
}
$add = '&mode=log' if ($FORM{'mode'} =~ /^log$/i);
if ($start > 0) {
$buffer .= <<"EOB";
[前 ]
EOB
}
$buffer .= <<"EOB";
[TOP ]
EOB
if ($nf) {
$buffer .= <<"EOB";
[次 ]
EOB
}
$buffer .= '
' . $ret_link;
&$output_buffer;
}
sub view_jsky_nums {
my ($st, $en, $al) = @_;
$buffer .= "${st}〜${en}件/全${al}件 ";
$buffer .= "(検索; $global_logic_formula) " if ($global_logic_formula);
$buffer .= " ";
}
sub view_log_jsky_head {
my ($arg) = @_;
require $ir_i_def_pl if (($imchr_title) && ($FORM{'sv'} =~ /^js$/i));
my $svjs = ($FORM{'sv'} =~ /^js$/i)? '&sv=js' : '';
if ($arg) {
my $next = $start + $page_max;
$buffer = <<"EOB";
通常モード
検索 概要
管理
EOB
} else {
$buffer = <<"EOB";
通常モード
概要 管理
EOB
}
$jcclen = length($buffer) if ($jsky_auto);
}
sub view_log_jsky {
$view_head = 'view_log_jsky_head';
$view_body = 'view_jsky_body';
$view_foot = 'view_jsky_foot';
}
sub delete_jsky_head {
$buffer .= <<"EOB";
Password
EOB
$jcclen = length($buffer) if ($jsky_auto);
}
sub delete_jsky_body {
my ($line) = @_;
&view_jsky_body($line, 1);
}
sub delete_jsky_foot {
my ($nf) = @_;
$buffer .= " ";
&view_jsky_foot($nf, 1);
}
sub delete_jsky {
$view_head = 'delete_jsky_head';
$view_body = 'delete_jsky_body';
$view_foot = 'delete_jsky_foot';
&view;
}
sub select_jsky_head {
$buffer = <<"EOB";
Password
EOB
$jcclen = length($buffer) if ($jsky_auto);
}
sub select_jsky_body {
my ($line) = @_;
&view_jsky_body($line, -1);
}
sub select_jsky_foot {
my ($nf) = @_;
$buffer .= " ";
&view_jsky_foot($nf, 2);
}
sub select_jsky {
$view_head = 'select_jsky_head';
$view_body = 'select_jsky_body';
$view_foot = 'select_jsky_foot';
&view;
}
sub modify_jsky {
my ($subject, $name, $email, $web, $message, $pass, $num) = &modify();
$message =~ s/ /\n/gi;
map {
s/\&/\&/g;
s/\"/\"/g; # "
s/>/\>/g;
s/\</g;
} ($subject, $name, $message);
$buffer = <<"EOB";
名前
E-mail
Web page
題名
本文
$message
削除Pass
(削除Passは削除の際に必要になります)
EOB
&$output_buffer;
exit;
}
sub error_jsky {
my ($s) = @_;
$buffer = <<"EOB";
$s
EOB
&$output_buffer;
}
sub set_master_mode_jsky {
$buffer = <<"EOB";
マスターキー設定
新
(確認のためもう一度)
新
EOB
&$output_buffer;
exit;
}
sub search_body_jsky {
my ($mlog);
$mlog = ' '
if ($FORM{'mode'} =~ /^log$/i);
if ($term_logic_enabled) {
$mlogic =<<'EOM';
AND
OR
EOM
}
$buffer = <<"EOB";
記事の検索
検索語句 $mlogic
$mlog
EOB
&$output_buffer;
exit;
}
sub search_jsky_head {
my ($arg, $data) = @_;
&$view_head($arg);
# &view_jsky_head($arg);
$buffer .= "$data の検索結果 \n";
}
sub search_jsky_foot {
my ($nf, $key, $logic) = @_;
my ($next, $prev, $query, $svjs, $mlog);
$next = $start + $page_max;
$buffer .= '';
$svjs = ($FORM{'sv'} =~ /^js$/i)? '&sv=js' : '';
$mlog = ($FORM{'mode'} =~ /^log$/i)? '&mode=log' : '';
$prev = $start - $page_max;
$query = '&q=' . $key . '&l=' . $logic;
if ($start >= $page_max) {
$buffer .= <<"EOB";
[前 ]
EOB
}
$buffer .= <<"EOB";
[TOP ]
EOB
if ($nf) {
$buffer .= <<"EOB";
[次 ]
EOB
}
$buffer .= '
';
&$output_buffer;
}
sub set_init_mode_jsky {
local ($title, $email_admin, $bbs_url, $email_send, $envimgpath);
my ($def_pass) = $FORM{'new1'} if ($FORM{'action'} eq 'set_master');
$init_exist = &load_init($init_file);
my ($email_send_on, $email_send_off);
$email_send_on = ($email_send == 1)? 'checked' : '';
$email_send_off = ($email_send == 0)? 'checked' : '';
my $bbs_admin = $bbs_local . '?action=ch_master' .
'&authorize=' . $COOKIE{'authorize'};
$bbs_admin .= '&sv=js' if ($FORM{'sv'} =~ /^js$/i);
my $scr_path = 'http://' . $ENV{'SERVER_NAME'} . $ENV{'SCRIPT_NAME'};
$bbs_url = $scr_path
if ($bbs_url =~ /^\s*$/);
$buffer = <<"EOB";
掲示板の各種設定
管理パスワードの変更
タイトル
管理者メールアドレス
掲示板URL(絶対パス)
画像へのパス
投稿通知を
する
しない
EOB
&$output_buffer;
exit;
}
sub set_init_mode_jsky2 {
local ($sendmail, $email_to, $email_from, $email_subj);
my ($def_pass) = $FORM{'new1'} if ($FORM{'action'} eq 'set_master');
$init_exist = &load_init($init_file);
$buffer = <<"EOB";
投稿通知の設定
sendmail
宛先
送信者メールアドレス
題名
EOB
&$output_buffer;
exit;
}
sub authorize_jsky {
my ($msg) = @_;
$buffer = <<"EOB";
$msg
パスワード認証
認証
パスワード
EOB
&$output_buffer;
exit;
}
sub output_buffer_jsky {
my ($length, $header, $htmlhd, $body_atr);
local ($footer);
my $svjs = ($FORM{'sv'} =~ /^js$/i)?
'?sv=js' : '';
$body_atr = &set_body_color(%jsky_body);
my ($addition);
$addition = " $version" if ($print_version);
$htmlhd =<<"EOH";
$baseElement$jsky_mylink_title
EOH
$ENV{'HTTP_USER_AGENT'} =~ m|J-PHONE/(\d+)\.\d+/|;
$jver = $1;
$htmlhd .= "$jsky_title$addition "
unless ($jver == 2 and $jsky_station_title_control);
$footer =<<"EOF";
$copyright_js
EOF
unless ($buffer =~ s/\s*$//) {
$footer .=<<"EOF";
掲示板に戻る
EOF
}
my $rettop = (($ret_local) && ($ret_local !~ m|^\s*$|))? $ret_local : '';
$footer .=<<"EOF" if ($rettop);
トップに戻る
EOF
$svjs = ($FORM{'sv'} =~ /^js$/i)?
' ' : '';
$buffer =~ s//$svjs/g;
&subst_secure if ($limit_mode);
$length = length($htmlhd) + length($buffer) + length($footer);
$header =<<"EOH";
Content-Type: text/html;charset=Shift_JIS
Content-Length: $length
EOH
print "$header";
print "$htmlhd";
print "$buffer";
print "$footer";
}
sub imchr_expand_jsky {
my ($code) = @_;
my ($clr, $clg, $clb) = &get_color_code($jsky_body{'text'});
return if ($envimgpath =~ m|^http://|);
open FH, $png_data_file;
binmode FH;
@array = ;
close FH;
foreach (split ">:>", join "", @array) {
if (s/^$code//) {
$data = $_;
last;
}
}
$data = &change_fore_color($data, $clr, $clg, $clb);
open FH, '> ' . "$envimgpath$code" . '.png';
binmode FH;
print FH $data;
close(FH);
}
1;