#!/usr/mesh/bin/perl5 # # うぇぶ会議室拡張機能 # 会議室の底上げを行う # # Ver.01.00 Mon 23th Mar. 1988 # first release $common_path='/home3/t_shige/public_html'; $CGIPATH='.'; require ("$CGIPATH/forum.pl"); %http_args = &http'http_args; $room = $http_args{'room'}; $passwd = $http_args{'passwd'}; $min = $http_args{'min'}; $title = &forum'get_title($room); &WarningMsg('Bad Forum') if ($title eq ''); if ($http_args{'jackup'}) { local(@buf)=(); local($tempfile) = 'jackup'; local($result); &open_contents($passwd,$room,$min,*buf); &UpdateCotents($tempfile,*buf); } else { &OutForm; } ########################################### # Out Form for minimum article no input sub OutForm { print "Content-Type: text/html\n\n"; print <<__FORM__; Jackup forum ($title)

$titleの底上げ $help

最小記事番号 記事を削除する 管理者コード


__FORM__ } ########################################### # Load current contents sub open_contents { local($passwd,$room,$min,*buf) = @_; local($mesno, $ref_mes); local($linebuf); open(CONTENTS, "+<$FORUMPATH/$room/contents") || &ErrorMsg('missing', "$room/contents"); &forum'filelock(CONTENTS, 1) || &ErrorMsg('lock', "$room/contents"); $_=; chop; ($mesno, $ref_mes, $syspass) = /^(\d{5}) (\d{5}) (\S{3,})$/; &ErrorMsg('','Bad Adminislator Code') unless (crypt($passwd, $syspass) eq $syspass); &ErrorMsg('', "$room/contents") unless (($mesno) && ($min) && ($min <= $ref_mes)); push(@buf,sprintf("%05d %05d %s\n", $min, $ref_mes,$syspass)); while() { ($mesno, $ref_mes,$record) = /^(\d{5}) (\d{5}) (.*)/; if( $mesno >= $min ) { push(@buf,"$mesno $ref_mes $record\n"); last; } elsif( $http_args{'delete'} eq 'on' ) { unlink("$FORUMPATH/$room/$mesno.html"); } } while() { push(@buf,$_); } } ########################################### # Update contents sub UpdateCotents { local($temp,*buf)=@_; open(TEMP, ">$FORUMPATH/$room/$temp") || &ErrorMsg('write', "$room/$temp"); foreach(@buf) { print TEMP $_; } close(TEMP); &forum'filelock(CONTENTS, 0); close(CONTENTS); if(rename("$FORUMPATH/$room/$temp","$FORUMPATH/$room/contents")) { &CompleetMSG; } else { &ErrorMsg('rename', "$!"); } } sub CompleetMSG { print "Content-Type: text/html\n\n"; print <<_COMPLEET_; Jack up forum article

Jack up compleet !

_COMPLEET_ }