############################################################################### # EditHelpCentre.pm # # $Date: 01 Sep 2026 $ # ############################################################################### # YaBB: Yet another Bulletin Board # # Open-Source Community Software for Webmasters # # Version: YaBBForum 3.2 # # Packaged: 01 Sep 2026 # # Distributed by: https://yabbforum.nz # # =========================================================================== # # Copyright (c) 2000-2026 YaBB (yabbforum.nz) - All Rights Reserved. # # Software by: The YaBB Development Team # # with assistance from the YaBB community. # ############################################################################### use CGI::Carp qw(fatalsToBrowser); our $VERSION = '3.2'; $edithelpcentrepmver = 'YaBBForum 3.2'; if ( $action eq 'detailedversion' ) { return 1; } LoadLanguage('HelpCentre'); $yytitle = $helptxt{'1'}; sub HelpEdit { $page = $FORM{'page'}; $help_area = $INFO{'area'}; if ( $page eq 'user00_agreement' ) { $yySetLocation = qq~$adminurl?action=modagreement;agreementlanguage=$language;destination=helpadmin~; redirectexit(); } require "$helpfile/$language/$help_area/$page.help"; $SectionName =~ s/_/ /gsm; $admin_list = qq~ : ~; $aa = 1; while ( ${ SectionSub . $aa } ) { ${ SectionSub . $aa } =~ s/_/ /gsm; my $hmessage; $hmessage = ${ SectionBody . $aa }; $admin_list .= qq~ : ~; $aa++; } $yymain .= qq~
$admin_img{'prefimg'} $helptxt{'7'}
$admin_list
$admin_img{'prefimg'} $admin_txt{'10'}
~; $yytitle = "$helptxt{'7'}"; $action_area = 'helpadmin'; AdminTemplate(); return; } sub HelpEdit2 { $Area = $FORM{'area'}; $Page = $FORM{'page'}; fopen(HELPORDER, ">$helpfile/$language/$Area/$Page.help"); $FORM{'SectionName'} =~ s/ /_/gsm; print HELPORDER qq~\$SectionName = "$FORM{'SectionName'}";\n\n~; $aa = 1; while ($FORM{"SectionBody$aa"}) { $FORM{"SectionBody$aa"} =~ tr/\r//d; $FORM{"SectionBody$aa"} =~ s/\cM//gxsm; $FORM{"SectionBody$aa"} =~ s/\[([^\]]{0,30})\n([^\]]{0,30})\]/\[$1$2\]/gxsm; $FORM{"SectionBody$aa"} =~ s/\[\/([^\]]{0,30})\n([^\]]{0,30})\]/\[\/$1$2\]/gxsm; $FORM{"SectionBody$aa"} =~ s/(\w+:\/\/[^<>\s\n\"\]\[]+)\n([^<>\s\n\"\]\[]+)/$1\n$2/gxsm; $FORM{"SectionBody$aa"} =~ s/\t/ \  \  \ /gsm; $FORM{"SectionBody$aa"} =~ s/@/\\@/gxsm; $FORM{"SectionSub$aa"} =~ s/ /_/gsm; print {HELPORDER} qq~### Section $aa\n~ or croak "$croak{'print'} HELPORDER"; print {HELPORDER} qq~#############################################\n~ or croak "$croak{'print'} HELPORDER"; print {HELPORDER} qq~\$SectionSub$aa = "$FORM{"SectionSub$aa"}";\n~ or croak "$croak{'print'} HELPORDER"; print {HELPORDER} qq~\$SectionBody$aa = qq\~$FORM{"SectionBody$aa"}\~;\n~ or croak "$croak{'print'} HELPORDER"; print {HELPORDER} qq~#############################################\n\n\n~ or croak "$croak{'print'} HELPORDER"; $aa++; } print {HELPORDER} q~1;~ or croak "$croak{'print'} HELPORDER"; fclose(HELPORDER); $yymain .= "$helptxt{'8'}"; $yytitle = "$helptxt{'7'}"; $yySetLocation = qq~$adminurl?action=helpadmin~; redirectexit(); return; } sub HelpSet2 { $UseHelp_Perms = $FORM{'UseHelp_Perms'} ? 1 : 0; require Admin::NewSettings; SaveSettingsTo('Settings.pm'); $yymain .= "$helptxt{'8'}"; $yytitle = "$helptxt{'7'}"; $yySetLocation = qq~$adminurl?action=helpadmin~; redirectexit(); return; } sub MainAdmin { my ( $admin_list, $adminlist, $gmod_list, $gmodlist, $moderator_list, $moderatorlist, $user_list, $userlist ); $admincount = 0; opendir HELPDIR, "$helpfile/$language/Admin"; @contents = readdir HELPDIR; closedir HELPDIR; foreach my $line ( sort { uc($a) cmp uc $b } @contents ) { ( $name, $extension ) = split /\./xsm, $line; if ( $extension !~ /help/ism ) { next; } $select = q{}; if ( $admincount == 0 ) { $select = q~ selected="selected"~; } $admin_list .= qq~~; $admin_lst .= qq~$name\n~; $admincount++; } if ( !-e ("$vardir/Admin.helporder") ) { fopen( HELPORDER, ">$vardir/Admin.helporder" ) or croak("couldn't write order file - check permissions on $vardir"); print {HELPORDER} qq~$admin_lst~ or croak "$croak{'print'} HELPORDER"; fclose(HELPORDER); } fopen( HELPORDER, "$vardir/Admin.helporder" ); @adminorderlist = ; fclose(HELPORDER); foreach my $line (@adminorderlist) { chomp $line; $adminlist .= "$line\n"; } $gmodcount = 0; opendir HELPDIR, "$helpfile/$language/Gmod"; @contents = readdir HELPDIR; closedir HELPDIR; foreach my $line ( sort { uc($a) cmp uc $b } @contents ) { ( $name, $extension ) = split /\./xsm, $line; if ( $extension !~ /help/ism ) { next; } $select = q{}; if ( $gmodcount == 0 ) { $select = q~ selected="selected"~; } $gmod_list .= qq~~; $gmod_lst .= qq~$name\n~; $gmodcount++; } if ( !-e ("$vardir/Gmod.helporder") ) { fopen( HELPORDER, ">$vardir/Gmod.helporder" ) or croak("couldn't write order file - check permissions on $vardir"); print {HELPORDER} qq~$gmod_lst~ or croak "$croak{'print'} HELPORDER"; fclose(HELPORDER); } fopen( HELPORDER, "$vardir/Gmod.helporder" ); @gmodorderlist = ; fclose(HELPORDER); foreach my $line (@gmodorderlist) { chomp $line; $gmodlist .= "$line\n"; } $modcount = 0; opendir HELPDIR, "$helpfile/$language/Moderator"; @contents = readdir HELPDIR; closedir HELPDIR; foreach my $line ( sort { uc($a) cmp uc $b } @contents ) { ( $name, $extension ) = split /\./xsm, $line; if ( $extension !~ /help/ism ) { next; } $select = q{}; if ( $modcount == 0 ) { $select = q~ selected="selected"~; } $moderator_list .= qq~~; $moderator_lst .= qq~$name\n~; $modcount++; } if ( !-e ("$vardir/Moderator.helporder") ) { fopen( HELPORDER, ">$vardir/Moderator.helporder" ) or croak("couldn't write order file - check permissions on $vardir"); print {HELPORDER} qq~$moderator_lst~ or croak "$croak{'print'} HELPORDER"; fclose(HELPORDER); } fopen( HELPORDER, "$vardir/Moderator.helporder" ); @modorderlist = ; fclose(HELPORDER); foreach my $line (@modorderlist) { chomp $line; $moderatorlist .= "$line\n"; } $usercount = 0; opendir HELPDIR, "$helpfile/$language/User"; @contents = readdir HELPDIR; closedir HELPDIR; foreach my $line ( sort { uc($a) cmp uc $b } @contents ) { ( $name, $extension ) = split /\./xsm, $line; if ( $extension !~ /help/ism ) { next; } $select = q{}; if ( $usercount == 0 ) { $select = q~ selected="selected"~; } $user_list .= qq~~; $user_lst .= qq~$name\n~; $usercount++; } if ( !-e ("$vardir/User.helporder") ) { fopen( HELPORDER, ">$vardir/User.helporder" ) or croak("couldn't write order file - check permissions on $vardir"); print {HELPORDER} qq~$user_lst~ or croak "$croak{'print'} HELPORDER"; fclose(HELPORDER); } fopen( HELPORDER, "$vardir/User.helporder" ); @userorderlist = ; fclose(HELPORDER); foreach my $line (@userorderlist) { chomp $line; $userlist .= qq~$line\n~; } if ( $admincount < 4 ) { $admincount = 4; } if ( $gmodcount < 4 ) { $gmodcount = 4; } if ( $modcount < 4 ) { $modcount = 4; } if ( $usercount < 4 ) { $usercount = 4; } my $perms_check = q{}; if ( $UseHelp_Perms == 1 ) { $perms_check = q~ checked='checked'~; } $yymain .= qq~
$admin_img{'prefimg'} $helptxt{'7'}
$admin_img{'prefimg'} $helptxt{'7'}
$helptxt{'10'}
$helptxt{'6'}


$helptxt{'5'}


$helptxt{'4'}


$helptxt{'3'}


~; $yytitle = "$helptxt{'7'}"; $action_area = 'helpadmin'; AdminTemplate(); return; } sub SetOrderFile { my $help_area = $INFO{'area'}; my %verify_hash = (); $FORM{'order'} =~ s/\r//gxsm; $FORM{'testlst'} =~ s/\r//gxsm; $oldorder = $FORM{'testlst'}; $neworder = $FORM{'order'}; @oldorder = split /\n/xsm, $oldorder; @neworder = split /\n/xsm, $neworder; foreach (@oldorder) { $_ =~ s/[\n\r]//gxsm; $verify_hash{"$_"}++; } $theorder = q{}; foreach my $order (@neworder) { $order =~ s/[\n\r]//gxsm; if ( $order eq q{} ) { next; } if ( !exists $verify_hash{$order} ) { next; } $theorder .= "$order\n"; } fopen( HELPORDER, ">$vardir/$help_area.helporder" ) or croak("couldn't write order file - check permissions on $vardir"); print {HELPORDER} qq~$theorder~ or croak "$croak{'print'} HELPORDER"; fclose(HELPORDER); $yytitle = "$helptxt{'7'}"; $yySetLocation = qq~$adminurl?action=helpadmin~; redirectexit(); return; } 1;