############################################################################### # Settings_News.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 strict; use English '-no_match_vars'; our $VERSION = '3.2'; $settings_newspmver = 'YaBBForum 3.2'; if ( $action eq 'detailedversion' ) { return 1; } # Load the news from news.txt fopen( NEWS, "$vardir/news.txt" ) || fatal_error( 'cannot_open', "$vardir/news.txt", 1 ); $yabbnews = do { local $INPUT_RECORD_SEPARATOR = undef; }; fclose(NEWS); # ToHTML, in case they have some crazy HTML in it like ToHTML($yabbnews); ToChars($yabbnews); # List of settings @settings = ( # Begin tab { name => $settings_txt{'news'}, # Tab name id => 'settings', # Javascript ID items => [ { header => $settings_txt{'news'}, # Section header }, { description => qq~~, # Description of item (displayed on left) input_html => qq~~, # HTML for item name => 'enable_news', # Variable/FORM name validate => 'boolean', # Regex(es) to validate against }, { header => $settings_txt{'newsfader'}, }, { description => qq~~, input_html => qq~~, name => 'shownewsfader', validate => 'boolean', depends_on => ['enable_news'], }, { description => qq~~, input_html => qq~~, name => 'maxsteps', validate => 'number', depends_on => [ 'enable_news', 'shownewsfader' ], }, { description => qq~~, input_html => qq~ $admintxt{'ms'}~, name => 'stepdelay', validate => 'number', depends_on => [ 'enable_news', 'shownewsfader' ], }, { description => qq~~, input_html => qq~~, name => 'fadelinks', validate => 'boolean', depends_on => [ 'enable_news', 'shownewsfader' ], }, ], }, { name => $admin_txt{'7'}, id => 'editnews', items => [ { header => $admin_txt{'7'}, }, { two_rows => 1, # Use to rows to display this item description => qq~~, input_html => qq~~, name => 'news', validate => 'null,fulltext', depends_on => ['enable_news'], }, ], } ); # Routine to save them sub SaveSettings { my %settings = @_; $settings{'news'} =~ tr/\r//d; chomp $settings{'news'}; FromChars( $settings{'news'} ); # news.txt stuff fopen( NEWS, ">$vardir/news.txt", 1 ) || fatal_error( 'cannot_open', "$vardir/news.txt", 1 ); print {NEWS} $settings{'news'} or croak "$croak{'print'} NEWS"; # Remove it from the hash fclose(NEWS); delete $settings{'news'}; # Settings.pm stuff SaveSettingsTo( 'Settings.pm', %settings ); return; } 1;