############################################ ## ## ## WebBBS ## ## by Darryl Burgdorf ## ## (e-mail burgdorf@awsd.com) ## ## ## ## version: 4.33 ## ## last modified: 6/8/00 ## ## copyright (c) 2000 ## ## ## ## latest version is available from ## ## http://awsd.com/scripts/ ## ## ## ############################################ sub WebBBS { if ($ARGV[0] && !($ENV{'QUERY_STRING'})) { $ENV{'QUERY_STRING'} = $ARGV[0]; $UseFrames = ""; $SkipHF = 1; } &Parse_Form; &Initialize_Data; if (($ENV{'DOCUMENT_URI'} && ($cgiurl !~ /$ENV{'DOCUMENT_URI'}/)) || ($ENV{'QUERY_STRING'} =~ /quickinfo/i)) { &QuickInfo; } if ($ENV{'QUERY_STRING'} =~ /blank/i) { &BlankPage; } elsif ($UseFrames && ($ENV{'QUERY_STRING'} !~ /index/i)) { if (($ENV{'QUERY_STRING'} =~ /review=(\d+)/i) || ($ENV{'QUERY_STRING'} =~ /rev=(\d+)/i)) { $message = $1; if ($message < 1) { $message = "00"; } } &SetupFrames; } else { if ($DisplayViews) { if ($FORM{'ListType'} =~ /Guestbook/) { unless ($UseLocking) { &MasterLockOpen; } &LockOpen (COUNTLOCK,"$dir/countlock.txt"); unless ($NoCountLock) { &CountDBMWrite; } } else { &CountDBMRead; } } if (($ENV{'QUERY_STRING'} =~ /rebuilt/) || (!($UseFrames) && $ENV{'QUERY_STRING'} =~ /rebuild/)) { unless ($DisplayViews && ($FORM{'ListType'} =~ /Guestbook/)) { if ($DBMType==2) { dbmclose (%CountList); } else { untie %CountList; } unless ($UseLocking) { &MasterLockOpen; } &LockOpen (COUNTLOCK,"$dir/countlock.txt"); unless ($NoCountLock) { &CountDBMWrite; } } $rebuildflag = 1; if ($DBMType==2) { dbmclose (%MessageList); } else { untie %MessageList; } require $webbbs_rebuild; &Rebuild_Database; @messages = (keys %MessageList); $TotalMessages = @messages; @sortedmessages = (sort {$a<=>$b} @messages); $lastmessage = $sortedmessages[@sortedmessages-1]; } @messages = (); if ($FORM{'ListType'} =~ /Alpha/) { foreach $message (@sortedmessages) { $sortsubject{$message} = $MessageList{$message}; $sortsubject{$message} =~ s/^[^\|]*\|([^\|]*).*/$1/; $sortsubject{$message} =~ s/^$text{'1513'} //; $sortsubject{$message} =~ s/&pipe;/\|/g; $sortsubject{$message} =~ tr/A-Z/a-z/; } } if ($ArchiveOnly && !($FORM{'KeySearch'}) && !($UseFrames)) { require $webbbs_misc; &Search; } &DisplayIndex; } } sub SetupFrames { print "$boardname\n"; if ($MetaFile) { open (HEADLN,"$MetaFile"); @headln = ; close (HEADLN); foreach $line (@headln) { print "$line"; } } print "\n"; if ($UseFrames =~ /h/i) { print "\n"; } else { print "\n"; } print "\n"; print "\n"; } elsif ($ArchiveOnly && !($FORM{'KeySearch'})) { print "SRC=\"$DestinationURL?search\">\n"; } elsif ($WelcomePage) { print "SRC=\"$WelcomePage\">\n"; } else { print "SRC=\"$DestinationURL?blank\">\n"; } print "\n"; print "\n"; if ($HeaderFile) { open (HEADER,"$HeaderFile"); @header =
; close (HEADER); foreach $line (@header) { if ($line =~ //i) { $SSIFile = $SSIRootDir.$2; open (SSIFILE,"<$SSIFile"); while () { print "$_"; } close (SSIFILE); } else { print "$line"; } } } if ($printboardname) { print "

"; print "$boardname\n"; } print "$text{'0100'}\n"; print "$CreditLink"; if ($FooterFile) { open (FOOTER,"$FooterFile"); @footer =