############################################################################### # ManageCats.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. # ############################################################################### $managecatsplver = "1 Gold - SP1"; sub ManageCats { &is_admin; my $selected = ""; fopen(FILE, "$vardir/cat.txt"); @categories = ; fclose(FILE); # create a list of categories for reorder $catlist=""; foreach $curcat (@categories) { $curcat =~ s/[\n\r]//g; $catlist="$catlist\n$curcat"; } # create membergroups dropdown my $mgroups = qq~~; $yymain .= qq~ ~; foreach $curcat (@categories) { $curcat =~ s~[\n\r]~~g; chomp $curcat; fopen(CAT, "$boardsdir/$curcat.cat"); @catinfo = ; fclose(CAT); $curcatname = $catinfo[0]; chomp $curcatname; (@curcatgroups) = split(/\,/, $catinfo[1]); $mgroups = qq~~; $yymain .= qq~ ~; } $yymain .= qq~
$txt{'52'}
$txt{'54'}

$txt{'738'}



$txt{'56'}
$txt{'43'}:
$txt{'671'}
$txt{'44'}:
$txt{'672'}
$txt{'57'}:
$txt{'673'}
$mgroups

$txt{'43'}: $curcat
$txt{'44'}:
$txt{'57'}:
$mgroups
 
~; $yytitle = "$txt{'52'}"; &template; exit; } sub ReorderCats { &is_admin; $FORM{'cats'} =~ s/\r//g; $cats = $FORM{'cats'}; (@cats) = split(/\n/, $cats); $thecats = ""; foreach $ccat (@cats) { $ccat =~ s/[\n\r]//g; if(-e("$boardsdir/$ccat.cat") && $ccat !~ /\A\n*\Z/) { $thecats .= "$ccat\n"; } } $thecats =~ s/\A\n*\r*\Z//g; fopen(FILE, ">$vardir/cat.txt", 1); print FILE "$thecats"; fclose(FILE); $yySetLocation = qq~$cgi;action=managecats~; &redirectexit; } sub CreateCat { &is_admin; $catid = $FORM{'catid'}; &fatal_error("$txt{'240'} $txt{'43'} $txt{'241'}") if($catid !~ /\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; &fatal_error("$txt{'676'} '$catid' $txt{'675'}") if ($catid eq "$curcat"); } fopen(FILE, "$vardir/cat.txt"); @categories = ; fclose(FILE); fopen(FILE, ">$vardir/cat.txt", 1); foreach $curcat (@categories) { $curcat =~ s/[\n\r]//g; print FILE "$curcat\n"; } $catid =~ s/ /_/g; $FORM{'memgroup'} =~ s~\A\s?,\s?~~; $FORM{'memgroup'} =~ s~,\s~,~g; print FILE "$catid"; fclose(FILE); fopen(FILE, ">$boardsdir/$catid.cat"); print FILE "$FORM{'catname'}\n"; print FILE "$FORM{'memgroup'}\n"; fclose(FILE); $yySetLocation = qq~$cgi;action=managecats~; &redirectexit; } sub ConfRemCat { $yymain .= qq~
$txt{'31'} - '$FORM{'catname'}'?
$txt{'736'}
$txt{'163'} - $txt{'164'}
~; $yytitle = "$txt{'31'} - '$FORM{'catname'}'?"; &template; exit; } sub ModifyCat { &is_admin; if($FORM{'moda'} eq "$txt{'17'}") { fopen(FILE, "$boardsdir/$FORM{'id'}.cat"); @catinfo = ; fclose(FILE); fopen(FILE, ">$boardsdir/$FORM{'id'}.cat", 1); $FORM{'catgroups'} =~ s~\A\s?,\s?~~; $FORM{'catgroups'} =~ s~,\s~,~g; print FILE "$FORM{'catname'}\n"; print FILE "$FORM{'catgroups'}\n"; for ($i = 2; $i < @catinfo; $i++) { chomp @catinfo; $catinfo =~ s/[\n\r]//g; print FILE "$catinfo[$i]\n"; } fclose(FILE); $yySetLocation = qq~$cgi;action=managecats~; &redirectexit; } else { if($FORM{'moda'} eq "$txt{'31'}") { &ConfRemCat; } else { fopen(FILE, "$vardir/cat.txt"); @categories = ; fclose(FILE); $newcatlist=""; foreach $curcat (@categories) { $curcat =~ s/[\n\r]//g; if($curcat ne "$INFO{'id'}") { $newcatlist="$newcatlist$curcat\n"; } } fopen(FILE, ">$vardir/cat.txt", 1); print FILE "$newcatlist"; fclose(FILE); $curcat = "$INFO{'id'}"; fopen(CAT, "$boardsdir/$curcat.cat") || &fatal_error("$txt{'23'} $curcat.cat"); @catinfo = ; fclose(CAT); $curcatname="$catinfo[0]"; foreach $curboard (@catinfo) { $curboard =~ s/[\n\r]//g; if($curboard ne "$catinfo[0]") { 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"); $yymain .= "$txt{'49'} $id
"; &Sticky_remove($id); } } unlink("$boardsdir/$curboard.txt"); unlink("$boardsdir/$curboard.mail"); unlink("$boardsdir/$curboard.dat"); unlink("$boardsdir/$curboard.ctb"); unlink("$boardsdir/$curboard.poster"); unlink("$boardsdir/$curboard.ttl"); $yymain .= "$txt{'50'}
"; } unlink("$boardsdir/$curcat.cat"); $yymain .= "$txt{'61'}
"; $yymain .= "$txt{'51'}"; $yytitle = "$txt{'60'}"; &template; exit; } } } 1;