# 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
名前

E-mail

Web page

題名

本文

削除Pass

(削除Passは削除の際に必要になります)
$check
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}
/; } $buffer .= <<"EOB";

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/名前

E-mail

Web page

題名

本文

削除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;