# Ir-i-BBS - interface for i-mode # ---------------------------------- # Copyright (c) 1999 by Irao Computer System, All rights reserved. # my $copyright_imode = "(c)1999 by Irao"; my $copyright_imode_long = "(c)1999 by Irao
Computer System
"; # ここまで変更厳禁 # ここから 設定 # Content-length: ヘッダの設定です。 # 0 以外の値にすると、Content-length: ヘッダを吐きます # 0 にすると吐きません # i-modeでうまく動かないとき、0 にしてみてください。 my $print_content_length = 1; # ここまで 設定 sub about_imode { $about_data_imode = '

' . &load_about . '

'; $buffer = <<"EOB"; $copyright_imode_long $about_data_imode EOB &$output_buffer; exit; } sub write_imode_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') { $extra_header = qq||; $add = '
保存用投稿フォーム

'; $vals[5] = qq| value="$FORM{'pass'}"|; } else { $add = '削除Passを入力してください!

'; } } my $check = q|保存用フォーム表示| unless ($FORM{'saveform'} eq 'true'); my $style = ($subtype eq 'astel')? 'a' : 'i'; $style .= 'style='; $buffer = <<"EOB"; $add
名前

E-mail

Web page

題名

本文

削除Pass

(削除Passは削除の際に必要になります)
$check

EOB &$output_buffer; exit; } sub view_imode_head { my ($arg) = @_; require $ir_i_def_pl if (($imchr_title) && ($FORM{'sv'} =~ /^im$/i)); my $svim = ($FORM{'sv'} =~ /^im$/i)? '&sv=im' : ''; 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}1.投稿する
EOP } $buffer = <<"EOC"; ${post_link}
/; } $buffer .= <<"EOBH";

EOBH $icclen = length($buffer) if ($imode_auto); } sub view_imode_body { my ($line, $add) = @_; my ($addition, $url, $post_item, $pilen, $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 = qq|$name| if ($mail ne ""); $url = qq|URL| if ($web ne ""); $message = &conv_imchr($message); $subject = &conv_imchr($subject); $name = &conv_imchr($name); $message = &conv_jschr($message); $subject = &conv_jschr($subject); $name = &conv_jschr($name); $post_item = <<"EOBB"; $addition$date $url
$subject
$name
$message

EOBB $pilen = length($post_item); $maxlen = $imode_auto_size * 1024; if (($imode_auto) && ($icclen + $pilen > $maxlen) && !($force)) { return 1; } else { $buffer .= $post_item; $icclen += $pilen; return 0; } } sub view_imode_foot { my ($nf, $called) = @_; my ($next, $prev, $svim, $add, $ret_link); $next = $start + $page_max; $buffer .= '
'; $svim = ($FORM{'sv'} =~ /^im$/i)? '&sv=im' : ''; $prev = $start - $page_max; $prev = 0 if ($prev < 0); $prev = $FORM{'p'} if ($FORM{'p'} > 0); $tagp = ($imode_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"; [4.] EOB } $buffer .= <<"EOB";  [0.TOP]  EOB if ($nf) { $buffer .= <<"EOB"; [6.] EOB } $buffer .= '
' . $ret_link; &$output_buffer; } sub view_imode_nums { my ($st, $en, $al) = @_; $buffer .= "${st}〜${en}件/全${al}件
"; $buffer .= "(検索; $global_logic_formula)
" if ($global_logic_formula); $buffer .= "
"; } sub view_log_imode_head { my ($arg) = @_; require $ir_i_def_pl if (($imchr_title) && ($FORM{'sv'} =~ /^im$/i)); my $svim = ($FORM{'sv'} =~ /^im$/i)? '&sv=im' : ''; if ($arg) { my $next = $start + $page_max; $buffer = <<"EOBH"; 1.通常モード

EOBH } else { $buffer = <<"EOBH"; 1.通常モード

EOBH } $icclen = length($buffer) if ($imode_auto); } sub view_log_imode { $view_head = 'view_log_imode_head'; $view_body = 'view_imode_body'; $view_foot = 'view_imode_foot'; } sub delete_imode_head { my $style = ($subtype eq 'astel')? 'a' : 'i'; $style .= 'style='; $buffer = <<"EOBH";
Password



EOBH $icclen = length($buffer) if ($imode_auto); } sub delete_imode_body { my ($line) = @_; &view_imode_body($line, 1); } sub delete_imode_foot { my ($nf) = @_; $buffer .= "
"; &view_imode_foot($nf, 1); } sub delete_imode { $view_head = 'delete_imode_head'; $view_body = 'delete_imode_body'; $view_foot = 'delete_imode_foot'; &view; } sub select_imode_head { my $style = ($subtype eq 'astel')? 'a' : 'i'; $style .= 'style='; $buffer = <<"EOBH";
Password



EOBH $icclen = length($buffer) if ($imode_auto); } sub select_imode_body { my ($line) = @_; &view_imode_body($line, -1); } sub select_imode_foot { my ($nf) = @_; $buffer .= "
"; &view_imode_foot($nf, 2); } sub select_imode { $view_head = 'select_imode_head'; $view_body = 'select_imode_body'; $view_foot = 'select_imode_foot'; &view; } sub modify_imode { 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_imode { my ($s) = @_; $buffer = <<"EOB";

$s

EOB &$output_buffer; } sub set_master_mode_imode { my $style = ($subtype eq 'astel')? 'a' : 'i'; $style .= 'style='; $buffer = <<"EOB"; マスターキー設定

(確認のためもう一度)


EOB &$output_buffer; exit; } sub search_body_imode { my ($mlog, $mlogic); $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_imode_head { my ($arg, $data) = @_; &$view_head($arg); # &view_imode_head($arg); $buffer .= "
$data の検索結果
\n"; } sub search_imode_foot { my ($nf, $key, $logic) = @_; my ($next, $prev, $query, $svim, $mlog); $next = $start + $page_max; $buffer .= '
'; $svim = ($FORM{'sv'} =~ /^im$/i)? '&sv=im' : ''; $mlog = '&mode=log' if ($FORM{'mode'} =~ /^log$/i); $prev = $start - $page_max; $query = '&q=' . $key . '&l=' . $logic; if ($start >= $page_max) { $buffer .= <<"EOB"; [4.] EOB } $buffer .= <<"EOB"; [0.TOP] EOB if ($nf) { $buffer .= <<"EOB"; [6.] EOB } $buffer .= '
'; &$output_buffer; } sub set_init_mode_imode { local ($title, $email_admin, $envimgpath, $email_send, $bbs_url); 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=im' if ($FORM{'sv'} =~ /^im$/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_imode2 { 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); $email_to = '@docomo.ne.jp' if ($email_to eq '(通知メールアドレス)'); $buffer = <<"EOB"; 投稿通知の設定
sendmail
宛先
送信者メールアドレス
題名
EOB &$output_buffer; exit; } sub authorize_imode { my ($msg) = @_; my $style = ($subtype eq 'astel')? 'a' : 'i'; $style .= 'style='; $buffer = <<"EOB"; $msg
パスワード認証
認証
パスワード
EOB &$output_buffer; exit; } sub output_buffer_imode { my ($length, $header, $htmlhd, $body_atr, $akey1, $akey2); local ($footer); # Dxxxi ではアクセスキーに # と * が使えない if ($ENV{'HTTP_USER_AGENT'} =~ m|DoCoMo/[\d.]+/D\d{3}i|){ $akey1 = '9'; $akey2 = '7'; } else { $akey1 = '#'; $akey2 = '*'; } my $title = ($subtype eq 'astel')? $astel_title : $imode_title; my $svim = ($FORM{'sv'} =~ /^im$/i)? '?sv=im' : ''; $body_atr = &set_body_color(%imode_body) if ($ENV{'HTTP_USER_AGENT'} !~ /501i/); my ($addition); $addition = "
$version" if ($print_version); # $extra_header .= '' # if ($subtype eq 'astel' and not $allow_astel_savepage); $htmlhd =<<"EOH"; $title$extra_header
$title$addition
EOH $footer =<<"EOF";
$copyright_imode
EOF unless ($buffer =~ s/\s*$//) { $footer .=<<"EOF"; ${akey1}.掲示板に戻る
EOF } my $rettop = (($ret_local) && ($ret_local !~ m|^\s*$|))? $ret_local : ''; $footer .=<<"EOF" if ($rettop); ${akey2}.トップに戻る EOF $svim = ($FORM{'sv'} =~ /^im$/i)? '' : ''; $buffer =~ s//$svim/g; &subst_secure if ($limit_mode); $length = length($buffer) + length($htmlhd) + length($footer); if ($print_content_length) { $header =<<"EOH"; Content-Type: text/html;charset=Shift_JIS Content-Length: $length EOH } else { $header =<<"EOH"; Content-Type: text/html;charset=Shift_JIS EOH } print "$header"; print "$htmlhd"; print "$buffer"; print "$footer"; } 1;