############################################################################### # BoardIndex.pl # ############################################################################### # YaBB: Yet another Bulletin Board # # Open-Source Community Software for Webmasters # # Software Version: YaBB 1 Gold - SP1 # # Released: December 2001 # # =========================================================================== # # Software Distributed by: http://yabb.xnull.com # # Support, News, Updates at: http://yabb.xnull.com/community/ # # =========================================================================== # # Copyright (c) 2000-2002 Xnull (www.xnull.com) - All Rights Reserved. # # Software by: The YaBB Development Team # # with assistance from the YaBB community. # ############################################################################### $boardindexplver = "1 Gold - SP1"; sub BoardIndex { # Open the file with all categories fopen(FILE, "$vardir/cat.txt"); @categories = ; fclose(FILE); my($memcount, $latestmember) = &MembershipGet; $totalm = 0; $totalt = 0; foreach $curcat (@categories) { chomp $curcat; fopen(FILE, "$boardsdir/$curcat.cat"); $catname{$curcat} = ; chomp $catname{$curcat}; $cataccess{$curcat} = ; chomp $cataccess{$curcat}; @{$catboards{$curcat}} = ; fclose(FILE); @membergroups = split( /,/, $cataccess{$curcat} ); $openmemgr{$curcat} = 0; my($mscount); $mscount=0; foreach $tmpa (@membergroups) { if( $tmpa eq $settings[7]) { $openmemgr{$curcat} = 1; last; } while($MemStat[$mscount]) { if($settings[6] >= $MemPostNum[$mscount] && $MemPostNum[$mscount] ne "x") { $memberinfo = "$MemStat[$mscount]"; } ++$mscount; } if ( $memberinfo eq $tmpa ) { $openmemgr{$curcat} = 1; last; } } if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' ) { $openmemgr{$curcat} = 1; } unless($openmemgr{$curcat}) { next; } foreach $curboard (@{$catboards{$curcat}}) { chomp $curboard; ( $threadcount, $messagecount, $lastposttime, $lastposter ) = &BoardCountGet($curboard); $lastposttime{$curboard} = $lastposttime eq 'N/A' || ! $lastposttime ? $txt{'470'} : &timeformat($lastposttime); $lastpostrealtime{$curboard} = $lastposttime eq 'N/A' || ! $lastposttime ? '' : $lastposttime; if( $lastposter =~ m~\AGuest-(.*)~ ) { $lastposter = $1; $lastposterguest{$curboard} = 1; } $lastposter{$curboard} = $lastposter eq 'N/A' || ! $lastposter ? $txt{'470'} : $lastposter; $messagecount{$curboard} = $messagecount || 0; $threadcount{$curboard} = $threadcount || 0; $totalm += $messagecount; $totalt += $threadcount; } } $curforumurl = $curposlinks ? qq~$mbname~ : $mbname; $yymain .= qq~

$curforumurl~; if($shownewsfader == 1) { if(!$fadedelay) { $fadedelay = 5000; } $yymain .= qq~
$txt{'102'}
~; } $yymain .= qq~
~; foreach $curcat (@categories) { unless( $openmemgr{$curcat} ) { next; } #### if ($catpic{$curcat} =~ /\//i) {$catpic{$curcat} = qq~ ~;} elsif ($catpic{$curcat}) {$catpic{$curcat} = qq~ ~;} #### $yymain .= qq~~; foreach $curboard (@{$catboards{$curcat}}) { chomp $curboard; my $access = &AccessCheck($curboard, ''); if ($settings[7] ne "Administrator" && $access ne "granted" && $showprivboards{$curboard} ne "1") {next;} fopen(FILE, "$boardsdir/$curboard.dat"); $curboardname = ; chomp $curboardname; $curboarddescr = ; chomp $curboarddescr; $curboardmods = ; chomp $curboardmods; fclose(FILE); %moderators = (); foreach $curuser (split(/\|/, $curboardmods)) { &LoadUser($curuser); $moderators{$curuser} = $userprofile{$curuser}->[1]; } $showmods = ''; if(scalar keys %moderators == 1) { $showmods = qq~$txt{'298'}: ~; } elsif(scalar keys %moderators != 0) { $showmods = qq~$txt{'299'}: ~; } while($tmpa = each(%moderators)) { &FormatUserName($tmpa); $showmods .= qq~$moderators{$tmpa}, ~; } $showmods =~ s/, \Z//; if($showmods eq "") { $showmods = qq~$txt{'298'}: $txt{'470'}~; } $dlp = &getlog($curboard); if( $max_log_days_old && $lastposttime{$curboard} ne $txt{'470'} && $username ne 'Guest' && $dlp < stringtotime( $lastpostrealtime{$curboard} ) ) { $new = qq~$txt{'333'}~; } else { $new = qq~$txt{'334'}~; } $lastposter = $lastposter{$curboard}; unless( $lastposterguest{$curboard} || $lastposter{$curboard} eq $txt{'470'} ) { $lastposterid = $lastposter; &LoadUser($lastposterid); if($userprofile{$lastposter}->[1]) { $lastposter = qq~$userprofile{$lastposter}->[1]~; } } $lastposter ||= $txt{'470'}; $lastposttime ||= $txt{'470'}; #### $boardpic = ""; if (-e "$boardsdir/$curboard.mbo" ) { require "$boardsdir/$curboard.mbo"; } if ($boardpic{$curboard} =~ /\//i) {$boardpic{$curboard} = qq~ ~;} elsif ($boardpic{$curboard}) {$boardpic{$curboard} = qq~ ~;} my $cookiename = "$cookiepassword$curboard"; my $crypass = crypt($boardpw{$curboard},$pwseed); my $boardpwpic = ""; if ($settings[7] ne "Administrator" && $boardpw{$curboard} && $yyCookies{$cookiename} ne $crypass) {$boardpwpic = qq~~;} elsif ($boardpw{$curboard}) {$boardpwpic = qq~~;} #### $yymain .= qq~~; } } my $checkadded = 0; $guests = 0; $users = ''; $numusers = 0; fopen(FILE, "$vardir/log.txt"); @entries = ; fclose(FILE); foreach $curentry (@entries) { chomp $curentry; ($name, $value) = split(/\|/, $curentry); if($name) { if(!$yyUDLoaded{$musername}) { &LoadUser($name); } if(exists $userprofile{$name}) { $numusers++; &LoadUserDisplay($name, 1); $linkforuser = $link{$name}; $linkforuser =~ s~size="2"~size="1"~; $users .= qq~$linkforuser, \n~; } else { $guests++; } } } $users =~ s~, \n\Z~~; if($username ne 'Guest') { $ims = @immessages; $ims = qq~
$txt{'796'} $ims~; $yymain .= qq~
~; } $yymain .= qq~
$txt{'20'} $txt{'330'} $txt{'21'} $txt{'22'}
$catpic{$curcat}$catname{$curcat}
$new $boardpic{$curboard}$curboardname $boardpwpic
$curboarddescr
$showmods
$threadcount{$curboard} $messagecount{$curboard} $lastposttime{$curboard}
$txt{'525'} $lastposter
$txt{'333'} $txt{'333'}   $txt{'334'} $txt{'334'}   ~; if($showmarkread) { $yymain .= qq~$img{'markallread'}~; } $yymain .= qq~


~; $yymain .= qq~ ~; ## WHOSON MOD START ## if ( $guestaccess != 0 ) { $countonl = $numusers + $guests; } else { $countonl = $numusers; } if ( $guests == 1 ) { $uguest = qq~$guests $txt{'28'},~; } else { $uguest = qq~$guests $txt{'141'},~; } if ( $numusers == 1 ) { $uuser = qq~$numusers $who{'103'}~; } else { $uuser = qq~$numusers $txt{'142'}~; } open( FILE, "$vardir/mostuser.txt" ); @onlcount = ; close( FILE ); if ( $countonl > $onlcount[0] ) { fopen( FILE, ">$vardir/mostuser.txt" ); print FILE "$countonl\n"; print FILE "$date"; fclose( FILE ); } if ( $username ne 'Guest' ) { $onlcount[1] = &timeformat( $onlcount[1] ); if ( $onlopt == 1 ) { if ( $countonl == 1 ) { $uwhoonline .= qq~» $who{'99'} ($countonl) $who{'100a'} «
~; } else { $uwhoonline .= qq~» $who{'98'} ($countonl) $who{'100b'} «
~; } } if ( $Show_MostUsers == 1 ) { $uonline .= qq~
$mosttxt{'01'} $onlcount[1] $mosttxt{'02'} $onlcount[0] $mosttxt{'03'}~; } } ## WHOSON MOD END ## ########### Newcalendar mod start ####################### chomp $newcalgroup; @newcalgrouplist = split(",",$newcalgroup); $newcalgroupflag = 0; foreach $newcalgroupitem (@newcalgrouplist) { if ($settings[7] eq $newcalgroupitem) { $newcalgroupflag = 1; } } if ($newcalopen == 1 || $settings[7] eq 'Administrator' || $newcalgroupflag ==1 ) { if ($newcalmoon2 == 1) { require "$sourcedir/MoonPhase.pl"; #This is the moon phase calculator ( $MoonPhase, $MoonIllum, $MoonAge, $MoonDist, $MoonAng, $SunDist, $SunAng ) = phase(); my ($newphaselow) = 0.016666667; my ($newphasehigh) = 0.983333333; my ($phaseincrement) = 0.033333333; if ( ($MoonPhase < $newphaselow) || ($MoonPhase > $newphasehigh) ){ $moonpict = qq~~; } else { $gifnumber = 1; for ($phasescan = $newphaselow; $phasescan < $newphasehigh; $phasescan += $phaseincrement) { if ( ($MoonPhase > $phasescan) && ( $MoonPhase <= ($phasescan + $phaseincrement)) ){ if ($gifnumber < 10) { $moonpict = qq~~; } else { $moonpict = qq~~; } } $gifnumber++; } } } else { $moonpict = qq~~; } $yymain .=qq~
~; } ########### Newcalendar mod end ####################### $yymain .= qq~ ~; if ($Show_OnlineBar == 1 || $Show_OnlineBar eq "") { $yymain .= qq~ ~; ########### Newcalendar mod start ####################### chomp $newcalgroup; @newcalgrouplist = split(",",$newcalgroup); $newcalgroupflag = 0; foreach $newcalgroupitem (@newcalgrouplist) { if ($settings[7] eq $newcalgroupitem) { $newcalgroupflag = 1; } }if ($newcalopen == 1 || $settings[7] eq 'Administrator' || $newcalgroupflag ==1 ) { if ($newcalmoon2 == 1) { require "$sourcedir/MoonPhase.pl"; #This is the moon phase calculator ( $MoonPhase, $MoonIllum, $MoonAge, $MoonDist, $MoonAng, $SunDist, $SunAng ) = phase(); my ($newphaselow) = 0.016666667; my ($newphasehigh) = 0.983333333; my ($phaseincrement) = 0.033333333; if ( ($MoonPhase < $newphaselow) || ($MoonPhase > $newphasehigh) ){ $moonpict = qq~~; } else { $gifnumber = 1; for ($phasescan = $newphaselow; $phasescan < $newphasehigh; $phasescan += $phaseincrement) { if ( ($MoonPhase > $phasescan) && ( $MoonPhase <= ($phasescan + $phaseincrement)) ){ if ($gifnumber < 10) { $moonpict = qq~~; } else { $moonpict = qq~~; } } $gifnumber++; } } } else { $moonpict = qq~~; } $yymain .=qq~ ~;}########### Newcalendar mod end remove sqiggle####################### } ## WHOSON MOD END ## if($username eq 'Guest') { require "$sourcedir/LogInOut.pl"; $sharedLogin_title="$txt{'34'} ($txt{'315'})"; &sharedLogin; } $yymain .= qq~
$txt{'685'}
$txt{'200'}
$txt{'490'} $totalt   -   $txt{'489'} $totalm ~; if($Show_RecentBar) { require "$sourcedir/Recent.pl"; &LastPost; } $yymain .= qq~ $txt{'488'} $memcount ~; if ($showlatestmember) { &LoadUser($latestmember); $yymain .= qq~
$txt{'201'}: $userprofile{$latestmember}->[1]~; } open(FILE,"$vardir/usertoday.txt"); @utoday=; close(FILE); $usertodaycount = @utoday; $usertoday = ''; for($a=1;$a < $usertodaycount;$a++) { $utoday[$a] =~ s/\n//gi; $name = $utoday[$a]; if($useraccount{$name} eq ''){&LoadUser($name);} $usertoday .= qq~$userprofile{$name}->[1], ~; if($name eq $username){$Inserted = 'true';} } $usertodaycount = $usertodaycount-1; if($utoday[0] != $mday) { open(FILE,">$vardir/usertoday.txt"); print FILE "$mday\n"; if($username ne 'Guest') { print FILE "$username\n"; } fclose(FILE); } elsif($username ne 'Guest' && $Inserted ne 'true') { open(FILE,">>$vardir/usertoday.txt"); print FILE "$username\n"; fclose(FILE); } open(FILE,"$vardir/usertoday.txt"); @utoday=; close(FILE); $usertodaycount = @utoday; $usertoday = ''; for($a=1;$a < $usertodaycount;$a++) { $utoday[$a] =~ s/\n//gi; $name = $utoday[$a]; if($useraccount{$name} eq ''){&LoadUser($name);} $usertoday .= qq~$userprofile{$name}->[1], ~; if($name eq $username){$Inserted = 'true';} } $usertodaycount = $usertodaycount-1; if($utoday[0] != $mday) { open(FILE,">$vardir/usertoday.txt"); print FILE "$mday\n"; if($username ne 'Guest') { print FILE "$username\n"; } fclose(FILE); } elsif($username ne 'Guest' && $Inserted ne 'true') { open(FILE,">>$vardir/usertoday.txt"); print FILE "$username\n"; fclose(FILE); } $yymain .= qq~ $ims
$ecaltxt{'55'}
$moonpict
~; require "$sourcedir/Newcalendar.pl"; &IndexCal; $yymain .=qq~
$txt{'158'}
$uwhoonline$uguest $uuser
$users $uonline

$uttxt{'1'} $usertodaycount $uttxt{'2'} $usertoday

$ecaltxt{'55'}
$moonpict
~;require "$sourcedir/Newcalendar.pl";&IndexCal;$yymain .=qq~
~; $yytitle = "$txt{'18'}"; &template; exit; } sub MarkAllRead { fopen(FILE, "$vardir/cat.txt"); my @categories = ; fclose(FILE); my( $curcat, $curcatname, $curcataccess, @catboards, @membergroups, $openmemgr, $curboard ); foreach $curcat (@categories) { chomp $curcat; fopen(FILE, "$boardsdir/$curcat.cat"); $curcatname = ; $curcataccess = ; chomp $curcatname; chomp $curcataccess; @catboards = ; fclose(FILE); @membergroups = split( /,/, $curcataccess ); $openmemgr = 0; foreach (@membergroups) { if( $_ eq $settings[7]) { $openmemgr = 1; last; } } if(!$curcataccess || $settings[7] eq 'Administrator') { $openmemgr = 1; } unless( $openmemgr ) { next; } foreach $curboard (@catboards) { chomp $curboard; &modlog("$curboard--mark"); &modlog($curboard); } } &dumplog; &BoardIndex; } 1;