############################################################################### # ManageBoards.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. # ############################################################################### $manageboardsplver = "1 Gold - SP1"; # --- Added for Notify Plus 2.2 --- # require "$sourcedir/NotifyPlus.pl"; # --- /Added for Notify Plus 2.2 --- # sub ManageBoards { &is_admin; fopen(FILE, "$vardir/cat.txt"); @categories = ; fclose(FILE); $yymain .= qq~ ~; foreach $curcat (@categories) { $curcat =~ s/[\n\r]//g; fopen(CAT, "$boardsdir/$curcat.cat"); @catinfo = ; fclose(CAT); $curcatname = $catinfo[0]; $yymain .= qq~ ~; $curboardnum=0; foreach $curboard (@catinfo) { if($curboardnum > 1) { $curboard =~ s/[\n\r]//g; chomp $curboard; fopen(BOARD, "$boardsdir/$curboard.dat"); @boardinfo = ; fclose(BOARD); $curboardname = $boardinfo[0]; chomp $curboardname; $descr = $boardinfo[1]; fopen(BOARDDATA, "$boardsdir/$curboard.txt"); @messages = ; fclose(BOARDDATA); ($dummy, $dummy, $dummy, $dummy, $dummy, $lp) = split(/\|/, $messages[0]); $boardinfo[2] =~ s/[\n\r]//g; $boardinfo[2] =~ /^\|(.*?)\|$/; $multimoderators = $1 or $multimoderators = $boardinfo[2]; $multimoderators =~ s/\|(\S?)/,$1/g; my ( $sort1, $sort2, $sort3, $sort4, $sort5, $sort6, $sort7, $sort8 )= (); my ( $mask1, $mask2, $mask3, $mask4, $mask5, $mask6, $mask7 )= (); if ( -e("$boardsdir/$curboard.opt") ) { require "$boardsdir/$curboard.opt"; if ($default_sort eq "subject") { $sort2 = " selected"; } elsif ($default_sort eq "created") { $sort3 = " selected"; } elsif ($default_sort eq "author") { $sort4 = " selected"; } elsif ($default_sort eq "last") { $sort5 = " selected"; } elsif ($default_sort eq "replies") { $sort6 = " selected"; } elsif ($default_sort eq "views") { $sort7 = " selected"; } elsif ($default_sort eq "rating") { $sort8 = " selected"; } else { $sort1 = " selected" } if ($default_mask eq "today") { $mask1 = " selected"; } elsif ($default_mask eq "2") { $mask2 = " selected"; } elsif ($default_mask eq "5") { $mask3 = " selected"; } elsif ($default_mask eq "10") { $mask4 = " selected"; } elsif ($default_mask eq "20") { $mask5 = " selected"; } elsif ($default_mask eq "30") { $mask6 = " selected"; } else { $mask7 = " selected"; } } else { $mask7 = " selected";} $moderator = "$modprop[1]"; $yymain .= qq~ ~; } $curboardnum++; } $yymain .= qq~ ~; } $yymain .= "
$txt{'41'}

$txt{'677'}

$txt{'20'} / $txt{'782'} $txt{'12'} $txt{'42'}
$curcatname ($txt{'643'})

$sorttxt{'2'}:    $sorttxt{'3'}: 
$txt{'43'}: $txt{'44'}:
$txt{'782'}:
$txt{'299'}:
$sorttxt{'2'}:    $sorttxt{'3'}: 
"; $yytitle = "$txt{'41'}"; &template; exit; } sub ReorderBoards { &is_admin; fopen(FILE, "$boardsdir/$INFO{'cat'}.cat"); @allboards = ; fclose(FILE); $boardlist=""; $firstline=$allboards[0]; $secondline=$allboards[1]; $allboards[0]="#EMPTYCATNAME#"; $allboards[1]="#EMPTYGROUPS#"; foreach $cboard (@allboards) { $cboard =~ s/[\n\r]//g; if($cboard ne "$allboards[0]" && $cboard ne "$allboards[1]") { $boardlist="$boardlist\n$cboard"; } } $yymain .= qq~
$txt{'46'}
$txt{'47'}:

~; $yytitle = "$txt{'46'}"; &template; exit; } sub ReorderBoards2 { &is_admin; $FORM{'boards'} =~ s/\r//g; $boards = $FORM{'boards'}; (@boards) = split(/\n/, $boards); $FORM{'firstline'} =~ s/\n//g; $FORM{'secondline'} =~ s/\n//g; $theboards = ""; foreach $cboard (@boards) { $cboard =~ s/[\n\r]//g; if(-e("$boardsdir/$cboard.dat") && $cboard !~ /\A\n*\Z/) { $theboards .= "$cboard\n"; } } $theboards =~ s/\A\n*\r*\Z//g; fopen(FILE, ">$boardsdir/$FORM{'cat'}.cat"); print FILE "$FORM{'firstline'}\n"; print FILE "$FORM{'secondline'}\n"; print FILE "$theboards"; fclose(FILE); &BoardCatsMake; $yySetLocation = qq~$cgi;action=reorderboards;cat=$FORM{'cat'}~; &redirectexit; } sub ConfRemBoard { $yymain .= qq~
$txt{'31'} - '$FORM{'boardname'}'?
$txt{'617'}
$txt{'163'} - $txt{'164'}
~; $yytitle = "$txt{'31'} - '$FORM{'boardname'}'?"; &template; exit; } sub ModifyBoard { &is_admin; if($FORM{'moda'} eq "$txt{'17'}") { fopen(FILE, ">$boardsdir/$FORM{'id'}.dat", 1); $FORM{'descr'} =~ s/\n/ /g; $FORM{'descr'} =~ s/\r//g; $FORM{'moderator'} =~ s/\s*,\s*/|/g; print FILE "$FORM{'boardname'}\n"; print FILE "$FORM{'descr'}\n"; print FILE "$FORM{'moderator'}\n"; fclose(FILE); my $setfile = qq~# Board Options # Feel free to add other options here \$board_id = "$FORM{'id'}"; \$board_name = "$FORM{'boardname'}"; \$board_descr = "$FORM{'descr'}"; \$board_mods = "$FORM{'moderator'}"; \$default_sort = "$FORM{'default_sort'}"; \$default_mask = "$FORM{'default_mask'}"; 1; ~; fopen(FILE, ">$boardsdir/$FORM{'id'}.opt"); print FILE $setfile; fclose(FILE); $yySetLocation = qq~$cgi;action=manageboards~; &redirectexit; } else { if($FORM{'moda'} eq "$txt{'31'}") { &ConfRemBoard; } else { fopen(FILE, "$boardsdir/$INFO{'cat'}.cat"); @categories = ; fclose(FILE); $newcatlist="@categories[0]\n@categories[1]"; @categories[0]="#EMPTYCATNAME#"; @categories[1]="#EMPTYGROUPS#"; foreach $curboard (@categories) { $curboard =~ s/\n//g; if($curboard ne "$INFO{'id'}" && $curboard ne @categories[0] && $curboard ne @categories[1]) { $newcatlist.="$curboard\n"; } } fopen(FILE, ">$boardsdir/$INFO{'cat'}.cat", 1); print FILE "$newcatlist"; fclose(FILE); $curboard="$INFO{'id'}"; fopen(BOARDDATA, "$boardsdir/$curboard.txt"); @messages = ; fclose(BOARDDATA); foreach $curmessage (@messages) { ($id, $dummy) = split(/\|/, $curmessage); unlink("$datadir/$id\.txt"); unlink("$datadir/$id\.mail"); unlink("$datadir/$id\.data"); unlink("$datadir/$id\.poll"); unlink("$datadir/$id\.polled"); unlink("$datadir/$id\.polll"); $yymain .= "$txt{'49'} $id
"; &Sticky_remove($id); # --- Added for Notify Plus 2.2 --- # &RemoveThread_Mailinglist($id); # --- /Added for Notify Plus 2.2 --- # } unlink("$boardsdir/$curboard.dat"); unlink("$boardsdir/$curboard.opt"); unlink("$boardsdir/$curboard.txt"); unlink("$boardsdir/$curboard.ttl"); unlink("$boardsdir/$curboard.ctb"); unlink("$boardsdir/$curboard.poster"); fopen(AMV, "$vardir/attachments.txt"); my @attachments = ; fclose(AMV); fopen(AMV, ">$vardir/attachments.txt"); foreach $row(@attachments) { chomp $row; my ($amthreadid, $amreplies, $amthreadsub, $amposter, $amcurrentboard, $amkb, $amdate, $amfn) = split(/\|/,$row); if($amcurrentboard ne $curboard) { print AMV qq~$amthreadid|$amreplies|$amthreadsub|$amposter|$amcurrentboard|$amkb|$amdate|$amfn\n~; } else { if (-e("$upload_dir/$amfn")) { unlink("$upload_dir/$amfn"); } } } fclose(AMV); # --- Added for Notify Plus 2.2 --- # &RemoveBoard_Mailinglist($curboard); # --- /Added for Notify Plus 2.2 --- # $yymain .= "$txt{'50'}
"; $yymain .= "$txt{'51'}"; $yymain .= "id $INFO{'id'} - moda $INFO{'moda'} - cat $INFO{'cat'}"; $yytitle = "$txt{'48'}"; &template; } } &BoardCatsMake; exit; } sub CreateBoard { &is_admin; $id = $FORM{'id'}; &fatal_error("$txt{'240'} $txt{'43'} $txt{'241'}") if($id !~ /\A[0-9A-Za-z#%+-\.@^_]+\Z/); # make sure no board already exists with that id fopen(FILE, "$vardir/cat.txt"); @categories = ; fclose(FILE); foreach $curcat (@categories) { $curcat =~ s/[\n\r]//g; fopen(CAT, "$boardsdir/$curcat.cat"); @boards = ; fclose(CAT); foreach $curboard (@boards) { $curboard =~ s/[\n\r]//g; if($curboard ne "$boards[0]" && $curboard ne "$boards[1]") { &fatal_error("$txt{'674'} '$id' $txt{'675'}") if ($id eq "$curboard"); } } } fopen(FILE, "$boardsdir/$FORM{'cat'}.cat"); @categories = ; fclose(FILE); fopen(FILE, ">$boardsdir/$FORM{'cat'}.cat", 1); foreach $curboard (@categories) { $curboard =~ s/[\n\r]//g; print FILE "$curboard\n"; } $id =~ s/ /_/g; print FILE "$id"; fclose(FILE); fopen(FILE, ">$boardsdir/$id.dat"); $FORM{'descr'} =~ s/\n/ /g; $FORM{'descr'} =~ s/\r//g; $FORM{'moderator'} =~ s/\s*,\s*/|/g; print FILE "$FORM{'boardname'}\n"; print FILE "$FORM{'descr'}\n"; print FILE "$FORM{'moderator'}\n"; fclose(FILE); my $setfile = qq~# Board Options # Feel free to add other options here \$board_id = "$id"; \$board_name = "$FORM{'boardname'}"; \$board_descr = "$FORM{'descr'}"; \$board_mods = "$FORM{'moderator'}"; \$default_sort = "$FORM{'default_sort'}"; \$default_mask = "$FORM{'default_mask'}"; 1; ~; fopen(FILE, ">$boardsdir/$id.opt"); print FILE $setfile; fclose(FILE); fopen(FILE, ">$boardsdir/$id.txt"); print FILE ''; fclose(FILE); &BoardCatsMake; $yySetLocation = qq~$cgi;action=manageboards~; &redirectexit; } 1;