############################################################################### # Load.pl # ############################################################################### # YaBB: Yet another Bulletin Board # # Open-Source Project started by Zef Hemel (zef@zefnet.com) # # Software Version: YaBB 1 Gold - Release # # =========================================================================== # # Software Distributed by: http://yabb.xnull.com # # Support, News, Updates at: http://yabb.xnull.com/community/ # # =========================================================================== # # Copyright (c) 2000-2001 X-Null - All Rights Reserved # # Software by: The YaBB Development Team # ############################################################################### $loadplver="1 Gold - Release"; 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]; } 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 '' ) { $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 ) { $yySetCookies = qq~Set-Cookie: $cookieusername=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT;\n~; $yySetCookies .= qq~Set-Cookie: $cookiepassword=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT;\n~; $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 ; } } ### Load censor list ### &LoadCensorList; $userpic_tmpwidth ||= $userpic_width ? qq~ width="$userpic_width"~ : ''; $userpic_tmpheight ||= $userpic_height ? qq~ height="$userpic_height"~ : ''; if($sm == 1) { $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) { &DoUBBC; } $userprofile{$user}->[5] = $message; if( $userprofile{$user}->[8] && $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] ) { $yimon{$user} = qq~$userprofile{$user}->[10]~; $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] && $userprofile{$user}->[7] ne 'Administrator') { $groupinfo{$user} = "$userprofile{$user}->[7]
"; } if( $userprofile{$user}->[7] ne 'Administrator') { $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; 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 LoadLogCount { &is_admin; my(@log); fopen(LOG, "$vardir/clicklog.txt"); @log = ; fclose(LOG); $yyclicks = @log; } sub loadfiles { require "$boarddir/$language"; require "$sourcedir/Admin.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/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/Subs.pl"; } 1;