sub plushSearch1 { my( @categories, %cat, $curcat, %catname, %cataccess, %catboards, $openmemgr, @membergroups, $tmpa, %openmemgr, $curboard, @threads, @boardinfo, $counter ); @categories = (); fopen(FILE, "$vardir/cat.txt"); @categories = ; fclose(FILE); &LoadCensorList; $yytitle = $txt{'183'}; &header; $searchpageurl = $curposlinks ? qq~$txt{'182'}~ : $txt{'182'}; print <<"EOT";
  • $mbname » $searchpageurl
$txt{'183'}
$txt{'582'}:
 
$txt{'583'}:
 
$txt{'189'}:
EOT $counter = 1; foreach $curcat (@categories) { chomp $curcat; fopen(FILE, "$boardsdir/$curcat.cat"); $catname{$curcat} = ; chomp $catname{$curcat}; $cataccess{$curcat} = ; chomp $cataccess{$curcat}; @{$catboards{$curcat}} = ; fclose(FILE); $openmemgr{$curcat} = 0; @membergroups = split( /,/, $cataccess{$curcat} ); foreach $tmpa (@membergroups) { if( $tmpa eq $settings[7]) { $openmemgr{$curcat} = 1; last; } } if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' ) { $openmemgr{$curcat} = 1; } unless( $openmemgr{$curcat} ) { next; } boardcheck: foreach $curboard (@{$catboards{$curcat}}) { chomp $curboard; fopen(FILE, "$boardsdir/$curboard.dat"); @boardinfo = ; fclose(FILE); chomp @boardinfo; @{$boardinfo{$curboard}} = @boardinfo; $cat{$curboard} = $curcat; print qq~~; unless( $counter % 2 ) { print q~~; } ++$counter; } } print <<"EOT";
$boardinfo[0]

$txt{'737'}

$txt{'573'}:
$txt{'70'} $txt{'72'}

$txt{'575'} $txt{'574'}:
$txt{'578'} + $txt{'579'}.
$txt{'576'} $txt{'574'}:
$txt{'578'} + $txt{'579'}.

$txt{'191'}
EOT &footer; exit; } sub plushSearch2 { my $minripe = $FORM{'minripe'} || 0; my $minage = $FORM{'minage'} || 0; my $maxripe = $FORM{'maxripe'} || 0; my $maxage = $FORM{'maxage'} || 7; my $display = $FORM{'numberreturned'} || 25; if( $minripe =~ /\D/ ) { &fatal_error($txt{'337'}); } if( $minage =~ /\D/ ) { &fatal_error($txt{'337'}); } if( $maxripe =~ /\D/ ) { &fatal_error($txt{'337'}); } if( $maxage =~ /\D/ ) { &fatal_error($txt{'337'}); } if( $display =~ /\D/ ) { &fatal_error($txt{'337'}); } my $userkind = $FORM{'userkind'}; my $userspec = $FORM{'userspec'}; if( $userkind eq 'starter' ) { $userkind = 1; } elsif( $userkind eq 'poster' ) { $userkind = 2; } elsif( $userkind eq 'noguests' ) { $userkind = 3; } elsif( $userkind eq 'onlyguests' ) { $userkind = 4; } else { $userkind = 0; $userspec = ''; } if ($userspec =~ m~/~){ &fatal_error($txt{'224'}); } if ($userspec =~ m~\\~){ &fatal_error($txt{'225'}); } $userspec =~ s/\A\s+//; $userspec =~ s/\s+\Z//; $userspec =~ s/[^0-9A-Za-z#%+,-\.@^_]//g; my $searchtype = $FORM{'searchtype'}; my $search = $FORM{'search'}; if( $searchtype eq 'anywords' ) { $searchtype = 2; } elsif( $searchtype eq 'asphrase' ) { $searchtype = 3; } else { $searchtype = 1; } if ($search =~ m~/~){ &fatal_error($txt{'397'}); } if ($search =~ m~\\~){ &fatal_error($txt{'397'}); } if ($search =~ /\AIs UBB Good\?\Z/i) { &fatal_error(""); } my $searchsubject = $FORM{'subfield'} eq 'on'; my $searchmessage = $FORM{'msgfield'} eq 'on'; $search =~ s/\A\s+//; $search =~ s/\s+\Z//; $search =~ s/\&/\&/g; $search =~ s/"/\"/g; $search =~ s/ / \ /g; $search =~ s//>/g; $search =~ s/\t/ \  \  \ /g; $search =~ s/\cM//g; $search =~ s~(\S{80})(?=\S)~$1\n~g; $search =~ s/\n/
/g; $search =~ s/\|/\|/g; my @search; if( $searchtype != 3 ) { @search = split( /\s+/, $search ); } else { @search = ( $search ); } my( $curboard, @threads, $curthread, $tnum, $tsub, $tname, $temail, $tdate, $treplies, $tusername, $ticon, $tstate, $ttime, @messages, $curpost, $mtime, $mname, $memail, $mdate, $musername, $micon, $mattach, $mip, $mns, $subfound, $msgfound, $numfound, %data, $i, $board, $curcat, @categories, %catname, %cataccess, %openmemgr, @membergroups, %cats, @boardinfo, %boardinfo, @boards, $counter, $msgnum ); my($tispoll); my $curtime = time + (3600*$timeoffset); my $mintime = $curtime - (($minage*86400)+($minripe*3600) - 1); my $maxtime = $curtime - (($maxage*86400)+($maxripe*3600) + 1); my $oldestfound = stringtotime("01/10/37 $txt{'107'} 00:00:00"); $yytitle = $txt{'166'}; &header; fopen(FILE, "$vardir/cat.txt"); @categories = ; fclose(FILE); foreach $curcat (@categories) { chomp $curcat; fopen(FILE, "$boardsdir/$curcat.cat"); $catname{$curcat} = ; chomp $catname{$curcat}; $cataccess{$curcat} = ; chomp $cataccess{$curcat}; @{$catboards{$curcat}} = ; fclose(FILE); $openmemgr{$curcat} = 0; @membergroups = split( /,/, $cataccess{$curcat} ); foreach $tmpa (@membergroups) { if( $tmpa eq $settings[7]) { $openmemgr{$curcat} = 1; last; } } if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' ) { $openmemgr{$curcat} = 1; } unless( $openmemgr{$curcat} ) { next; } foreach $curboard (@{$catboards{$curcat}}) { chomp $curboard; fopen(FILE, "$boardsdir/$curboard.dat"); @boardinfo = ; fclose(FILE); chomp @boardinfo; @{$boardinfo{$curboard}} = @boardinfo; $cat{$curboard} = $curcat; } } $counter = 1; while( $_ = each(%FORM) ) { unless( $_ =~ m~\Abrd(\d+)\Z~ ) { next; } $_ = $FORM{$_}; if ($_ =~ m~/~){ &fatal_error($txt{'397'}); } if ($_ =~ m~\\~){ &fatal_error($txt{'397'}); } if( $cat{$_} ) { push( @boards, $_ ); } ++$counter; } boardcheck: foreach $curboard (@boards) { fopen(FILE, "$boardsdir/$curboard.txt") || next; @threads = ; fclose(FILE); #print qq~
    Beginning search in board $curboard
      ~; threadcheck: foreach $curthread (@threads) { chomp $curthread; #print qq~
    Beginning search in thread $curthread.
      ~; ($tnum, $tsub, $tname, $temail, $tdate, $treplies, $tusername, $ticon, $tstate, $tispoll) = split( /\|/, $curthread ); if( $userkind == 1 ) { if( $tusername eq 'Guest' ) { if( $tname !~ m~\A\Q$userspec\E\Z~i ) { next threadcheck; } } else { if( $tusername !~ m~\A\Q$userspec\E\Z~i ) { next threadcheck; } } } $ttime = stringtotime($tdate); unless( $ttime < $mintime ) { next threadcheck; } unless( $ttime > $maxtime ) { next boardcheck; } fopen(FILE, "$datadir/$tnum.txt") || next; @messages = ; fclose(FILE); postcheck: for( $msgnum = 0; $msgnum < @messages; $msgnum++ ) { #print qq~Beginning search in post $curpost.
      ~; $curpost = $messages[$msgnum]; chomp $curpost; ($msub, $mname, $memail, $mdate, $musername, $micon, $mattach, $mip, $message, $mns) = split(/\|/,$curpost); $mtime = stringtotime($mdate); unless( $mtime < $mintime ) { next postcheck; } if( $numfound >= $display && $mtime <= $oldestfound ) { next postcheck; } if( $musername eq 'Guest' ) { if( $userkind == 3 || ( $userkind == 2 && $mname !~ m~\A\Q$userspec\E\Z~i ) ) { next postcheck; } } else { if( $userkind == 4 || ( $userkind == 2 && $musername !~ m~\A\Q$userspec\E\Z~i ) ) { next postcheck; } } #print qq~
        Performing search in post $curpost.
      ~; if( $searchsubject ) { if( $searchtype == 2 ) { $subfound = 0; foreach( @search ) { if( $msub =~ m~\Q$_\E~i ) { $subfound = 1; last; } } } else { $subfound = 1; foreach( @search ) { if( $msub !~ m~\Q$_\E~i ) { $subfound = 0; last; } } } } if( $searchmessage && ! $subfound ) { if( $searchtype == 2 ) { $msgfound = 0; foreach( @search ) { if( $message =~ m~\Q$_\E~i ) { $msgfound = 1; last; } } } else { $msgfound = 1; foreach( @search ) { if( $message !~ m~\Q$_\E~i ) { $msgfound = 0; last; } } } } unless( $msgfound || $subfound ) { next postcheck; } if( $subfound ) { foreach( @search ) { $msub =~ s~(\Q$_\E)~$_~ig; } } if( $msgfound ) { foreach( @search ) { $message =~ s~(\Q$_\E)~$_~ig; } } $data{$mtime} = [$curboard, $tnum, $msgnum, $tusername, $tname, $msub, $mname, $memail, $mdate, $musername, $micon, $mattach, $mip, $message, $mns]; if( $mtime < $oldestfound ) { $oldestfound = $mtime; } ++$numfound; } } } @messages = sort {$b <=> $a } keys %data; if( @messages ) { if( @messages > $display ) { $#messages = $display - 1; } $counter = 1; # Load Censor List &LoadCensorList; } else { print qq~
      $txt{'170'}
      ~; } for( $i = 0; $i < @messages; $i++ ) { ($board, $tnum, $msgnum, $tusername, $tname, $msub, $mname, $memail, $mdate, $musername, $micon, $mattach, $mip, $message, $mns) = @{ $data{$messages[$i]} }; $mdate = &timeformat($mdate); if( $tusername ne 'Guest' ) { if( &LoadUser($tusername) ) { $tname = $userprofile{$tusername}->[1]; } } if( $musername ne 'Guest' ) { if( &LoadUser($musername) ) { $mname = "$userprofile{$musername}->[1]"; } } foreach (@censored) { ($tmpa,$tmpb) = @{$_}; $message =~ s~\Q$tmpa\E~$tmpb~gi; $msub =~ s~\Q$tmpa\E~$tmpb~gi; } #Lets not show the poll just the choices in a search if( $message =~ m~\[poll\]~i ) { $message =~ s/\[POLL\]//gi; $message =~ s/\[\/POLL\]//gi; $message =~ s~\[opt\](.+?)\[/opt\]~$txt{'901'} $1~isg; } if($enable_ubbc) { $ns = $mns; &DoUBBC; } if($enable_notification) { $notify = qq~$menusep$img{'notify'}~; } print <<"EOT";
       $counter   $catname{$cat{$board}} / $boardinfo{$board}->[0] / $msub  $txt{'30'}: $mdate 
      $txt{'109'} $tname | $txt{'105'} $txt{'525'} $mname
      $message
       $img{'reply'}$menusep$img{'replyquote'}$notify

      EOT ++$counter; } print <<"EOT"; $txt{'167'}
      $txt{'236'} $txt{'237'}
      EOT &footer; exit; } #!/usr/bin/perl if( $ENV{'SERVER_SOFTWARE'} =~ /IIS/ ) { $yyIIS = 1; $0 =~ m~(.*)(\\|/)~; $yypath = $1; $yypath =~ s~\\~/~g; chdir($yypath); push(@INC,$yypath); } ### Requirements and Errors ### use CGI::Carp qw(fatalsToBrowser); require "infos.txt"; if ($ENV{'SCRIPT_NAME'} eq "$pfadscript.pl") { require "Settings.pl"; $boardnummercount = ""; $boardnummer = ""; $account = ""; } else { $boardnummercount = 1; while ($ENV{'SCRIPT_NAME'} ne "$pfadscript$boardnummercount.pl") { $boardnummercount++; } require "Settings$boardnummercount.pl"; } $boardnummer = $boardnummercount; require "$language"; require "$sourcedir/Subs.pl"; require "$sourcedir/Load.pl"; require "$sourcedir/Security.pl"; require "$sourcedir/sid.pl"; if (fopen (FILE, "$vardir/Smilies.txt") ) {} else { fopen(FILE, ">>$vardir/Smilies.txt"); print FILE "1;"; close(FILE); } require "$vardir/Smilies.txt"; &GetColors; &sid_load; #load $username with SID $username = 'Guest' if ($username eq ''); if ($username eq 'Guest') { &LoadCookie; if ($username ne 'Guest') { $FORM{'cookieneverexp'}='on'; &sid_create($username); } } $cgi=qq~$scripturl?SID=$sid&board=$currentboard~; &LoadUserSettings; &sid_write if ($username ne 'Guest'); #update SID &banning; if ($action eq "") { &WriteLog; } &LoadMembNumber; &LoadBoard; $SIG{__WARN__} = sub { &fatal_error( @_ ); }; eval { &yymain; }; if ($@) { &fatal_error("Untrapped Error:
      $@"); } sub yymain { #BEGIN SUB YYMAIN #### Choose what to do based on the form action #### if ($maintenance == 1 && $action eq 'login2') { require "$sourcedir/LogInOut.pl"; &Login2; } if ($maintenance == 1 && $settings[7] ne 'Administrator') { require "$sourcedir/Maintenance.pl"; &InMaintenance; } ### Guest can do the very few following actions. if($username eq 'Guest' && $guestaccess == 0) { if (!(($action eq 'login') || ($action eq 'login2') || ($action eq 'register') || ($action eq 'register2') || ($action eq 'reminder') || ($action eq 'reminder2'))) { &KickGuest; } } my $fastfind = substr($action,0,1); #BEGIN FASTFIND IF STATEMENT if( $fastfind eq 'l' ) { if ($action eq 'login') { require "$sourcedir/LogInOut.pl"; &Login; } elsif ($action eq 'login2') { require "$sourcedir/LogInOut.pl"; &Login2; } elsif ($action eq 'logout') { require "$sourcedir/LogInOut.pl"; &Logout; } elsif ($action eq 'lock') { require "$sourcedir/LockThread.pl"; &LockThread; } #END FASTFIND L* } if( $fastfind eq 'd' ) { if ($action eq 'display') { require "$sourcedir/Display.pl"; &Display; } elsif ($action eq 'displaynew') { require "$sourcedir/DisplayNew.pl"; &DisplayNew; } elsif ($action eq 'deletemultimembers') { require "$sourcedir/Admin.pl"; &DeleteMultiMembers; } elsif ($action eq 'do_clean_log') { require "$sourcedir/Admin.pl"; &do_clean_log; } #END FASTFIND D* } elsif( $fastfind eq 'm' ) { $fastfind = substr($action,1,1); if( $fastfind eq 'o' ) { if ($action eq 'modify') { require "$sourcedir/ModifyMessage.pl"; &ModifyMessage; } elsif ($action eq 'modify2') { require "$sourcedir/ModifyMessage.pl"; &ModifyMessage2; } elsif ($action eq 'modtemp') { require "$sourcedir/Admin.pl"; &ModifyTemplate; } elsif ($action eq 'modtemp2') { require "$sourcedir/Admin.pl"; &ModifyTemplate2; } elsif ($action eq 'modsettings') { require "$sourcedir/Admin.pl"; &ModifySettings; } elsif ($action eq 'modsettings2') { require "$sourcedir/Admin.pl"; &ModifySettings2; } elsif ($action eq 'modmemgr') { require "$sourcedir/Admin.pl"; &EditMemberGroups; } elsif ($action eq 'modmemgr2') { require "$sourcedir/Admin.pl"; &EditMemberGroups2; } elsif ($action eq 'movethread') { require "$sourcedir/MoveThread.pl"; &MoveThread; } elsif ($action eq 'movethread2') { require "$sourcedir/MoveThread.pl"; &MoveThread2; } elsif ($action eq 'modifycatorder') { require "$sourcedir/ManageCats.pl"; &ReorderCats; } elsif ($action eq 'modifycat') { require "$sourcedir/ManageCats.pl"; &ModifyCat; } elsif ($action eq 'modifyboard') { require "$sourcedir/ManageBoards.pl"; &ModifyBoard; } elsif ($action eq 'modifyKarma'){ require "$sourcedir/Karma.pl"; &modifyKarma; } #END FASTFIND MO* } else { if ($action eq 'markasread') { require "$sourcedir/MessageIndex.pl"; &MarkRead; } elsif ($action eq 'markallasread') { require "$sourcedir/BoardIndex.pl"; &MarkAllRead; } elsif ($action eq 'managecats') { require "$sourcedir/ManageCats.pl"; &ManageCats; } elsif ($action eq 'mailing') { require "$sourcedir/Admin.pl"; &MailingList; } elsif ($action eq 'membershiprecount') { require "$sourcedir/Admin.pl"; &AdminMembershipRecount; } elsif ($action eq 'mlall') { require "$sourcedir/Memberlist.pl"; &MLAll; } elsif ($action eq 'mlalldes') { require "$sourcedir/Memberlist.pl"; &MLAll; } elsif ($action eq 'mlalfa') { require "$sourcedir/Memberlist.pl"; &MLAll; } elsif ($action eq 'mlemail') { require "$sourcedir/Memberlist.pl"; &MLAll; } elsif ($action eq 'mlgrp') { require "$sourcedir/Memberlist.pl"; &MLAll; } elsif ($action eq 'mlpost') { require "$sourcedir/Memberlist.pl"; &MLAll; } elsif ($action eq 'mlipnum') { require "$sourcedir/Memberlist.pl"; &MLAll; } elsif ($action eq 'mlipsearch') { require "$sourcedir/Memberlist.pl"; &MLByIP; } elsif ($action eq 'mlletter') { require "$sourcedir/Memberlist.pl"; &MLByLetter; } elsif ($action eq 'mltop') { require "$sourcedir/Memberlist.pl"; &MLTop; } elsif ($action eq 'manageboards') { require "$sourcedir/ManageBoards.pl"; &ManageBoards; } elsif ($action eq 'ml') { require "$sourcedir/Admin.pl"; &ml; } elsif ($action eq 'managebuddies') { require "$sourcedir/BuddyList.pl"; &ManageBuddies; } elsif ($action eq 'managebuddies2') { require "$sourcedir/BuddyList.pl"; &ManageBuddies2; } #END FASTFIND M* } } elsif( $fastfind eq 'p' ) { if ($action eq 'post') { require "$sourcedir/Post.pl"; &Post; } elsif ($action eq 'post2') { require "$sourcedir/Post.pl"; &Post2; } elsif ($action eq 'pop3check') { require "$sourcedir/POP3.pl"; &Check; } elsif ($action eq 'poll') { require "$sourcedir/Poll.pl"; &Poll; } elsif ($action eq 'print') { require "$sourcedir/Printpage.pl"; &Print; } elsif ($action eq 'profile') { require "$sourcedir/Profile.pl"; &ModifyProfile; } elsif ($action eq 'profile2') { require "$sourcedir/Profile.pl"; &ModifyProfile2; } elsif ($action eq 'printwhoisonline') { require "$sourcedir/Subs.pl"; &printwhoisonline($INFO{'group'}); } #END FASTFIND P* } elsif( $fastfind eq 'r' ) { if ($action eq 'register') { require "$sourcedir/Register.pl"; &Register; } elsif ($action eq 'ratetopic') { require "$sourcedir/Rate.pl"; &RateTopic; } elsif ($action eq 'ratetopic') { require "$sourcedir/Rate.pl"; &RateTopic; } elsif ($action eq 'register2') { require "$sourcedir/Register.pl"; &Register2; } elsif ($action eq 'reminder') { require "$sourcedir/LogInOut.pl"; &Reminder; } elsif ($action eq 'reminder2') { require "$sourcedir/LogInOut.pl"; &Reminder2; } elsif ($action eq 'reminder3') { require "$sourcedir/LogInOut.pl"; &Reminder3; } elsif ($action eq 'removethread') { require "$sourcedir/RemoveThread.pl"; &RemoveThread; } elsif ($action eq 'removethread2') { require "$sourcedir/RemoveThread.pl"; &RemoveThread2; } elsif ($action eq 'recent') { require "$sourcedir/Recent.pl"; &RecentPosts; } elsif ($action eq 'recent1') { require "$sourcedir/Recent.pl"; &LastTopics; } elsif ($action eq 'removeoldthreads') { require "$sourcedir/RemoveOldThreads.pl"; &RemoveOldThreads; } elsif ($action eq 'reorderboards') { require "$sourcedir/ManageBoards.pl"; &ReorderBoards; } elsif ($action eq 'reorderboards2') { require "$sourcedir/ManageBoards.pl"; &ReorderBoards2; } elsif ($action eq 'repairpasswords') { require "$sourcedir/Admin.pl"; &RepairPasswords; } elsif ($action eq 'repairboards') { require "$sourcedir/Admin.pl"; &RepairBoards; } elsif ($action eq 'rebuildmemlist') { require "$sourcedir/Admin.pl"; &RebuildMemList; } elsif ($action eq 'rebuildmemnumb') { require "$sourcedir/Admin.pl"; &RebuildMemNumb; } elsif ($action eq 'rebuildmemnumb2') { require "$sourcedir/Admin.pl"; &RebuildMemNumb2; } elsif ($action eq 'reporttm') { require "$sourcedir/Subs.pl"; &ReportToModerator; } elsif ($action eq 'reporttm2') { require "$sourcedir/Subs.pl"; &ReportToModerator2; } #END FASTFIND R* } elsif( $fastfind eq 'i' ) { if ($action eq 'im') { require "$sourcedir/InstantMessage.pl"; &IMIndex; } elsif ($action eq 'imprefs') { require "$sourcedir/InstantMessage.pl"; &IMPreferences; } elsif ($action eq 'imprefs2') { require "$sourcedir/InstantMessage.pl"; &IMPreferences2; } elsif ($action eq 'imoutbox') { require "$sourcedir/InstantMessage.pl"; &IMOutbox; } elsif ($action eq 'imremove') { require "$sourcedir/InstantMessage.pl"; &IMRemove; } elsif ($action eq 'imfolderdel') { require "$sourcedir/Folders.pl"; &DeleteFolders; } elsif ($action eq 'imfmin') { require "$sourcedir/Folders.pl"; &HideShow; } elsif ($action eq 'imviewfolder') { require "$sourcedir/Folders.pl"; &ViewFolder; } elsif ($action eq 'imaddfolder') { require "$sourcedir/Folders.pl"; &AddFolder; } elsif ($action eq 'imfolder_message') { require "$sourcedir/Folders.pl"; &MessageView; } elsif ($action eq 'instantmessage_view') { require "$sourcedir/InstantMessage.pl"; &ViewIM; } elsif ($action eq 'instantmessout') { require "$sourcedir/InstantMessage.pl"; &ViewIMOUT; } elsif ($action eq 'imsend') { require "$sourcedir/InstantMessage.pl"; &IMPost; } elsif ($action eq 'imsend2') { require "$sourcedir/InstantMessage.pl"; &IMPost2; } elsif ($action eq 'imremoveall') { require "$sourcedir/InstantMessage.pl"; &KillAllQuery; } elsif ($action eq 'imremoveall2') { require "$sourcedir/InstantMessage.pl"; &KillAll; } elsif ($action eq 'infosjs') { require "$sourcedir/Subs.pl"; &infosjs($INFO{'group'}); } elsif ($action eq 'icqpager') { require "$sourcedir/ICQPager.pl"; &IcqPager; } elsif ($action eq 'ipban') { require "$sourcedir/Admin.pl"; &ipban; } elsif ($action eq 'ipban2') { require "$sourcedir/Admin.pl"; &ipban2; } #END FASTFIND I* } elsif( $fastfind eq 'c' ) { if ($action eq 'changemode') { &setmode; } elsif ($action eq 'changemv') { &setmv; } elsif ($action eq 'createcat') { require "$sourcedir/ManageCats.pl"; &CreateCat; } elsif ($action eq 'clean_log') { require "$sourcedir/Admin.pl"; &clean_log; } elsif ($action eq 'calendar') { require "$sourcedir/Calendar.pl"; &cal_list; } elsif ($action eq 'calendar2') { require "$sourcedir/Calendar.pl"; &cal_month; } elsif ($action eq 'calendar3') { require "$sourcedir/Calendar.pl"; &cal_modify; } elsif ($action eq 'calendar4') { require "$sourcedir/Calendar.pl"; &cal_modify2; } elsif ($action eq 'calendar5') { require "$sourcedir/Calendar.pl"; &cal_delete_message; } elsif ($action eq 'calendar6') { require "$sourcedir/Calendar.pl"; &caladmin;} elsif ($action eq 'calendar7') { require "$sourcedir/Calendar.pl"; &cal_save_settings;} elsif ($action eq 'calendar8') { require "$sourcedir/Calendar.pl"; &cal_delete_messages;} #END FASTFIND C* } elsif( $fastfind eq 'n' ) { if ($action eq 'notify') { require "$sourcedir/Notify.pl"; &Notify; } elsif ($action eq 'notify2') { require "$sourcedir/Notify.pl"; &Notify2; } elsif ($action eq 'notify3') { require "$sourcedir/Notify.pl"; &Notify3; } elsif ($action eq 'notify4') { require "$sourcedir/Notify.pl"; &Notify4; } #END FASTFIND N* } elsif( $fastfind eq 's' ) { if ($action eq 'setsmp') { &setsmp; } elsif ($action eq 'sendtopic') { require "$sourcedir/SendTopic.pl"; &SendTopic; } elsif ($action eq 'sendtopic2') { require "$sourcedir/SendTopic.pl"; &SendTopic2; } elsif ($action eq 'setcensor') { require "$sourcedir/Admin.pl"; &SetCensor; } elsif ($action eq 'setcensor2') { require "$sourcedir/Admin.pl"; &SetCensor2; } elsif ($action eq 'search') { require "$sourcedir/Search.pl"; &plushSearch1; } elsif ($action eq 'search2') { require "$sourcedir/Search.pl"; &plushSearch2; } elsif ($action eq 'setreserve') { require "$sourcedir/Admin.pl"; &SetReserve; } elsif ($action eq 'setreserve2') { require "$sourcedir/Admin.pl"; &SetReserve2; } elsif ($action eq 'shownotify') { require "$sourcedir/Notify.pl"; &ShowNotifications; } elsif ($action eq 'smilies') { require "$sourcedir/Smilies.pl"; &SmiliePanel; } elsif ($action eq 'sticky') { require "$sourcedir/Subs.pl"; &Sticky; } #END FASTFIND S* } else { if ($action eq 'viewprofile') { require "$sourcedir/Profile.pl"; &ViewProfile; } elsif ($action eq 'addboard') { require "$sourcedir/ManageBoards.pl"; &CreateBoard; } elsif ($action eq 'admin') { require "$sourcedir/Admin.pl"; &Admin; } elsif ($action eq 'viewmembers') { require "$sourcedir/Admin.pl"; &ViewMembers; } elsif ($action eq 'findmember') { require "$sourcedir/Memberlist.pl"; &findMember; } elsif ($action eq 'editnews') { require "$sourcedir/Admin.pl"; &EditNews; } elsif ($action eq 'boardrecount') { require "$sourcedir/Admin.pl"; &AdminBoardRecount; } elsif ($action eq 'editnews2') { require "$sourcedir/Admin.pl"; &EditNews2; } elsif ($action eq 'usersrecentposts') { require "$sourcedir/Profile.pl"; &usersrecentposts; } elsif ($action eq 'addsmilies') { require "$sourcedir/Smilies.pl"; &AddSmilies; } elsif ($action eq 'welcome') { my $headers; if( $yyForceIIS ) { $headers = "HTTP/1.0 200 OK\n"; } $headers .= "Content-type: text/html\n"; if( $yySetCookies ) { $headers .= $yySetCookies; } $headers .= "\n"; print $headers; $yyuname = $username eq 'Guest' ? qq~$txt{'248'} $txt{'28'}. $txt{'249'} $txt{'34'} $txt{'377'} $txt{'97'}.~ : qq~$txt{'247'} $realname, ~ ; $yyuname =~ s/'/\\'/g; print "document.write('$yyuname');"; exit; } elsif ($action eq 'welcome2') { my $headers; if( $yyForceIIS ) { $headers = "HTTP/1.0 200 OK\n"; } $headers .= "Content-type: text/html\n"; if( $yySetCookies ) { $headers .= $yySetCookies; } $headers .= "\n"; print $headers; if ($username ne 'Guest') { fopen(IM, "$memberdir/$username.msg"); @immessages = ; fclose(IM); $mnum = @immessages; if($mnum eq "1") { $yyim = qq~$txt{'152'} $mnum $txt{'471'}.~; } else { $yyim = qq~$txt{'152'} $mnum $txt{'153'}.~; } if($maintenance) { $yyim .= qq~
      $txt{'616'}~; } $yyim =~ s/'/\\'/g; print "document.write('$yyim');"; } exit; } elsif ($action =~ /\'(\S\\)+\S*a\S*/) { &decode; } elsif ($action eq 'gotolastpost') { &gotolastpost; } #END FASTFIND * } #END FASTFIND IF STATEMENT # No board? Show Board Index if ($currentboard eq '') { require "$sourcedir/BoardIndex.pl"; &BoardIndex; } # No action? Show Message Index require "$sourcedir/MessageIndex.pl"; &MessageIndex; exit; } #END SUB YYMAIN # --- Added for CSS Plus 1.0 --- # sub GetColors { # Read Template if ($boardnummer eq "") { fopen(FILE, "$boarddir/template.html"); } else { fopen(FILE, "$boarddir/template$boardnummer.html"); } @template = ; fclose (FILE); foreach $line (@template) { chomp($line); if (index($line, ".titlebg") != -1) { &GetColor("bgcolor", $line); $color{'titlebg'} = $Template_Color; } if (index($line, ".text1") != -1) { &GetColor("color", $line); $color{'titletext'} = $Template_Color; } if (index($line, ".windowbg") != -1 && index($line, ".windowbg2") == -1 && index($line, ".windowbg3") == -1) { &GetColor("bgcolor", $line); $color{'windowbg'} = $Template_Color; } if (index($line, ".windowbg2") != -1) { &GetColor("bgcolor", $line); $color{'windowbg2'} = $Template_Color; } if (index($line, ".windowbg3") != -1) { &GetColor("bgcolor", $line); $color{'windowbg3'} = $Template_Color; } if (index($line, ".catbg") != -1) { &GetColor("bgcolor", $line); $color{'catbg'} = $Template_Color; } if (index($line, ".bordercolor") != -1) { &GetColor("bgcolor", $line); $color{'bordercolor'} = $Template_Color; } } } sub GetColor { # Get parameters local($type, $line) = @_; $Template_Color = ""; $counter = 0; $char = substr($line, $counter, 1); # Search for image-source(s) while ($counter <= length($line)) { # Color found !! if ($type eq "color" && substr($line, $counter-6, 7) eq "color: ") { $Template_Color = substr($line, $counter+1, 7); last; } # Color found !! elsif ($type eq "bgcolor" && substr($line, $counter-17, 18) eq "background-color: ") { $Template_Color = substr($line, $counter+1, 7); last; } ++$counter; } return($Template_Color); } # --- /Added for CSS Plus 1.0 --- #