#!/usr/local/bin/perl #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ Ahhan! Headline System _/ my $version = '2.55b'; #15/Sep/2000/ - 15/Oct/2001 _/ #_/ by bunbun _/ #_/ Mail: mig-poco@kcn.ne.jp _/ #_/ Home: http://www1.kcn.ne.jp/~mig-poco/ (旧) _/ #_/ Home: http://www.kokobbs.com/ahhan/ (新) _/ #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ require './pref.cgi'; require './proofing.pl'; my $design_file=$pref::design_file; my $master_pass=$pref::master_pass; my $top_p=$pref::top_p; my $sup_name=$pref::sup_name; my $sup_email=$pref::sup_email; my $t_zone=$pref::t_zone; my $thre_nv=$pref::thre_nv; my $script=$pref::script; my $keitai =$pref::keitai; my $script_i =$pref::script_i; my $log_dr=$pref::log_dr; my ($html_dr); if($pref::html_dr) { $html_dr = $pref::html_dr; } else { $html_dr = $log_dr; } my $cgi_only=$pref::cgi_only; my $index=$pref::index; my $boardname=$pref::boardname; my $extension=$pref::extension; my $search=$pref::search; my $kensaku=$pref::kensaku; my $head_l=$pref::head_l; if ($head_l == 0){ &error; } my $refix_d=$pref::refix_d; my $head_vth=$pref::head_vth; my $new_mark=$pref::new_mark; my $mark_time=$pref::mark_time; my $onep_mark=$pref::onep_mark; my $onethre=$pref::onethre; my $thre_to=$pref::thre_to; my $message =$pref::message; require "./$design_file"; my $bakgr_url=$mbbslib::bakgr_url_a; my $bakgr=$mbbslib::bakgr; my $bgcolor =$mbbslib::bgcolor; my $style=$mbbslib::style; my $sitetitle2=$mbbslib::sitetitle2; my $in_bgcolor=$mbbslib::in_bgcolor; my $parce=$mbbslib::parce; my $parcekiji=$mbbslib::parcekiji; my $h_bd_width=$mbbslib::h_bd_width; my $ti_li_fc=$mbbslib::ti_li_fc; my $space1=$mbbslib::space1; my $space2=$mbbslib::space2; my $space3=$mbbslib::space3; my $script_name = "Ahhan! Headline"; my $kaiz = ''; my ($mode,$gorup,$folder_c) = &decode; my $url_sf = "./"; local ($gc_name,$gc_email) = &mbbslib'Get_Cookie($FORM{fol}); print "Content-type: text/html; charset=Shift_JIS\n\n"; &meke_head; &meke_body; &mbbslib'MekeFoot($sup_email,$sup_name,$script_name,$version,$kaiz,"out"); exit; sub decode { my %FORM ; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } my @pairs = split(/&/,$buffer); my $pair = ''; foreach $pair (@pairs) { my ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/\"/"/g; $value =~ s//>/g; $FORM{$name} = $value; $FORM{$name} =~ s/\W//g; } if($FORM{mo} eq '' && $FORM{mode}) { $FORM{mo} = $FORM{mode}; } if($FORM{fo} eq '' && $FORM{fol}) { $FORM{fo} = $FORM{fol}; } return ($FORM{mode},$FORM{gorup},$FORM{fo}); } sub meke_body { $no_a=0; if (open(BN,"$boardname")){ @boardname = ; close(BN); $nobo=0; foreach (@boardname) { $boardname[$no_a] =~ s/\n//g; ($nameshort,$namelong,$cola,$colb,$colc,$cold,$cole,$colf,$cate_link,$tag_act,$bo_act,$cate_gr,$b_nan,$b_mes,$ho_o,$no_sut,$no_nan) = split(/<>/, $boardname[$no_a]); $folder = $nameshort; $bbstitle=$namelong; $tbgc_a =$cola; $bd_col =$colb; $tp_col =$colc; $tb_col =$cold; $tb_colb =$cole; $tf_col =$colf; if($b_mes){ $message=$b_mes; } if($folder_c){ if($folder eq $folder_c){ if($bo_act < 1){ $ru_mes =(<<"EOF"); EOF $mode_f = "regist"; $loca_f =(<<"EOF"); EOF $pwd_f =""; $sitetitle3 = "[ スレッド作成 ]"; $top_ground_a = &mbbslib'ThreadMakeingForm ( $url_sf,$script,$folder,$message,$cate_link, $boards_hl,$bd_col,$tp_col,$tb_col,$tf_col, $parce,$ru_mes,$sitetitle3,$bbstitle,$space1, $mode_f,$loca_f,$pwd_f,$gc_name,$gc_email, 0,$cltb_col,$border_width,$g_home ); } &meke_list; } } else { if($cate_link ne "off"){ if($mode eq "gor"){ if($gorup eq $cate_gr){ &meke_list; } } else { &meke_list; } } } $no_a++; } } $no_a=0; } sub meke_head { if($folder_c){ @select_b =&mbbslib'SelectBoard ( $master_pass,$pwd,$boardname,$folder_c,"fo"); $sel_boa =(<<"EOF");
EOF $sel_bob =(<<"EOF"); @select_b   
EOF } if($keitai){ if ($gorup) { $cate_g ="?mo=gor&go=$gorup"; } elsif ($folder_c) { $cate_g ="?fo=$folder_c"; } else { $cate_g = ""; } $keitai_p =(<<"EOF"); EOF } $js_cookie =''; $pageheader = &mbbslib'Pageheader( $mode,$sub,'',"Headline",$style,$bgcolor,$bakgr_url, $bakgr,$js_cookie ); if ($top_p) { $p_top_p =(<<"EOF"); ■ HOME  EOF } else { $p_top_p = ''; } $count =(<<"EOF"); EOF if ($new_mark){ $mark_inf =(<<"EOF");
の印は24時間以内に投稿があったスレッドを表\します。
EOF } $top_ground_b = &mbbslib'Top_ground_b( $parce,$in_bgcolor,"$keitai_p     ",$sitetitle2,$ti_li_fc, "Headline$count","",$space1,$p_top_p ); print <<"EOF"; $pageheader $top_ground_b$mark_inf $fol_name EOF } sub meke_list { my ($sub,$no,$date,$name,$home_a,$email,$msg,$reto,$sato,$close, $updn,$sw_a,$sw_b,$lognewfile,@lognew,$lognew_all,$search_bo,$thre_ed, $nolog,$dat_a,$nototal,$lognewdat,$date_index); $lognewfile = &mbbslib'File_Name ($log_dr,$folder,"","new",$extension); open(LOG,$lognewfile) ; @lognew = ; close(LOG); $lognew_all = $#lognew + 1; if ($lognew_all < 10) { $lognew_all = "  $lognew_all"; }elsif ($lognew_all < 100) { $lognew_all = " $lognew_all"; } if($refix_d) { if ($cgi_only) { $lognewdat = $lognewfile; } else { $lognewdat = "$log_dr/$folder/$index"; $lognewdat=~ s/\s//g; } $ENV{'TZ'} = $t_zone; ($mtime) = (stat($lognewdat))[9]; ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime($mtime); $date_index = sprintf("%04d/%d/%d %02d:%02d", $year+1900,$mon+1,$mday,$hour,$min); $refix_date = "更新日: $date_index ◇"; } if($kensaku) { $search_bo =(<<"EOF"); [ログ検索] EOF } if ($cgi_only) { $b_index = "$url_sf$script?mo=n&fo=$folder&ts=1&te=$thre_to"; } else { $b_index = "$html_dr/$folder/$index"; } print <<"EOF"; $top_ground_a
  $bbstitle[$refix_date スレッド数 $lognew_all] $search_bo  
EOF if ($head_vth) { $head_vt = $head_vth-1; } else { $head_vt = 19; } if($folder_c){ $thre_ed = $#lognew; }else { if($#lognew < $head_vt ){ $thre_ed = $#lognew; } else { $thre_ed = $head_vt; } } $nolog = 0; foreach (@lognew[0..$thre_ed]) { $lognew[$nolog] =~ s/\n//g; $thre_no=$lognew[$nolog]; $dat_a = &mbbslib'File_Name ($log_dr,$folder,$thre_no,"a",$extension); $nolog++; open(LOG,$dat_a); @lines = ; close(LOG); ($sub,$no,$date,$name,$home_a,$email,$msg,$reto,$sato,$close,$updn,$sw_a,$sw_b) = split(/<>/, $lines[0]); $nototal = $reto; if ($thre_nv) { $f_ts = ""; $f_te = ""; } if ($new_mark && $onep_mark == 0){ &mbbslib'Thre_Mark($dat_a,$mark_time); } if ($nolog <= $thre_to) { if ($new_mark && $onep_mark == 1){ &mbbslib'Thre_Mark($dat_a,$mark_time); } if ($cgi_only) { $in_no =(<<"EOF"); EOF } else { $in_no =(<<"EOF"); EOF } print <<"EOF"; $f_ts$nolog :$in_no$sub($nototal)$f_te  EOF } else { print <<"EOF"; $f_ts$nolog :$sub($nototal)$f_te  EOF } } print <<"EOF";

EOF $nolog=0; } sub error { print "Content-type: text/html; charset=Shift_JIS\n\n"; print <<"EOF";

■ ご使用出来ませんエラー ■

現在ヘッドラインは、運用しておりません。

EOF exit; }