############################################################################### # Load.pl # ############################################################################### # YaBB: Yet another Bulletin Board # # Open-Source Community Software for Webmasters # # Version: YaBB 1 Gold - SP 1.1 # # Released: December 2001; Updated March 22, 2002 # # Distributed by: http://www.yabbforum.com # # =========================================================================== # # Copyright (c) 2000-2002 Xnull (www.xnull.com) - All Rights Reserved. # # Software by: The YaBB Development Team # # with assistance from the YaBB community. # ############################################################################### $loadplver = "1 Gold - SP 1.1"; sub LoadIMs { if ($maintenance && $settings[7] ne 'Administrator') {$username="Guest";} if($username ne "Guest" && $username ne '' && $action ne "logout") { open(IM, "$memberdir/$username.msg"); @immessages = ; close(IM); open(OM, "$memberdir/$username.outbox"); @outmessages = ; close(OM); open(SM, "$memberdir/$username.imstore"); @storemessages = ; close(SM); $moutnum=@outmessages; $storenum=@storemessages; foreach $curline (@immessages) { ($imusername, $imsub, $imdate, $mmessage, $imessageid, $mip, $imnew) = split(/\|/,$curline); if($imnew == 1) { $imnewcount++; } } if($imnewcount eq "") { $imnewcount=0; } if($imnewcount == 1) { $imnewtext = qq~$imtxt{'16'}.~; } else { $imnewtext = qq~$imtxt{'17'}.~; } if($enable_mailsounds == 1) { if($imnewcount > 0 && $action eq "" && $INFO{'board'} eq "" || $imnewcount > 0 && $action eq "login2") { if(-e("$memberdir/$username.imconfig")) { open(FILE, "$memberdir/$username.imconfig"); @userimcfg = ; close(FILE); chomp($userimcfg[2]); chomp($userimcfg[5]); if($userimcfg[2] ne "blank.wav" && $userimcfg[2] ne "") { $imsound = qq~~; } } } } $mnum = @immessages; $minnum = @immessages; if($mnum eq "1") { $yyim = qq~$txt{'152'} $mnum $txt{'471'}, $imnewcount $imnewtext $imsound~; } else { $yyim = qq~$txt{'152'} $mnum $txt{'153'}, $imnewcount $imnewtext $imsound~;} if($maintenance && $settings[7] eq 'Administrator') { $yyim .= qq~
$txt{'616'}~; } if (!$user_ip && $settings[7] eq 'Administrator') { $yyim .= qq~
$txt{'773'}~; } } } sub LoadBoard { my $threadid = $INFO{'num'} || $INFO{'thread'} || $FORM{'threadid'}; 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]; } #### unless ($settings[7] eq "Administrator") { my $accesstype = ""; my $cookiename = "$cookiepassword$currentboard"; my $crypass = crypt($boardpw{$currentboard},$pwseed); if ($boardpw{$currentboard} && $yyCookies{$cookiename} ne $crypass && !$FORM{'boardpw'} ) { require "$sourcedir/MBCoptions.pl"; &askforboardpw("$currentboard"); } if ($action eq "post") { $accesstype = $INFO{'num'} ? 2 : 1; } my $access = &AccessCheck($currentboard, $accesstype); if ($access ne "granted"){ &fatal_error($txt{'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; } if($settings[0] 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]; 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}->[6] > $GodPostNum) { $memberinfo{$user} = "$membergroups[6]"; $memberstar{$user} = qq~*****~; } elsif($userprofile{$user}->[6] > $SrPostNum) { $memberinfo{$user} = "$membergroups[5]"; $memberstar{$user} = qq~****~; } elsif($userprofile{$user}->[6] > $FullPostNum) { $memberinfo{$user} = "$membergroups[4]"; $memberstar{$user} = qq~***~; } elsif($userprofile{$user}->[6] > $JrPostNum) { $memberinfo{$user} = "$membergroups[3]"; $memberstar{$user} = qq~**~; } else { $memberinfo{$user} = "$membergroups[2]"; $memberstar{$user} = qq~*~; } if(exists $moderators{$user} && $sender ne "im") { $modinfo{$user} = "$membergroups[1]
"; $memberstar{$user} = qq~*****~; } if($userprofile{$user}->[7] eq 'Administrator') { $memberstar{$user} = qq~*****~; $memberinfo{$user} = "$membergroups[0]"; if( $userprofile{$user}->[7] eq 'Global Moderator' ) { $memberstar{$user} = qq~*****~; $memberinfo{$user} = "$membergroups[7]"; } } if( ($userprofile{$user}->[7] && $userprofile{$user}->[7] ne 'Administrator') || ($userprofile{$user}->[7] && $userprofile{$user}->[7] ne 'Global Moderator') ) { $groupinfo{$user} = "$userprofile{$user}->[7]
"; } if($userprofile{$user}->[7] ne 'Administrator' && $userprofile{$user}->[7] ne 'Global Moderator') { $memberinfo{$user} = "$modinfo{$user}$groupinfo{$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_or_gmod; 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; 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;