############################################################################### # Load.pl # ############################################################################### # YaBB: Yet another Bulletin Board # # Open-Source Community Software for Webmasters # # Version: YaBB 1 Gold - SP 1.3 # # Released: December 2001; Updated April 6, 2003 # # Distributed by: http://www.yabbforum.com # # =========================================================================== # # Copyright (c) 2000-2003 YaBB (www.yabbforum.com) - All Rights Reserved. # # Software by: The YaBB Development Team # # with assistance from the YaBB community. # # Sponsored by: Xnull Internet Media, Inc. - http://www.ximinc.com # ############################################################################### $loadplver = "1 Gold - SP 1.3"; sub LoadIMs { if ($maintenance && $settings[7] ne 'Administrator') {$username="Guest";} if($username ne "Guest" && $username ne '' && $action ne "logout") { 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(-e ("$datadir/$username.ymg") && $enable_buddylist) { fopen(FILE,"$datadir/$username.ymg"); @qmess = ; $qmessnr = @qmess; fclose(FILE); if($qmessnr > 0) { $yyim .= qq~ $budtxt{'09'} ~; } } if($maintenance && $settings[7] eq 'Administrator') { $yyim .= qq~
$txt{'616'}~; } if (!$user_ip && ($settings[7] eq 'Administrator' || $settings[7] eq 'Global Moderator')) { $yyim .= qq~
$txt{'773'}~; } } } sub LoadBoard { my $threadid = $INFO{'num'} || $INFO{'thread'} || $FORM{'threadid'}; if( $threadid =~ /\D/ ) { &fatal_error($txt{'337'}); } if($currentboard ne '') { unless( &BoardAccessGet($currentboard) ) { &fatal_error( $txt{'1'} ); } fopen(FILE, "$boardsdir/$currentboard.dat") || &fatal_error("400 $txt{'106'}: $txt{'23'} $currentboard.dat"); @yyBoardInfo =; fclose(FILE); chomp @yyBoardInfo; $boardname = $yyBoardInfo[0]; # Create Hash %moderators with all Moderators of the current board foreach(split(/\|/,$yyBoardInfo[2])) { fopen(MODERATOR, "$memberdir/$_.dat"); @modprop = ; fclose(MODERATOR); $modprop[1] =~ s/[\n\r]//g; $moderators{$_} = $modprop[1]; } if ($threadid ne '' && ! $FORM{'caller'} && $action ne 'imsend') { $yyThreadPosition = -1; my $found; fopen(BOARDFILE, "$boardsdir/$currentboard.txt") || &fatal_error("401 $txt{'106'}: $txt{'23'} $currentboard.txt"); while( $yyThreadLine = ) { ++$yyThreadPosition; if( $yyThreadLine =~ m~\A$threadid\|~o ) { $found = 1; last; } } fclose(BOARDFILE); unless( $found ) { &fatal_error("$txt{'472'} $threadid : $yyThreadPosition."); } chomp $yyThreadLine; } } elsif( $threadid ne '' && $action ne "imsend" ) { &fatal_error("$txt{'472'}"); } } sub LoadCensorList { fopen(FILE,"$vardir/censor.txt") || &fatal_error("205 $txt{'106'}: $txt{'23'} censor.txt"); while( chomp( $buffer = ) ) { ($tmpa,$tmpb) = split(/=/,$buffer); push(@censored,[$tmpa,$tmpb]); } fclose(FILE); } sub LoadUserSettings { if($username ne 'Guest') { if( fopen(FILE, "$memberdir/$username.dat") ) { @settings=; fclose(FILE); for( $_ = 0; $_ < @settings; $_++ ) { $settings[$_] =~ s~[\n\r]~~g; } $spass = crypt($settings[0],$pwseed); if($spass ne $password && $action ne 'logout') { $username = ''; } else { $realname = $settings[1]; $realemail = $settings[2]; } } else { $username = ''; } } unless($username) { $yySetCookies1 = cookie(-name => "$cookieusername", -value => "", -path => "/", -expires => "Thursday, 01-Jan-1970 00:00:00 GMT"); $yySetCookies2 = cookie(-name => "$cookiepassword", -value => "", -path => "/", -expires => "Thursday, 01-Jan-1970 00:00:00 GMT"); $username = 'Guest'; $password = ''; @settings = (); $realname = ''; $realemail = ''; $ENV{'HTTP_COOKIE'} = ''; } &FormatUserName($username); } sub FormatUserName { my $user = $_[0]; if( $useraccount{$user} ) { return; } $useraccount{$user} = $user; $useraccount{$user} =~ s~\%~%25~g; $useraccount{$user} =~ s~\#~%23~g; $useraccount{$user} =~ s~\+~%2B~g; $useraccount{$user} =~ s~\,~%2C~g; $useraccount{$user} =~ s~\-~%2D~g; $useraccount{$user} =~ s~\.~%2E~g; $useraccount{$user} =~ s~\@~%40~g; $useraccount{$user} =~ s~\^~%5E~g; } sub LoadUser { my $user = $_[0]; unless( exists $userprofile{$user} ) { fopen(FILEAUSER, "$memberdir/$user.dat") || return 0; @{$userprofile{$user}} = ; fclose(FILEAUSER); for( $_ = 0; $_ < @{$userprofile{$user}}; $_++ ) { chomp $userprofile{$user}->[$_]; } &FormatUserName($user); } return 1; } sub LoadUserDisplay { my $user= $_[0]; if(exists $userprofile{$user}) { if($yyUDLoaded{$user}) { return 1; } } else { &LoadUser($user); unless(exists $userprofile{$user}) { return 0 ; } } &LoadCensorList; # Load censor list $userpic_tmpwidth ||= $userpic_width ? qq~ width="$userpic_width"~ : ''; $userpic_tmpheight ||= $userpic_height ? qq~ height="$userpic_height"~ : ''; if($userprofile{$user}->[4] !~ m~\Ahttp://~) { $userprofile{$user}->[4] = "http://$userprofile{$user}->[4]"; } if($sm) { $userprofile{$user}->[4] = $userprofile{$user}->[4] && $userprofile{$user}->[4] ne q~http://~ ? qq~ $img{'website_sm'}$menusep~ : ''; } else { $userprofile{$user}->[4] = $userprofile{$user}->[4] && $userprofile{$user}->[4] ne q~http://~ ? qq~$img{'website'}$menusep~ : ''; } $userprofile{$user}->[5] =~ s~\&\&~
~g; $userprofile{$user}->[5] = $userprofile{$user}->[5] ? qq~
$userprofile{$user}->[5]~ : ''; # do some ubbc on the signature $message = $userprofile{$user}->[5]; $displayname = $userprofile{$user}->[1]; if($enable_ubbc) { if(!$yyYaBBCloaded) { require "$sourcedir/YaBBC.pl"; } &DoUBBC; } $userprofile{$user}->[5] = $message; if($userprofile{$user}->[8] ne "" && $userprofile{$user}->[8] !~ m~\D~) { $icqad{$user} = qq~$userprofile{$user}->[8]~; $userprofile{$user}->[8] = qq~$userprofile{$user}->[8]~; } else { $icqad{$user} = ''; $userprofile{$user}->[8] = ''; } $userprofile{$user}->[9] = $userprofile{$user}->[9] ? qq~$userprofile{$user}->[9]~ : ''; if($userprofile{$user}->[10] ne "") { $yimon{$user} = qq~~; $userprofile{$user}->[10] = $userprofile{$user}->[10] ? qq~$userprofile{$user}->[10]~ : ''; } if($showgenderimage && $userprofile{$user}->[11]) { $userprofile{$user}->[11] = $userprofile{$user}->[11] =~ m~Female~i ? 'female' : 'male'; $userprofile{$user}->[11] = $userprofile{$user}->[11] ? qq~$txt{'231'}: $userprofile{$user}->[11]
~ : ''; } else { $userprofile{$user}->[11] = ''; } $userprofile{$user}->[12] = $showusertext ? qq~$userprofile{$user}->[12]
~ : ''; if($showuserpic && $allowpics) { $userprofile{$user}->[13] ||= 'blank.gif'; $userprofile{$user}->[13] = $userprofile{$user}->[13] =~ m~\A[\s\n]*http://~i ? qq~


~ : qq~

~; } else { $userprofile{$user}->[13] = '
'; } ### Censor it ### foreach (@censored) { ($tmpa,$tmpb) = @{$_}; $userprofile{$user}->[5] =~ s~\Q$tmpa\E~$tmpb~gi; $userprofile{$user}->[12] =~ s~\Q$tmpa\E~$tmpb~gi; } if( $userprofile{$user}->[7] eq 'Administrator' && $hideadmin != 1) { if ($MemTypeAdmin == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemTypeAdmin == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStatAdmin"; $starnum = "0"; if ($MemStarNumAdmin eq "") { $MemStarNumAdmin = "0"; } $memberstartemp =''; while($MemStarNumAdmin ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } elsif ( $userprofile{$user}->[7] eq 'Global Moderator' && $hidegmod != 1) { if ($MemTypeGMod == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemTypeGMod == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStatGMod"; $starnum = "0"; if ($MemStarNumGMod eq "") { $MemStarNumGMod = "0"; } $memberstartemp =''; while($MemStarNumGMod ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } else { if ($MemStarNumNewbie eq "") { $MemStarNumNewbie = "0"; } $starnum = "0"; if( $userprofile{$user}->[6] >= $MemPostNewbie) { if ($MemTypeNewbie == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemTypeNewbie == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStatNewbie"; $memberstartemp =''; while($MemStarNumNewbie ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; $msstatcount = "0"; $starnum = "0"; while($MemStat[$msstatcount]) { if( $userprofile{$user}->[6] >= $MemPostNum[$msstatcount] && $MemPostNum[$msstatcount] ne "x") { if ($MemType[$msstatcount] == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemType[$msstatcount] == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStat[$msstatcount]"; if ($MemStarNum[$msstatcount] eq "") { $MemStarNum[$msstatcount] = "0"; } $memberstartemp =''; while($MemStarNum[$msstatcount] ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } ++$msstatcount; } } if( exists $moderators{$user} && $sender ne "im" && $hidemod != 1) { if ($MemTypeMod == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemTypeMod == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $modinfo{$user} = "$MemStatMod"; $starnum = "0"; if ($MemStarNumMod eq "") { $MemStarNumMod = "0"; } $memberstartemp =''; while($MemStarNumMod ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } if ($disprealinfo == 1) { if( $userprofile{$user}->[7] && $userprofile{$user}->[7] ne 'Administrator' && $userprofile{$user}->[7] ne 'Global Moderator') { $memberinfo{$user} = "$userprofile{$user}->[7]
$memberinfo{$user}"; if ($modinfo{$user}) { $memberinfo{$user} = "$modinfo{$user}
$memberinfo{$user}" } } } else { if( $userprofile{$user}->[7] && $userprofile{$user}->[7] ne 'Administrator' && $userprofile{$user}->[7] ne 'Global Moderator'&& !$modinfo{$user}) { $msstatcount = "0"; $starnum = "0"; while($MemStat[$msstatcount] && $MemStat[$msstatcount] ne "$userprofile{$user}->[7]") { $msstatcount++; } if($MemStat[$msstatcount] eq "$userprofile{$user}->[7]") { if ($MemType[$msstatcount] == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemType[$msstatcount] == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStat[$msstatcount]"; if ($MemStarNum[$msstatcount] eq "") { $MemStarNum[$msstatcount] = "0"; } $memberstartemp =''; while($MemStarNum[$msstatcount] ne "$starnum") { $memberstartemp .= qq(*); $starnum++; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } } if ($modinfo{$user}) { $memberinfo{$user} = "$modinfo{$user}
$memberinfo{$user}"; } } } if($userprofile{$user}->[6] > 100000) { $userprofile{$user}->[6] = "$txt{'683'}"; } $yyUDLoaded{$user} = 1; return 1; } sub LoadCookie { foreach (split(/; /,$ENV{'HTTP_COOKIE'})) { $_ =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; ($cookie,$value) = split(/=/); $yyCookies{$cookie} = $value; } if($yyCookies{$cookiepassword}) { $password = $yyCookies{$cookiepassword}; $username = $yyCookies{$cookieusername} || 'Guest'; } else { $password = ''; $username = 'Guest'; } } sub LoadAdmins { &is_admin; my (@members, $curentry); $administrators = ''; fopen(FILE, "$memberdir/memberlist.txt"); @members = ; fclose(FILE); foreach $curentry (@members) { chomp $curentry; &LoadUser($curentry); if($userprofile{$curentry}->[7] eq 'Administrator') { $administrators .= qq~ $userprofile{$curentry}->[1], \n~; } } $administrators =~ s~, \n\Z~~; } sub LoadGMods { &is_admin_or_gmod; my (@members, $curentry); $gmoderators = ''; fopen(FILE, "$memberdir/memberlist.txt"); @members = ; fclose(FILE); foreach $curentry (@members) { chomp $curentry; &LoadUser($curentry); if($userprofile{$curentry}->[7] eq 'Global Moderator') { $gmoderators .= qq~ $userprofile{$curentry}->[1], \n~; } } $gmoderators =~ s~, \n\Z~~; } sub LoadLogCount { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $showgmod_info != 1 ) { &fatal_error("$txt{'1'}"); } my(@log); fopen(LOG, "$vardir/clicklog.txt"); @log = ; fclose(LOG); $yyclicks = @log; } sub loadfiles { require "$boarddir/$language"; require "$sourcedir/AdminEdit.pl"; require "$sourcedir/BoardIndex.pl"; require "$sourcedir/Display.pl"; require "$sourcedir/ICQPager.pl"; require "$sourcedir/InstantMessage.pl"; require "$sourcedir/LockThread.pl"; require "$sourcedir/LogInOut.pl"; require "$sourcedir/Maintenance.pl"; require "$sourcedir/ManageBoards.pl"; require "$sourcedir/ManageCats.pl"; require "$sourcedir/Memberlist.pl"; require "$sourcedir/MessageIndex.pl"; require "$sourcedir/ModifyMessage.pl"; require "$sourcedir/MoveThread.pl"; require "$sourcedir/Notify.pl"; require "$sourcedir/Post.pl"; require "$sourcedir/Printpage.pl"; require "$sourcedir/Profile.pl"; require "$sourcedir/Recent.pl"; require "$sourcedir/Register.pl"; require "$sourcedir/RemoveOldThreads.pl"; require "$sourcedir/RemoveThread.pl"; require "$sourcedir/Search.pl"; require "$sourcedir/Security.pl"; require "$sourcedir/SendTopic.pl"; require "$sourcedir/YaBBC.pl"; } 1;