1############################################################################### 2# Settings_Main.pm # 3# $Date: 12.02.14 $ # 4############################################################################### 5# YaBB: Yet another Bulletin Board # 6# Open-Source Community Software for Webmasters # 7# Version: YaBB 2.6.11 # 8# Packaged: December 2, 2014 # 9# Distributed by: http://www.yabbforum.com # 10# =========================================================================== # 11# Copyright (c) 2000-2014 YaBB (www.yabbforum.com) - All Rights Reserved. # 12# Software by: The YaBB Development Team # 13# with assistance from the YaBB community. # 14############################################################################### 15# use strict; 16use CGI::Carp qw(fatalsToBrowser); 17use English qw(-no_match_vars); 18our $VERSION = '2.6.11'; 19 20our $settings_mainpmver = 'YaBB 2.6.11 $Revision: 1611 $'; 21if ($action eq 'detailedversion') { return 1; } 22 23# Language requirements 24LoadLanguage('Register'); 25$admin_images = "$yyhtml_root/Templates/Admin/default"; 26 27# Date/Time selector 28my ( 29 $forumstart_month, $forumstart_day, $forumstart_year, 30 $forumstart_hour, $forumstart_minute, $forumstart_secund 31 ) 32 = $forumstart =~ 33 m/(\d{2})\/(\d{2})\/(\d{2,4}).*?(\d{2})\:(\d{2})\:(\d{2})/xsm; 34 35if ($forumstart_month > 12) { $forumstart_month = 12; } 36if ($forumstart_month < 1) { $forumstart_month = 1; } 37if ($forumstart_day > 31) { $forumstart_day = 31; } 38if ($forumstart_day < 1) { $forumstart_day = 1; } 39if ( length($forumstart_year) > 2 ) { 40 $forumstart_year = substr $forumstart_year, length($forumstart_year) - 2, 2; 41} 42if ($forumstart_year < 90 && $forumstart_year > 20) { $forumstart_year = 90; } 43if ($forumstart_year > 20 && $forumstart_year < 90) { $forumstart_year = 20; } 44if ($forumstart_hour > 23) { $forumstart_hour = 23; } 45if ($forumstart_minute > 59) { $forumstart_minute = 59; } 46if ($forumstart_secund > 59) { $forumstart_secund = 59; } 47 48my $sel_day = q~ 49<select name="forumstart_day"~ 50 . ( 51 ( $timeselected == 1 || $timeselected == 4 || $timeselected == 5 ) 52 ? q{} 53 : ' id="fd_fm"' 54 ) . qq~>\n~; 55foreach my $i ( 1 .. 31 ) { 56 $day_val = sprintf '%02d', $i; 57 $sel_day .= 58qq~<option value="$day_val" ${isselected($forumstart_day == $i)}>$i</option>\n~; 59} 60$sel_day .= qq~</select>\n~; 61 62my $sel_month = q~ 63<select name="forumstart_month"~ 64 . ( 65 ( $timeselected == 1 || $timeselected == 4 || $timeselected == 5 ) 66 ? ' id="fd_fm"' 67 : q{} 68 ) . qq~>\n~; 69foreach my $i ( 0 .. 11 ) { 70 $z = $i+1; 71 $month_val = sprintf '%02d', $z; 72 $sel_month .= 73qq~<option value="$month_val" ${isselected($forumstart_month == $z)}>$months[$i]</option>\n~; 74} 75$sel_month .= qq~</select>\n~; 76 77my $sel_year = qq~<select name="forumstart_year">\n~; 78foreach my $i ( 90 .. 120 ) { 79 if ( $i < 100 ) { $z = $i; $year_pre = q~19~; } 80 else { $z = $i - 100; $year_pre = q~20~; } 81 $year_val = sprintf '%02d', $z; 82 $sel_year .= 83qq~<option value="$year_val" ${isselected($forumstart_year == $z)}>$year_pre$year_val</option>\n~; 84} 85$sel_year .= qq~</select>\n~; 86 87if ( $timeselected == 1 || $timeselected == 4 || $timeselected == 5 ) { 88 $all_date = qq~$sel_month $sel_day $sel_year~; 89} 90else { $all_date = qq~$sel_day $sel_month $sel_year~; } 91 92my $sel_hour = qq~ 93<select name="forumstart_hour">\n~; 94for my $i ( 0 .. 23 ) { 95 $hour_val = sprintf '%02d', $i; 96 $sel_hour .= qq~<option value="$hour_val" ${isselected($forumstart_hour == $i)}>$hour_val</option>\n~; 97} 98$sel_hour .= qq~</select>\n~; 99 100my $sel_minute = qq~ 101<select name="forumstart_minute">\n~; 102for my $i ( 0 .. 59 ) { 103 $minute_val = sprintf '%02d', $i; 104 $sel_minute .= qq~<option value="$minute_val" ${isselected($forumstart_minute == $i)}>$minute_val</option>\n~; 105} 106$sel_minute .= qq~</select>\n~; 107 108my $sel_secund = qq~<input type="hidden" value="$forumstart_secund" name="forumstart_secund" />~; 109my $all_time = qq~$sel_hour $sel_minute $sel_secund~; 110# End time 111 112my $mytz = $default_tz; 113my $tz_select = q~<select name="default_tz" id="default_tz">~; 114$tz_select .= qq~<option value="UTC" ${isselected('UTC' eq $mytz)}>UTC</option>~; 115 116eval { 117 require DateTime; 118 require DateTime::TimeZone; 119}; 120my $dt_check = $EVAL_ERROR; 121if( $dt_check ) { 122 $tz_select .= qq~<option value="local" ${isselected('local' eq $mytz)}>$admin_txt{'local'}</option>~; 123 my @usertimeoffset = split /\./xsm, $timeoffset; 124 $timeoffsetselect = q~<select name="usertimesign" id="usertimesign"><option value="">+</option><option value="-"~ . ($usertimeoffset[0] < 0 ? ' selected="selected"' : q{}) . q~>-</option></select> <select name="usertimehour">~; 125 for my $i ( 0 .. 14 ) { 126 $i = sprintf '%02d', $i; 127 $timeoffsetselect .= qq~<option value="$i"~ . (($usertimeoffset[0] == $i || $usertimeoffset[0] == -$i) ? ' selected="selected"' : q{}) . qq~>$i</option>~; 128 } 129 $timeoffsetselect .= qq~</select> : <select name="usertimemin">~; 130 for my $i( 0 .. 59 ) { 131 my $j = $i / 60; 132 $j = (split /\./xsm, $j)[1] || 0; 133 $timeoffsetselect .= qq~<option value="$j"~ . ($usertimeoffset[1] eq $j ? ' selected="selected"' : q{}) . q~>~ . sprintf('%02d', $i) . q~</option>~; 134 } 135 $timeoffsetselect .= q~</select>~; 136 $dstoffsetlabel = qq~<label for="dstoffset">$admin_txt{'371e'}</label>~; 137 $dstoffsetinput = qq~<input type="checkbox" name="dstoffset" id="dstoffset" value="1"${ischecked($dstoffset)}/>~, 138} 139else { 140 DateTime->import(); 141 DateTime::TimeZone->import(); 142 LoadLanguage('Countries'); 143 my @mycntry = sort { $countrytime_txt{$a} cmp $countrytime_txt{$b} } keys %countrytime_txt; 144 145 for my $i ( @mycntry ) { 146 $tz_select .= qq~<option value="$i" ${isselected($i eq $mytz)}>$countrytime_txt{$i}</option>~; 147 } 148} 149$tz_select .= '</select>'; 150# Language selector 151opendir LNGDIR, $langdir; 152my @lfilesanddirs = readdir LNGDIR; 153closedir LNGDIR; 154foreach my $fld (sort {lc($a) cmp lc $b} @lfilesanddirs) { 155 if (-e "$langdir/$fld/Main.lng") { 156 my $displang = $fld; 157 $displang =~ s/(.+?)\_(.+?)$/$1 ($2)/gism; 158 $drawnldirs .= qq~<option value="$fld" ${isselected($fld eq $lang)}>$displang</option>~; 159 } 160} 161 162# For improved email check 163eval { 164 require Net::DNS; 165}; 166my $no_imp_email = $EVAL_ERROR; 167if( $no_imp_email ) { 168 $no_imp_email_check = qq~$admin_txt{'no_imp_email_check'}~; 169 $imp_email_check_dis = ' disabled="disabled"'; 170} 171 172# Template selector 173foreach my $curtemplate (sort{ $templateset{$a} cmp $templateset{$b} } keys %templateset) { 174 $drawndirs .= qq~<option value="$curtemplate" ${isselected($curtemplate eq $default_template)}>$curtemplate</option>\n~; 175} 176 177# imspam conversion 178if ($imspam eq 'off') { $imspam = 0;} 179$guest_view_limit ||= 15; 180 181$imtext =~ s~<br />~\n~gsm; 182 183# max / min for PM search 184$enable_PMsearch =~ s/\D//igsm; 185if (!$enable_PMsearch) { $enable_PMsearch = 0;} 186if ($enable_PMsearch > 50) {$enable_PMsearch = 50 ;} 187if ($enable_PMsearch < 5) {$enable_PMsearch = 5;} 188if ($set_subjectMaxLength eq q{}) {$set_subjectMaxLength = 50;} 189if ($RegReasonSymbols eq q{}) { $RegReasonSymbols = 200 ;} 190if ($ML_Allowed eq q{}) { $ML_Allowed = 1;} 191if ($default_userpic eq q{}) { $default_userpic = 'nn.gif';} 192 193require Admin::ManageBoards; # needed for avatar upload settings 194 195# Insert default if forum is being upgraded to YaBB 2.4 196if (!$pwstrengthmeter_scores && !$pwstrengthmeter_common && !$pwstrengthmeter_minchar) { 197 $FORM{'pwstrengthmeter_scores'} = '10,15,30,40'; 198 $FORM{'pwstrengthmeter_common'} = q~"123456","abcdef","password"~; 199 $FORM{'pwstrengthmeter_minchar'} = 3; 200} 201 202# googiespell start 203eval { require LWP::UserAgent }; 204my $modulLWP = $EVAL_ERROR; 205eval { require HTTP::Request::Common }; 206my $modulHTTP = $EVAL_ERROR; 207eval { require Crypt::SSLeay }; 208my $modulCrypt = $EVAL_ERROR; 209 210my $googiehtml = qq~<input type="checkbox" name="enable_spell_check" id="enable_spell_check" value="1"${ischecked($enable_spell_check)} />~; 211 if ($modulLWP || $modulHTTP || $modulCrypt) { 212 $googiehtml = q~<input type="hidden" name="enable_spell_check" value="0" />~ . 213 $admin_txt{'377a'} . 214 '- LWP::UserAgent <- <b>' . ($modulLWP ? $modulLWP : $admin_txt{'377b'}) . '</b><br />' . 215 '- HTTP::Request::Common <- <b>' . ($modulHTTP ? $modulHTTP : $admin_txt{'377b'}) . '</b><br />' . 216 '- Crypt::SSLeay <- <b>' . ($modulCrypt ? $modulCrypt : $admin_txt{'377b'}) . '</b><br />' . 217 $admin_txt{'377c'}; 218} 219# googiespell end 220 221$qcksearchtype ||= 'allwords'; 222$qckage = defined $qckage ? $qckage : 31; 223 224# List of settings 225 226@settings = ( 227{ 228 name => $settings_txt{'generalforum'}, 229 id => 'general', 230 items => [ 231 { 232 header => $settings_txt{'generalforum'}, 233 }, 234 { 235 description => qq~<label for="mbname">$admin_txt{'350'}</label>~, 236 input_html => qq~<input type="text" size="40" name="mbname" id="mbname" value="$mbname" />~, 237 name => 'mbname', 238 validate => 'text', 239 }, 240 { 241 description => qq~<label for="fd_fm">$admin_txt{'350a'}</label>~, 242 input_html => qq~$all_date $maintxt{'107'} $all_time~, 243 ### Custom validated. 244 }, 245 { 246 description => qq~<label for="MenuType">$admin_txt{'521'}</label>~, 247 input_html => qq~ 248<select name="MenuType" id="MenuType" size="1"> 249 <option value="0" ${isselected($MenuType == 0)}>$admin_txt{'521a'}</option> 250 <option value="1" ${isselected($MenuType == 1)}>$admin_txt{'521b'}</option> 251 <option value="2" ${isselected($MenuType == 2)}>$admin_txt{'521c'}</option> 252</select>~, 253 name => 'MenuType', 254 validate => 'number', 255 }, 256 { 257 description => qq~<label for="default_template">$admin_txt{'813'}</label>~, 258 input_html => qq~<select name="default_template" id="default_template">$drawndirs</select>~, 259 name => 'default_template', 260 validate => 'text', 261 }, 262 { 263 description => qq~<label for="lang">$admin_txt{'816'}</label>~, 264 input_html => qq~<select name="lang" id="lang">$drawnldirs</select>~, 265 name => 'lang', 266 validate => 'text', 267 }, 268 { 269 description => qq~<label for="yymycharset">$admin_txt{'816a'}</label>~, 270 input_html => qq~ 271<select name="yymycharset" id="yymycharset" size="1"> 272 <option value="UTF-8" ${isselected($yymycharset eq 'UTF-8')}>UTF-8</option> 273 <option value="ISO-8859-1" ${isselected($yymycharset eq 'ISO-8859-1')}>ISO-8859-1</option> 274</select> 275~, 276 name => 'yymycharset', 277 validate => 'text', 278 }, 279 { 280 description => qq~<label for="forumnumberformat">$admin_txt{'forumnumbformat'}</label>~, 281 input_html => qq~ 282<select name="forumnumberformat" id="forumnumberformat" size="1"> 283 <option value="1" ${isselected($forumnumberformat == 1)}>10987.65</option> 284 <option value="2" ${isselected($forumnumberformat == 2)}>10987,65</option> 285 <option value="3" ${isselected($forumnumberformat == 3)}>10,987.65</option> 286 <option value="4" ${isselected($forumnumberformat == 4)}>10.987,65</option> 287 <option value="5" ${isselected($forumnumberformat == 5)}>10 987,65</option> 288</select>~, 289 name => 'forumnumberformat', 290 validate => 'number', 291 }, 292 { 293 description => qq~<label for="timeselected">$admin_txt{'587'}</label>~, 294 input_html => qq~ 295<select name="timeselected" id="timeselected" size="1"> 296 <option value="1" ${isselected($timeselected == 1)}>$admin_txt{'480'}</option> 297 <option value="5" ${isselected($timeselected == 5)}>$admin_txt{'484'}</option> 298 <option value="4" ${isselected($timeselected == 4)}>$admin_txt{'483'}</option> 299 <option value="8" ${isselected($timeselected == 8)}>$admin_txt{'483a'}</option> 300 <option value="2" ${isselected($timeselected == 2)}>$admin_txt{'481'}</option> 301 <option value="3" ${isselected($timeselected == 3)}>$admin_txt{'482'}</option> 302 <option value="6" ${isselected($timeselected == 6)}>$admin_txt{'485'}</option> 303</select>~, 304 name => 'timeselected', 305 validate => 'number', 306 }, 307 { 308 header => $settings_txt{'forumtime'}, 309 }, 310 { 311 description => qq~$admin_txt{'371'}~, 312 input_html => timeformat($date,1,0,1), 313 }, 314 { 315 description => qq~<label for="enabletz">$admin_txt{'371a'}</label>~, 316 input_html => qq~<input type="checkbox" name="enabletz" id="enabletz" value="1"${ischecked($enabletz)} />~, 317 name => 'enabletz', 318 validate => 'boolean', 319 }, 320 { 321 description => qq~<label for="default_tz">$admin_txt{'371d'}</label>~, 322 input_html => $tz_select, 323 }, 324 ### Custom validated. 325 { 326 description => qq~<label for="usertimesign">$admin_txt{'371f'}</label>~, 327 input_html => $timeoffsetselect, 328 ### Custom validated. 329 }, 330 { 331 description => $dstoffsetlabel, 332 input_html => $dstoffsetinput, 333 name => 'dstoffset', 334 validate => 'boolean', 335 }, 336 { 337 description => qq~<label for="dynamic_clock">$admin_txt{'371b'}</label>~, 338 input_html => qq~<input type="checkbox" name="dynamic_clock" id="dynamic_clock" value="1"${ischecked($dynamic_clock)}/>~, 339 name => 'dynamic_clock', 340 validate => 'boolean', 341 }, 342 { 343 description => qq~<label for="timecorrection">$admin_txt{'371c'}</label>~, 344 input_html => qq~<input type="text" size="4" name="timecorrection" id="timecorrection" value="$timecorrection" />~, 345 name => 'timecorrection', 346 validate => 'fullnumber', 347 }, 348 { 349 header => $settings_txt{'showhide'}, 350 }, 351 { 352 description => qq~<label for="profilebutton">$admin_txt{'523'}</label>~, 353 input_html => qq~<input type="checkbox" name="profilebutton" id="profilebutton" value="1"${ischecked($profilebutton)} />~, 354 name => 'profilebutton', 355 validate => 'boolean', 356 }, 357 { 358 description => qq~<label for="usertools">$admin_txt{'526'}</label>~, 359 input_html => qq~<input type="checkbox" name="usertools" id="usertools" value="1"${ischecked($usertools)} />~, 360 name => 'usertools', 361 validate => 'boolean', 362 }, 363 { 364 description => qq~<label for="showlatestmember">$admin_txt{'382'}</label>~, 365 input_html => qq~<input type="checkbox" name="showlatestmember" id="showlatestmember" value="1"${ischecked($showlatestmember)} />~, 366 name => 'showlatestmember', 367 validate => 'boolean', 368 }, 369 { 370 description => qq~<label for="Show_RecentBar">$admin_txt{'509'}</label>~, 371 input_html => qq~ 372<select name="Show_RecentBar" id="Show_RecentBar" size="1"> 373 <option value="0" ${isselected($Show_RecentBar == 0)}>$admin_txt{'509a'}</option> 374 <option value="1" ${isselected($Show_RecentBar == 1)}>$admin_txt{'509b'}</option> 375 <option value="2" ${isselected($Show_RecentBar == 2)}>$admin_txt{'509c'}</option> 376 <option value="3" ${isselected($Show_RecentBar == 3)}>$admin_txt{'509d'}</option> 377</select>~, 378 name => 'Show_RecentBar', 379 validate => 'number', 380 }, 381 { 382 description => qq~<label for="showpageall">$admin_txt{'showall'}</label>~, 383 input_html => qq~<input type="checkbox" name="showpageall" id="showpageall" value="1"${ischecked($showpageall)} />~, 384 name => 'showpageall', 385 validate => 'boolean', 386 }, 387 { 388 description => qq~<label for="ShowBDescrip">$admin_txt{'732'}</label>~, 389 input_html => qq~<input type="checkbox" name="ShowBDescrip" id="ShowBDescrip" value="1"${ischecked($ShowBDescrip)} />~, 390 name => 'ShowBDescrip', 391 validate => 'boolean', 392 }, 393 { 394 description => qq~<label for="showmodify">$admin_txt{'383'}</label>~, 395 input_html => qq~<input type="checkbox" name="showmodify" id="showmodify" value="1"${ischecked($showmodify)} />~, 396 name => 'showmodify', 397 validate => 'boolean', 398 }, 399 { 400 description => qq~<label for="showuserpic">$admin_txt{'384'}</label>~, 401 input_html => qq~<input type="checkbox" name="showuserpic" id="showuserpic" value="1"${ischecked($showuserpic)} />~, 402 name => 'showuserpic', 403 validate => 'boolean', 404 }, 405 { 406 description => qq~<label for="showusertext">$admin_txt{'385'}</label>~, 407 input_html => qq~<input type="checkbox" name="showusertext" id="showusertext" value="1"${ischecked($showusertext)} />~, 408 name => 'showusertext', 409 validate => 'boolean', 410 }, 411 { 412 description => qq~<label for="showgenderimage">$admin_txt{'386'}</label>~, 413 input_html => qq~<input type="checkbox" name="showgenderimage" id="showgenderimage" value="1"${ischecked($showgenderimage)} />~, 414 name => 'showgenderimage', 415 validate => 'boolean', 416 }, 417 { 418 description => qq~<label for="showzodiac">$admin_txt{'zodiac'}</label>~, 419 input_html => qq~<input type="checkbox" name="showzodiac" id="showzodiac" value="1"${ischecked($showzodiac)} />~, 420 name => 'showzodiac', 421 validate => 'boolean', 422 }, 423 { 424 description => qq~<label for="showuserage">$admin_txt{'show_user_age'}</label>~, 425 input_html => qq~<input type="checkbox" name="showuserage" id="showuserage" value="1"${ischecked($showuserage)} />~, 426 name => 'showuserage', 427 validate => 'boolean', 428 }, 429 { 430 description => qq~<label for="showregdate">$admin_txt{'show_reg_date'}</label>~, 431 input_html => qq~<input type="checkbox" name="showregdate" id="showregdate" value="1"${ischecked($showregdate)} />~, 432 name => 'showregdate', 433 validate => 'boolean', 434 }, 435 { 436 description => qq~<label for="hide_signat_for_guests">$admin_txt{'409'}</label>~, 437 input_html => qq~<input type="checkbox" name="hide_signat_for_guests" id="hide_signat_for_guests" value="1"${ischecked($hide_signat_for_guests)} />~, 438 name => 'hide_signat_for_guests', 439 validate => 'boolean', 440 }, 441 { 442 description => qq~<label for="showallgroups">$amv_txt{'12'}</label>~, 443 input_html => qq~<input type="checkbox" name="showallgroups" id="showallgroups" value="1"${ischecked($showallgroups)} />~, 444 name => 'showallgroups', 445 validate => 'boolean', 446 }, 447 { 448 description => qq~<label for="showtopicviewers">$admin_txt{'394'}<br />$admin_txt{'396'}</label>~, 449 input_html => qq~<input type="checkbox" name="showtopicviewers" id="showtopicviewers" value="1"${ischecked($showtopicviewers)} />~, 450 name => 'showtopicviewers', 451 validate => 'boolean', 452 }, 453 { 454 description => qq~<label for="showtopicrepliers">$admin_txt{'395'}<br />$admin_txt{'396'}</label>~, 455 input_html => qq~<input type="checkbox" name="showtopicrepliers" id="showtopicrepliers" value="1"${ischecked($showtopicrepliers)} />~, 456 name => 'showtopicrepliers', 457 validate => 'boolean', 458 }, 459 { 460 description => qq~<label for="showimageinquote">$admin_txt{'imageinquote'}</label>~, 461 input_html => qq~<input type="checkbox" name="showimageinquote" id="showimageinquote" value="1"${ischecked($showimageinquote)} />~, 462 name => 'showimageinquote', 463 validate => 'boolean', 464 }, 465 { 466 description => qq~<label for="enabletopichover">$admin_txt{'topichover'}</label>~, 467 input_html => qq~<input type="checkbox" name="enabletopichover" id="enabletopichover" value="1"${ischecked($enabletopichover)} />~, 468 name => 'enabletopichover', 469 validate => 'boolean', 470 }, 471 { 472 description => qq~<label for="addtab_on">$admin_txt{'addtab_on'}</label>~, 473 input_html => qq~<input type="checkbox" name="addtab_on" id="addtab_on" value="1"${ischecked($addtab_on)} />~, 474 name => 'addtab_on', 475 validate => 'boolean', 476 }, 477 478 ], 479}, 480{ 481 name => $settings_txt{'posting'}, 482 id => 'posting', 483 items => [ 484 { 485 header => $settings_txt{'posting'}, 486 }, 487 { 488 description => qq~<label for="enable_spell_check">$admin_txt{'377'}</label>~, 489 input_html => $googiehtml, 490 name => 'enable_spell_check', 491 validate => 'boolean', 492 }, 493 { 494 description => qq~<label for="enable_ubbc">$admin_txt{'378'}</label>~, 495 input_html => qq~<input type="checkbox" name="enable_ubbc" id="enable_ubbc" value="1"${ischecked($enable_ubbc)} />~, 496 name => 'enable_ubbc', 497 validate => 'boolean', 498 }, 499 { 500 description => qq~<label for="showyabbcbutt">$admin_txt{'740'}</label>~, 501 input_html => qq~<input type="checkbox" name="showyabbcbutt" id="showyabbcbutt" value="1"${ischecked($showyabbcbutt)} />~, 502 name => 'showyabbcbutt', 503 validate => 'boolean', 504 }, 505 { 506 description => qq~<label for="parseflash">$admin_txt{'804'}</label>~, 507 input_html => qq~<input type="checkbox" name="parseflash" id="parseflash" value="1"${ischecked($parseflash)} />~, 508 name => 'parseflash', 509 validate => 'boolean', 510 }, 511 { 512 description => qq~<label for="nestedquotes">$admin_txt{'378a'}</label>~, 513 input_html => qq~<input type="checkbox" name="nestedquotes" id="nestedquotes" value="1"${ischecked($nestedquotes)} />~, 514 name => 'nestedquotes', 515 validate => 'boolean', 516 }, 517 { 518 description => qq~<label for="autolinkurls">$admin_txt{'524'}</label>~, 519 input_html => qq~<input type="checkbox" name="autolinkurls" id="autolinkurls" value="1"${ischecked($autolinkurls)} />~, 520 name => 'autolinkurls', 521 validate => 'boolean', 522 }, 523 { 524 description => qq~<label for="checkallcaps">$admin_txt{'525'}</label>~, 525 input_html => qq~<input type="text" size="2" name="checkallcaps" id="checkallcaps" value="$checkallcaps" />~, 526 name => 'checkallcaps', 527 validate => 'number,null', 528 }, 529 { 530 description => qq~<label for="set_subjectMaxLength">$admin_txt{'498a'}</label>~, 531 input_html => qq~<input type="text" size="5" name="set_subjectMaxLength" id="set_subjectMaxLength" value="$set_subjectMaxLength" />~, 532 name => 'set_subjectMaxLength', 533 validate => 'number', 534 }, 535 { 536 description => qq~<label for="MaxMessLen">$admin_txt{'498'}</label>~, 537 input_html => qq~<input type="text" size="5" name="MaxMessLen" id="MaxMessLen" value="$MaxMessLen" />~, 538 name => 'MaxMessLen', 539 validate => 'number', 540 }, 541 { 542 description => 543 qq~<label for="AdMaxMessLen">$admin_txt{'498b'}</label>~, 544 input_html =>qq~<input type="text" size="5" name="AdMaxMessLen" id="AdMaxMessLen" value="$AdMaxMessLen" />~, 545 name => 'AdMaxMessLen', 546 validate => 'number', 547 }, 548 { 549 description => qq~<label for="fontsizemin">$admin_txt{'499'}</label>~, 550 input_html => qq~<input type="text" size="5" name="fontsizemin" id="fontsizemin" value="$fontsizemin" />~, 551 name => 'fontsizemin', 552 validate => 'number', 553 }, 554 { 555 description => qq~<label for="fontsizemax">$admin_txt{'500'}</label>~, 556 input_html => qq~<input type="text" size="5" name="fontsizemax" id="fontsizemax" value="$fontsizemax" />~, 557 name => 'fontsizemax', 558 validate => 'number', 559 }, 560 { 561 description => qq~<label for="HotTopic">$admin_txt{'842'}</label>~, 562 input_html => qq~<input type="text" size="5" name="HotTopic" id="HotTopic" value="$HotTopic" />~, 563 name => 'HotTopic', 564 validate => 'number', 565 }, 566 { 567 description => qq~<label for="VeryHotTopic">$admin_txt{'843'}</label>~, 568 input_html => qq~<input type="text" size="5" name="VeryHotTopic" id="VeryHotTopic" value="$VeryHotTopic" />~, 569 name => 'VeryHotTopic', 570 validate => 'number', 571 }, 572 { 573 description => qq~<label for="maxdisplay">$admin_txt{'374'}</label>~, 574 input_html => qq~<input type="text" name="maxdisplay" id="maxdisplay" size="5" value="$maxdisplay" />~, 575 name => 'maxdisplay', 576 validate => 'number', 577 }, 578 { 579 description => qq~<label for="maxmessagedisplay">$admin_txt{'375'}</label>~, 580 input_html => qq~<input type="text" name="maxmessagedisplay" id="maxmessagedisplay" size="5" value="$maxmessagedisplay" />~, 581 name => 'maxmessagedisplay', 582 validate => 'number', 583 }, 584 { 585 description => qq~<label for="posttools">$admin_txt{'527'}</label>~, 586 input_html => qq~<input type="checkbox" name="posttools" id="posttools" value="1"${ischecked($posttools)} />~, 587 name => 'posttools', 588 validate => 'boolean', 589 }, 590 { 591 description => qq~<label for="threadtools">$admin_txt{'528'}</label>~, 592 input_html => qq~<input type="checkbox" name="threadtools" id="threadtools" value="1"${ischecked($threadtools)} />~, 593 name => 'threadtools', 594 validate => 'boolean', 595 }, 596 { 597 description => qq~<label for="user_reason">$admin_txt{'user_reason'}</label>~, 598 input_html => qq~<input type="checkbox" name="user_reason" id="user_reason" value="1"${ischecked($user_reason)} />~, 599 name => 'user_reason', 600 validate => 'boolean', 601 }, 602 { 603 header => $timelocktxt{'01'}, 604 }, 605 { 606 description => qq~<label for="tlnomodflag">$timelocktxt{'03'}</label>~, 607 input_html => qq~<input type="checkbox" name="tlnomodflag" id="tlnomodflag" value="1"${ischecked($tlnomodflag)} />~, 608 name => 'tlnomodflag', 609 validate => 'boolean', 610 }, 611 { 612 description => qq~<label for="tlnomodtime">$timelocktxt{'04'}</label>~, 613 input_html => qq~<input type="text" size="5" name="tlnomodtime" id="tlnomodtime" value="$tlnomodtime" />~, 614 name => 'tlnomodtime', 615 validate => 'number', 616 depends_on => ['tlnomodflag'], 617 }, 618 { 619 description => qq~<label for="tlnodelflag">$timelocktxt{'07'}</label>~, 620 input_html => qq~<input type="checkbox" name="tlnodelflag" id="tlnodelflag" value="1"${ischecked($tlnodelflag)} />~, 621 name => 'tlnodelflag', 622 validate => 'boolean', 623 }, 624 { 625 description => qq~<label for="tlnodeltime">$timelocktxt{'08'}</label>~, 626 input_html => qq~<input type="text" size="5" name="tlnodeltime" id="tlnodeltime" value="$tlnodeltime" />~, 627 name => 'tlnodeltime', 628 validate => 'number', 629 depends_on => ['tlnodelflag'], 630 }, 631 { 632 description => qq~<label for="tllastmodflag">$timelocktxt{'05'}</label>~, 633 input_html => qq~<input type="checkbox" name="tllastmodflag" id="tllastmodflag" value="1"${ischecked($tllastmodflag)} />~, 634 name => 'tllastmodflag', 635 validate => 'boolean', 636 }, 637 { 638 description => qq~<label for="tllastmodtime">$timelocktxt{'06'}</label>~, 639 input_html => qq~<input type="text" size="5" name="tllastmodtime" id="tllastmodtime" value="$tllastmodtime" />~, 640 name => 'tllastmodtime', 641 validate => 'number', 642 depends_on => ['tllastmodflag'], 643 }, 644 { 645 header => $cutts{'8'}, 646 }, 647 { 648 description => qq~<label for="ttsreverse">$cutts{'9'}</label>~, 649 input_html => qq~<input type="checkbox" name="ttsreverse" id="ttsreverse" value="1"${ischecked($ttsreverse)} />~, 650 name => 'ttsreverse', 651 validate => 'boolean', 652 }, 653 { 654 description => qq~<label for="ttsureverse">$cutts{'9a'}</label>~, 655 input_html => qq~<input type="checkbox" name="ttsureverse" id="ttsureverse" value="1"${ischecked($ttsureverse)} />~, 656 name => 'ttsureverse', 657 validate => 'boolean', 658 }, 659 { 660 description => qq~<label for="tsreverse">$cutts{'7'}</label>~, 661 input_html => qq~<input type="checkbox" name="tsreverse" id="tsreverse" value="1"${ischecked($tsreverse)} />~, 662 name => 'tsreverse', 663 validate => 'boolean', 664 }, 665 { 666 description => qq~<label for="cutamount">$cutts{'1'}</label>~, 667 input_html => qq~<input type="text" size="5" name="cutamount" id="cutamount" value="$cutamount" />~, 668 name => 'cutamount', 669 validate => 'number', 670 }, 671 { 672 header => $settings_txt{'poll'}, 673 }, 674 { 675 description => qq~<label for="numpolloptions">$polltxt{'28'}</label>~, 676 input_html => qq~<input type="text" size="5" name="numpolloptions" id="numpolloptions" value="$numpolloptions" />~, 677 name => 'numpolloptions', 678 validate => 'number', 679 }, 680 { 681 description => qq~<label for="maxpq">$polltxt{'61'}</label>~, 682 input_html => qq~<input type="text" size="5" name="maxpq" id="maxpq" value="$maxpq" />~, 683 name => 'maxpq', 684 validate => 'number', 685 }, 686 { 687 description => qq~<label for="maxpo">$polltxt{'62'}</label>~, 688 input_html => qq~<input type="text" size="5" name="maxpo" id="maxpo" value="$maxpo" />~, 689 name => 'maxpo', 690 validate => 'number', 691 }, 692 { 693 description => qq~<label for="maxpc">$polltxt{'63'}</label>~, 694 input_html => qq~<input type="text" size="5" name="maxpc" id="maxpc" value="$maxpc" />~, 695 name => 'maxpc', 696 validate => 'number', 697 }, 698 { 699 description => qq~<label for="useraddpoll">$polltxt{'29'}</label>~, 700 input_html => qq~<input type="checkbox" name="useraddpoll" id="useraddpoll" value="1"${ischecked($useraddpoll)} />~, 701 name => 'useraddpoll', 702 validate => 'boolean', 703 }, 704 { 705 description => qq~<label for="ubbcpolls">$polltxt{'60'}</label>~, 706 input_html => qq~<input type="checkbox" name="ubbcpolls" id="ubbcpolls" value="1"${ischecked($ubbcpolls)} />~, 707 name => 'ubbcpolls', 708 validate => 'boolean', 709 }, 710 { 711 header => $qrb_txt{'1'}, 712 }, 713 { 714 description => qq~<label for="enable_quickpost">$qrb_txt{'2'}</label>~, 715 input_html => qq~<input type="checkbox" name="enable_quickpost" id="enable_quickpost" value="1"${ischecked($enable_quickpost)} />~, 716 name => 'enable_quickpost', 717 validate => 'boolean', 718 }, 719 { 720 description => qq~<label for="enable_quickreply">$qrb_txt{'3'}</label>~, 721 input_html => qq~<input type="checkbox" name="enable_quickreply" id="enable_quickreply" value="1"${ischecked($enable_quickreply)} />~, 722 name => 'enable_quickreply', 723 validate => 'boolean', 724 }, 725 { 726 description => qq~<label for="enable_markquote">$qrb_txt{'4'}</label>~, 727 input_html => qq~<input type="checkbox" name="enable_markquote" id="enable_markquote" value="1"${ischecked($enable_markquote)} />~, 728 name => 'enable_markquote', 729 validate => 'boolean', 730 depends_on => ['enable_quickreply'], 731 }, 732 { 733 description => qq~<label for="enable_quoteuser">$qrb_txt{'5'}</label>~, 734 input_html => qq~<input type="checkbox" name="enable_quoteuser" id="enable_quoteuser" value="1"${ischecked($enable_quoteuser)} />~, 735 name => 'enable_quoteuser', 736 validate => 'boolean', 737 depends_on => ['enable_quickreply'], 738 }, 739 { 740 description => qq~<label for="quoteuser_color">$qrb_txt{'6'}</label>~, 741 input_html => qq~<input type="text" size="7" maxlength="7" name="quoteuser_color" id="quoteuser_color" value="$quoteuser_color" onkeyup="previewColor(this.value);" /> <span id="quoteuser_color2" style="background-color:$quoteuser_color"> </span> <img src="$admin_images/palette1.gif" style="cursor: pointer; vertical-align:top" onclick="window.open('$scripturl?action=palette;task=templ', '', 'height=308,width=302,menubar=no,toolbar=no,scrollbars=no')" alt="" /> 742 <script type="text/javascript"> 743 function previewColor(color) { 744 document.getElementById('quoteuser_color2').style.background = color; 745 document.getElementsByName("quoteuser_color")[0].value = color; 746 } 747 </script>~, 748 name => 'quoteuser_color', 749 validate => 'text', 750 depends_on => ['enable_quoteuser', 'enable_quickreply'], 751 }, 752 { 753 description => qq~<label for="enable_quickjump">$qrb_txt{'7'}</label>~, 754 input_html => qq~<input type="checkbox" name="enable_quickjump" id="enable_quickjump" value="1"${ischecked($enable_quickjump)} />~, 755 name => 'enable_quickjump', 756 validate => 'boolean', 757 depends_on => ['enable_quickpost||', 'enable_quickreply||'], 758 }, 759 { 760 description => qq~<label for="quick_quotelength">$qrb_txt{'8'}</label>~, 761 input_html => qq~<input type="text" size="5" name="quick_quotelength" id="quick_quotelength" value="$quick_quotelength" />~, 762 name => 'quick_quotelength', 763 validate => 'number', 764 depends_on => ['enable_quickjump', 'enable_quickreply'], 765 }, 766 ], 767}, 768{ 769 name => $settings_txt{'search'}, 770 id => 'search', 771 items => [ 772 { 773 header => $settings_txt{'search'}, 774 }, 775 { 776 description => qq~<label for="maxsearchdisplay">$settings_txt{'6'}</label>~, 777 input_html => qq~<input type="text" name="maxsearchdisplay" id="maxsearchdisplay" size="5" value="$maxsearchdisplay" />~, 778 name => 'maxsearchdisplay', 779 validate => 'fullnumber', 780 }, 781 { 782 header => $settings_txt{'advsearch'}, 783 }, 784 { 785 description => qq~<label for="mgadvsearch">$settings_txt{'mgadvsearch'}</label>~, 786 input_html => q~<select multiple="multiple" name="mgadvsearch" id="mgadvsearch" size="8">~ . DrawPerms($mgadvsearch, 0) . q~</select>~, 787 name => 'mgadvsearch', 788 validate => 'text,null', 789 }, 790 { 791 description => qq~<label for="enableguestsearch">$settings_txt{'guestsearch'}</label>~, 792 input_html => qq~<input type="checkbox" name="enableguestsearch" id="enableguestsearch" value="1" ${ischecked($enableguestsearch)}/>~, 793 name => 'enableguestsearch', 794 validate => 'boolean', 795 }, 796 { 797 header => $settings_txt{'qcksearch'}, 798 }, 799 { 800 description => qq~<label for="mgqcksearch">$settings_txt{'mgqcksearch'}</label>~, 801 input_html => q~<select multiple="multiple" name="mgqcksearch" id="mgqcksearch" size="8">~ . DrawPerms($mgqcksearch, 0) . q~</select>~, 802 name => 'mgqcksearch', 803 validate => 'text,null', 804 }, 805 { 806 description => qq~<label for="enableguestquicksearch">$settings_txt{'guestquicksearch'}</label>~, 807 input_html => qq~<input type="checkbox" name="enableguestquicksearch" id="enableguestquicksearch" value="1" ${ischecked($enableguestquicksearch)}/>~, 808 name => 'enableguestquicksearch', 809 validate => 'boolean', 810 }, 811 { 812 header => $settings_txt{'qcksearchparam'}, 813 }, 814 { 815 description => qq~<label for="qcksearchtype">$settings_txt{'qcksearchtype'}</label>~, 816 input_html => qq~ 817 <select name="qcksearchtype" id="qcksearchtype"> 818 <option value="allwords"${isselected($qcksearchtype eq 'allwords')}>$settings_txt{'qckallwords'}</option> 819 <option value="anywords"${isselected($qcksearchtype eq 'anywords')}>$settings_txt{'qckanywords'}</option> 820 <option value="asphrase"${isselected($qcksearchtype eq 'asphrase')}>$settings_txt{'qckasphrase'}</option> 821 <option value="aspartial"${isselected($qcksearchtype eq 'aspartial')}>$settings_txt{'qckaspartial'}</option> 822 </select>~, 823 name => 'qcksearchtype', 824 validate => 'text', 825 }, 826 { 827 description => qq~<label for="qckage">$settings_txt{'qckage'}</label>~, 828 input_html => qq~ 829 <select name="qckage" id="qckage"> 830 <option value="7"${isselected($qckage == 7)}>$settings_txt{'qckweek'}</option> 831 <option value="31"${isselected($qckage == 31)}>$settings_txt{'qckmonth'}</option> 832 <option value="92"${isselected($qckage == 92)}>$settings_txt{'qckthreemonths'}</option> 833 <option value="365"${isselected($qckage == 365)}>$settings_txt{'qckyear'}</option> 834 <option value="0"${isselected($qckage == 0)}>$settings_txt{'qckallposts'}</option> 835 </select>~, 836 name => 'qckage', 837 validate => 'number', 838 }, 839 ], 840}, 841{ 842 name => $settings_txt{'user'}, 843 id => 'user', 844 items => [ 845 { 846 header => $settings_txt{'guest'}, 847 }, 848 { 849 description => qq~<label for="guestaccess">$admin_txt{'632'}</label>~, 850 input_html => qq~<input type="checkbox" name="guestaccess" id="guestaccess" value="1"${ischecked(!$guestaccess)} />~, 851 name => 'guestaccess', 852 validate => 'boolean', 853 }, 854 { 855 description => qq~<label for="enable_guestposting">$admin_txt{'380'}</label>~, 856 input_html => qq~<input type="checkbox" name="enable_guestposting" id="enable_guestposting" value="1"${ischecked($enable_guestposting)} />~, 857 name => 'enable_guestposting', 858 validate => 'boolean', 859 depends_on => ['!guestaccess'], 860 }, 861 { 862 description => qq~<label for="enable_guestlanguage">$admin_txt{'guestlang'}</label>~, 863 input_html => qq~<input type="checkbox" name="enable_guestlanguage" id="enable_guestlanguage" value="1"${ischecked($enable_guestlanguage)} />~, 864 name => 'enable_guestlanguage', 865 validate => 'boolean', 866 depends_on => ['!guestaccess'], 867 }, 868 { 869 description => qq~<label for="guest_media_disallowed">$admin_txt{'guestmedia'}</label>~, 870 input_html => qq~<input type="checkbox" name="guest_media_disallowed" id="guest_media_disallowed" value="1"${ischecked($guest_media_disallowed)} />~, 871 name => 'guest_media_disallowed', 872 validate => 'boolean', 873 depends_on => ['!guestaccess'], 874 }, 875 { 876 description => qq~<label for="enable_guest_view_limit">$admin_txt{'enable_guest_view_limit'}</label>~, 877 input_html => qq~<input type="checkbox" name="enable_guest_view_limit" id="enable_guest_view_limit" value="1"${ischecked($enable_guest_view_limit)} />~, 878 name => 'enable_guest_view_limit', 879 validate => 'boolean', 880 depends_on => ['!guestaccess'], 881 }, 882 { 883 description => qq~<label for="guest_view_limit">$admin_txt{'guest_view_limit'}</label>~, 884 input_html => qq~<input type="text" name="guest_view_limit" id="guest_view_limit" size="5" value="$guest_view_limit" />~, 885 name => 'guest_view_limit', 886 validate => 'number', 887 depends_on => ['enable_guest_view_limit', '!guestaccess'], 888 }, 889 { 890 description => qq~<label for="guest_view_limit_block">$admin_txt{'guest_view_limit_block'}</label>~, 891 input_html => qq~<input type="checkbox" name="guest_view_limit_block" id="guest_view_limit_block" value="1"${ischecked($guest_view_limit_block)} />~, 892 name => 'guest_view_limit_block', 893 validate => 'boolean', 894 depends_on => ['enable_guest_view_limit', '!guestaccess'], 895 }, 896 { 897 header => $settings_txt{'profile'}, 898 }, 899 { 900 description => qq~<label for="allowpics">$admin_txt{'746'}</label>~, 901 input_html => qq~<input type="checkbox" name="allowpics" id="allowpics" value="1"${ischecked($allowpics)} />~, 902 name => 'allowpics', 903 validate => 'boolean', 904 }, 905 { 906 description => qq~<label for="upload_useravatar">$admin_txt{'747'}</label>~, 907 input_html => qq~<input type="checkbox" name="upload_useravatar" id="upload_useravatar" value="1"${ischecked($upload_useravatar)} />~, 908 name => 'upload_useravatar', 909 validate => 'boolean', 910 depends_on => ['allowpics'], 911 }, 912 { 913 description => $admin_txt{'747a'}, 914 input_html => qq~$facesdir/UserAvatars<br />~ . ((-w "$facesdir/UserAvatars" && -d "$facesdir/UserAvatars") ? qq~<span class="good">$admin_txt{'163'}</span>~ : qq~<span class="important">$admin_txt{'164'}</span>~), # Non-changeable setting 915 }, 916 { 917 description => qq~<label for="upload_avatargroup">$admin_txt{'748'}</label>~, 918 input_html => q~<select multiple="multiple" name="upload_avatargroup" id="upload_avatargroup" size="8">~ . DrawPerms($upload_avatargroup, 0) . q~</select>~, 919 name => 'upload_avatargroup', 920 validate => 'text,null', 921 depends_on => ['allowpics','upload_useravatar'], 922 }, 923 { 924 description => qq~<label for="avatar_limit">$admin_txt{'749'}</label>~, 925 input_html => qq~<input type="text" name="avatar_limit" id="avatar_limit" size="5" value="$avatar_limit" /> KB~, 926 name => 'avatar_limit', 927 validate => 'number', 928 depends_on => ['allowpics','upload_useravatar'], 929 }, 930 { 931 description => qq~<label for="avatar_dirlimit">$admin_txt{'750'}</label>~, 932 input_html => qq~<input type="text" name="avatar_dirlimit" id="avatar_dirlimit" size="5" value="$avatar_dirlimit" /> KB~, 933 name => 'avatar_dirlimit', 934 validate => 'number', 935 depends_on => ['allowpics','upload_useravatar'], 936 }, 937 { 938 description => qq~<label for="default_avatar">$admin_txt{'default_avatar'}</label>~, 939 input_html => qq~<input type="checkbox" name="default_avatar" id="default_avatar" value="1"${ischecked($default_avatar)} />~, 940 name => 'default_avatar', 941 validate => 'boolean', 942 depends_on => ['allowpics'], 943 }, 944 { 945 description => qq~<label for="default_userpic">$admin_txt{'default_userpic'}</label>~, 946 input_html => qq~<input type="file" name="default_userpic" id="default_userpic" size="35" /><input type="hidden" name="cur_default_userpic" value="$default_userpic" /> <span class="cursor small bold" title="$admin_txt{'remove_file'}" onclick="document.getElementById('default_userpic').value='';">X</span><div class="small bold">$admin_txt{'current_img'}: <a href="$yyhtml_root/Templates/Forum/default/$default_userpic" target="_blank">$default_userpic</a></div>~, 947 name => 'default_userpic', 948 validate => 'text,null', 949 depends_on => ['allowpics','default_avatar'], 950 }, 951 { 952 description => qq~<label for="enable_notifications_N">$admin_txt{'381'}</label>~, 953 input_html => qq~<input type="checkbox" name="enable_notifications_N" id="enable_notifications_N" value="1"${ischecked((($enable_notifications == 1 || $enable_notifications == 3) ? 1 : 0))} />~, 954 name => 'enable_notifications_N', 955 validate => 'boolean', 956 }, 957 { 958 description => qq~<label for="NewNotificationAlert">$imtxt{'NewNotificationAlert'}</label>~, 959 input_html => qq~<input type="checkbox" name="NewNotificationAlert" id="NewNotificationAlert" value="1"${ischecked($NewNotificationAlert)} />~, 960 name => 'NewNotificationAlert', 961 validate => 'boolean', 962 }, 963 { 964 description => qq~<label for="allow_hide_email">$admin_txt{'723'}</label>~, 965 input_html => qq~<input type="checkbox" name="allow_hide_email" id="allow_hide_email" value="1"${ischecked($allow_hide_email)} />~, 966 name => 'allow_hide_email', 967 validate => 'boolean', 968 }, 969 { 970 description => qq~<label for="user_hide_avatars">$admin_txt{'751'}</label>~, 971 input_html => qq~<input type="checkbox" name="user_hide_avatars" id="user_hide_avatars" value="1"${ischecked((($user_hide_avatars && $showuserpic && $allowpics) ? 1 : 0))} />~, 972 name => 'user_hide_avatars', 973 validate => 'boolean', 974 depends_on => ['showuserpic','allowpics'], 975 }, 976 { 977 description => qq~<label for="user_hide_user_text">$admin_txt{'752'}</label>~, 978 input_html => qq~<input type="checkbox" name="user_hide_user_text" id="user_hide_user_text" value="1"${ischecked((($user_hide_user_text && $showusertext) ? 1 : 0))} />~, 979 name => 'user_hide_user_text', 980 validate => 'boolean', 981 depends_on => ['showusertext'], 982 }, 983 { 984 description => qq~<label for="user_hide_img">$admin_txt{'756'}</label>~, 985 input_html => qq~<input type="checkbox" name="user_hide_img" id="user_hide_img" value="1"${ischecked($user_hide_img)} />~, 986 name => 'user_hide_img', 987 validate => 'boolean', 988 }, 989 { 990 description => qq~<label for="user_hide_attach_img">$admin_txt{'753'}</label>~, 991 input_html => qq~<input type="checkbox" name="user_hide_attach_img" id="user_hide_attach_img" value="1"${ischecked($user_hide_attach_img)}~ . ($allowattach ? q{} : ' disabled="disabled"') . q~ />~, 992 name => 'user_hide_attach_img', 993 validate => 'boolean', 994 }, 995 { 996 description => qq~<label for="user_hide_signat">$admin_txt{'754'}</label>~, 997 input_html => qq~<input type="checkbox" name="user_hide_signat" id="user_hide_signat" value="1"${ischecked($user_hide_signat)} />~, 998 name => 'user_hide_signat', 999 validate => 'boolean', 1000 }, 1001 { 1002 description => qq~<label for="user_hide_smilies_row">$admin_txt{'755'}</label>~, 1003 input_html => qq~<input type="checkbox" name="user_hide_smilies_row" id="user_hide_smilies_row" value="1"${ischecked((($user_hide_smilies_row && !$removenormalsmilies) ? 1 : 0))}~ . ($removenormalsmilies ? ' disabled="disabled"' : q{}) . q~ />~, 1004 name => 'user_hide_smilies_row', 1005 validate => 'boolean', 1006 }, 1007 { 1008 description => qq~<label for="edit_gender_limit">$admin_txt{'edit_gender_limit'}</label>~, 1009 input_html => qq~<input type="text" size="2" name="editGenderLimit" id="edit_gender_limit" value="$editGenderLimit" />~, 1010 name => 'editGenderLimit', 1011 validate => 'number,null', 1012 }, 1013 { 1014 description => qq~<label for="edit_age_limit">$admin_txt{'edit_age_limit'}</label>~, 1015 input_html => qq~<input type="text" size="2" name="editAgeLimit" id="edit_age_limit" value="$editAgeLimit" />~, 1016 name => 'editAgeLimit', 1017 validate => 'number,null', 1018 }, 1019 { 1020 description => qq~<label for="showage">$admin_txt{'386a'}</label>~, 1021 input_html => qq~<input type="checkbox" name="showage" id="showage" value="1"${ischecked($showage)} />~, 1022 name => 'showage', 1023 validate => 'boolean', 1024 }, 1025 { 1026 description => qq~<label for="emailnewpass">$admin_txt{'639'}</label>~, 1027 input_html => qq~<input type="checkbox" name="emailnewpass" id="emailnewpass" value="1"${ischecked($emailnewpass)} />~, 1028 name => 'emailnewpass', 1029 validate => 'boolean', 1030 }, 1031 { 1032 description => qq~<label for="buddyListEnabled">$admin_txt{'buddylist'}</label>~, 1033 input_html => qq~<input type="checkbox" name="buddyListEnabled" id="buddyListEnabled" value="1"${ischecked($buddyListEnabled)} />~, 1034 name => 'buddyListEnabled', 1035 validate => 'boolean', 1036 }, 1037 { 1038 description => qq~<label for="defaultusertxt">$admin_txt{'385a'}</label>~, 1039 input_html => qq~<input type="text" name="defaultusertxt" id="defaultusertxt" value="$defaultusertxt" />~, 1040 name => 'defaultusertxt', 1041 validate => 'text,null', 1042 }, 1043 { 1044 description => qq~<label for="MaxSigLen">$admin_txt{'689'}</label>~, 1045 input_html => qq~<input type="text" name="MaxSigLen" id="MaxSigLen" size="5" value="$MaxSigLen" />~, 1046 name => 'MaxSigLen', 1047 validate => 'number,null', 1048 }, 1049 { 1050 description => qq~<label for="maxfavs">$admin_txt{'101'}</label>~, 1051 input_html => qq~<input type="text" name="maxfavs" id="maxfavs" size="5" value="$maxfavs" />~, 1052 name => 'maxfavs', 1053 validate => 'number', 1054 }, 1055 { 1056 description => qq~<label for="addmemgroup_enabled">$amgtxt{'84'}</label>~, 1057 input_html => qq~ 1058 <select name="addmemgroup_enabled" id="addmemgroup_enabled"> 1059 <option value="0"${isselected($addmemgroup_enabled == 0)}>$amgtxt{'85'}</option> 1060 <option value="1"${isselected($addmemgroup_enabled == 1)}>$amgtxt{'86'}</option> 1061 <option value="2"${isselected($addmemgroup_enabled == 2)}>$amgtxt{'87'}</option> 1062 <option value="3"${isselected($addmemgroup_enabled == 3)}>$amgtxt{'88'}</option> 1063 </select>~, 1064 name => 'addmemgroup_enabled', 1065 validate => 'number', 1066 }, 1067 { 1068 description =>qq~<label for="self_del_user">$admin_txt{'586'}</label>~, 1069 input_html =>qq~<input type="checkbox" name="self_del_user" id="self_del_user" value="1" ${ischecked($self_del_user)}/>~, 1070 name => 'self_del_user', 1071 validate => 'boolean', 1072 }, 1073 { 1074 description => qq~<label for="extendedprofiles">$admin_txt{'extendedprofiles'}</label>~, 1075 input_html => qq~<input type="checkbox" name="extendedprofiles" id="extendedprofiles" value="1" ${ischecked($extendedprofiles)}/>~, 1076 name => 'extendedprofiles', 1077 validate => 'boolean', 1078 }, 1079 { 1080 header => $settings_txt{'login'}, 1081 }, 1082 { 1083 description => qq~<label for="Cookie_Length">$admin_txt{'432'}</label>~, 1084 input_html => qq~<input type="checkbox" name="Cookie_Length" id="Cookie_Length" value="1" ${ischecked($Cookie_Length)}/>~, 1085 name => 'Cookie_Length', 1086 validate => 'boolean', 1087 }, 1088 { 1089 description => qq~<label for="cookieusername">$admin_txt{'352'}</label>~, 1090 input_html => qq~<input type="text" name="cookieusername" id="cookieusername" size="20" value="$cookieusername" />~, 1091 name => 'cookieusername', 1092 validate => 'text', 1093 }, 1094 { 1095 description => qq~<label for="cookiepassword">$admin_txt{'353'}</label>~, 1096 input_html => qq~<input type="text" name="cookiepassword" id="cookiepassword" size="20" value="$cookiepassword" />~, 1097 name => 'cookiepassword', 1098 validate => 'text', 1099 }, 1100 { 1101 description => qq~<label for="cookiesession_name">$admin_txt{'353a'}</label>~, 1102 input_html => qq~<input type="text" name="cookiesession_name" id="cookiesession_name" size="20" value="$cookiesession_name" />~, 1103 name => 'cookiesession_name', 1104 validate => 'text', 1105 }, 1106 { 1107 description => qq~<label for="cookietsort">$admin_txt{'353b'}</label>~, 1108 input_html => qq~<input type="text" name="cookietsort" id="cookietsort" size="20" value="$cookietsort" />~, 1109 name => 'cookietsort', 1110 validate => 'text', 1111 }, 1112 { 1113 description => qq~<label for="cookieview">$admin_txt{'353e'}</label>~, 1114 input_html => qq~<input type="text" name="cookieview" id="cookieview" size="20" value="$cookieview" />~, 1115 name => 'cookieview', 1116 validate => 'text', 1117 }, 1118 { 1119 description => qq~<label for="cookieviewtime">$admin_txt{'353f'}</label>~, 1120 input_html => qq~<input type="text" name="cookieviewtime" id="cookieviewtime" size="20" value="$cookieviewtime" />~, 1121 name => 'cookieviewtime', 1122 validate => 'number', 1123 }, 1124 { 1125 description => qq~<label for="screenlogin">$admin_txt{'432b'}</label>~, 1126 input_html => qq~<input type="checkbox" name="screenlogin" id="screenlogin" value="1" ${ischecked($screenlogin)}/>~, 1127 name => 'screenlogin', 1128 validate => 'boolean', 1129 }, 1130 { 1131 header => $settings_txt{'registration'}, 1132 }, 1133 { 1134 description => qq~<label for="regtype">$rtype_text{'4'}</label>~, 1135 input_html => qq~ 1136 <select name="regtype" id="regtype" size="1"> 1137 <option value="0" ${isselected($regtype == 0)}>$rtype_text{'0'}</option> 1138 <option value="1" ${isselected($regtype == 1)}>$rtype_text{'1'}</option> 1139 <option value="2" ${isselected($regtype == 2)}>$rtype_text{'2'}</option> 1140 <option value="3" ${isselected($regtype == 3)}>$rtype_text{'3'}</option> 1141 </select>~, 1142 name => 'regtype', 1143 validate => 'number', 1144 }, 1145 { 1146 description => qq~<label for="preregspan">$prereg_txt{'11'}</label>~, 1147 input_html => qq~<input type="text" name="preregspan" id="preregspan" size="5" value="$preregspan" />~, 1148 name => 'preregspan', 1149 validate => 'number', 1150 depends_on => ['regtype!=0', 'regtype!=3'], 1151 }, 1152 { 1153 description => qq~<label for="emailpassword">$admin_txt{'702'}</label>~, 1154 input_html => qq~<input type="checkbox" name="emailpassword" id="emailpassword" value="1"${ischecked($emailpassword)} />~, 1155 name => 'emailpassword', 1156 validate => 'boolean', 1157 }, 1158 { 1159 description => qq~<label for="emailwelcome">$admin_txt{'619'}</label>~, 1160 input_html => qq~<input type="checkbox" name="emailwelcome" id="emailwelcome" value="1"${ischecked($emailwelcome)} />~, 1161 name => 'emailwelcome', 1162 validate => 'boolean', 1163 depends_on => ['!emailpassword'], 1164 }, 1165 { 1166 description => qq~<label for="name_cannot_be_userid">$register_txt{'768'}</label>~, 1167 input_html => qq~<input type="checkbox" name="name_cannot_be_userid" id="name_cannot_be_userid" value="1"${ischecked($name_cannot_be_userid)} />~, 1168 name => 'name_cannot_be_userid', 1169 validate => 'boolean', 1170 }, 1171 { 1172 description => qq~<label for="birthday_on_reg">$register_txt{'770'}</label>~, 1173 input_html => qq~ 1174 <select name="birthday_on_reg" id="birthday_on_reg" size="1"> 1175 <option value="0">$register_txt{'771'}</option> 1176 <option value="1"${isselected($birthday_on_reg == 1)}>$register_txt{'772'}</option> 1177 <option value="2"${isselected($birthday_on_reg == 2)}>$register_txt{'773'}</option> 1178 </select>~, 1179 name => 'birthday_on_reg', 1180 validate => 'number,null', 1181 }, 1182 { 1183 description => qq~<label for="gender_on_reg">$register_txt{'gender_reg'}</label>~, 1184 input_html => qq~ 1185 <select name="gender_on_reg" id="gender_on_reg" size="1"> 1186 <option value="0">$register_txt{'771'}</option> 1187 <option value="1"${isselected($gender_on_reg == 1)}>$register_txt{'772'}</option> 1188 <option value="2"${isselected($gender_on_reg == 2)}>$register_txt{'773'}</option> 1189 </select>~, 1190 name => 'gender_on_reg', 1191 validate => 'number,null', 1192 }, 1193 { 1194 description => qq~<label for="pwstrengthmeter_scores">$admin_txt{'710'}</label>~, 1195 input_html => qq~<input type="text" name="pwstrengthmeter_scores" id="pwstrengthmeter_scores" size="20" value="$pwstrengthmeter_scores" />~, 1196 name => 'pwstrengthmeter_scores', 1197 validate => 'text', 1198 }, 1199 { 1200 description => qq~<label for="pwstrengthmeter_common">$admin_txt{'711'}</label>~, 1201 input_html => qq~<input type="text" name="pwstrengthmeter_common" id="pwstrengthmeter_common" size="20" value='$pwstrengthmeter_common' />~, 1202 name => 'pwstrengthmeter_common', 1203 validate => 'text', 1204 }, 1205 { 1206 description => qq~<label for="pwstrengthmeter_minchar">$admin_txt{'712'}</label>~, 1207 input_html => qq~<input type="text" name="pwstrengthmeter_minchar" id="pwstrengthmeter_minchar" size="5" value="$pwstrengthmeter_minchar" />~, 1208 name => 'pwstrengthmeter_minchar', 1209 validate => 'number', 1210 }, 1211 { 1212 description => qq~<label for="RegReasonSymbols">$admin_txt{'regreason'}</label>~, 1213 input_html => qq~<input type="text" name="RegReasonSymbols" id="RegReasonSymbols" size="5" value="$RegReasonSymbols" />~, 1214 name => 'RegReasonSymbols', 1215 validate => 'number', 1216 depends_on => ['regtype==1'], 1217 }, 1218 { 1219 description => qq~<label for="RegAgree">$admin_txt{'584'}</label>~, 1220 input_html => qq~ 1221 <select name="RegAgree" id="RegAgree" size="1"> 1222 <option value="0" ${isselected($RegAgree == 0)}>$admin_txt{'584a'}</option> 1223 <option value="1" ${isselected($RegAgree == 1)}>$admin_txt{'584b'}</option> 1224 <option value="2" ${isselected($RegAgree == 2)}>$admin_txt{'584c'}</option> 1225 </select>~, 1226 name => 'RegAgree', 1227 validate => 'number', 1228 depends_on => ['regtype!=0'], 1229 }, 1230 { 1231 description => qq~<label for="imp_email_check">$admin_txt{'imp_email_check'}$no_imp_email_check</label>~, 1232 input_html => qq~<input type="checkbox" name="imp_email_check" id="imp_email_check" value="1"${ischecked($imp_email_check)}$imp_email_check_dis />~, 1233 name => 'imp_email_check', 1234 validate => 'boolean', 1235 }, 1236 { 1237 description => 1238 qq~<label for="nomailspammer">$admin_txt{'nospammer'}</label>~, 1239 input_html => 1240qq~<input type="checkbox" name="nomailspammer" id="nomailspammer" value="1" ${ischecked($nomailspammer)} />~, 1241 name => 'nomailspammer', 1242 validate => 'boolean', 1243 depends_on => ['regtype==1'], 1244 }, 1245 { 1246 header => $settings_txt{'memberlist'}, 1247 }, 1248 { 1249 description => qq~<label for="ML_Allowed">$admin_txt{'mlview'}</label>~, 1250 input_html => qq~ 1251<select name="ML_Allowed" id="ML_Allowed"> 1252 <option value="0" ${isselected($ML_Allowed == 0)}>$userlevel_txt{'all'}</option> 1253 <option value="1" ${isselected($ML_Allowed == 1)}>$userlevel_txt{'members'}</option> 1254 <option value="2" ${isselected($ML_Allowed == 2)}>$userlevel_txt{'modgmodadmin'}</option> 1255 <option value="4" ${isselected($ML_Allowed == 4)}>$userlevel_txt{'fmodgmodadmin'}</option> 1256 <option value="3" ${isselected($ML_Allowed == 3)}>$userlevel_txt{'gmodadmin'}</option> 1257</select>~, 1258 name => 'ML_Allowed', 1259 validate => 'number', 1260 }, 1261 { 1262 description => qq~<label for="defaultml">$admin_txt{'912'}</label>~, 1263 input_html => qq~ 1264<select name="defaultml" id="defaultml"> 1265 <option value="username" ${isselected($defaultml eq 'username')}>$admin_txt{'914'}</option> 1266 <option value="position" ${isselected($defaultml eq 'position')}>$admin_txt{'911'}</option> 1267 <option value="posts" ${isselected($defaultml eq 'posts') }>$admin_txt{'910'}</option> 1268 <option value="regdate" ${isselected($defaultml eq 'regdate') }>$admin_txt{'909'}</option> 1269</select>~, 1270 name => 'defaultml', 1271 validate => 'text', 1272 }, 1273 { 1274 description => qq~<label for="TopAmmount">$admin_txt{'373'}</label>~, 1275 input_html => qq~<input type="text" size="5" name="TopAmmount" id="TopAmmount" value="$TopAmmount" />~, 1276 name => 'TopAmmount', 1277 validate => 'number', 1278 }, 1279 { 1280 description => qq~<label for="barmaxnumb">$admin_txt{'902'} $admin_txt{'107'}</label>~, 1281 input_html => qq~<input type="text" name="barmaxnumb" id="barmaxnumb" size="5" value="$barmaxnumb" /> $admin_txt{'904'} <input type="radio" name="barmaxdepend" value="0"${ischecked(!$barmaxdepend)}/> $admin_txt{'905'} <input type="radio" name="barmaxdepend" value="1"${ischecked($barmaxdepend)}/> $admin_txt{'903'}~, 1282 name => 'barmaxdepend', 1283 validate => 'boolean', 1284 }, 1285 { 1286 description => qq~<label for="showuserpicml">$admin_txt{'userpicml'}</label>~, 1287 input_html => qq~<input type="checkbox" name="showuserpicml" id="showuserpicml" value="1"${ischecked($showuserpicml)} />~, 1288 name => 'showuserpicml', 1289 validate => 'boolean', 1290 }, 1291 { 1292 description => qq~<label for="group_stars_ml">$admin_txt{'group_stars_ml'}</label>~, 1293 input_html => qq~<input type="checkbox" name="group_stars_ml" id="group_stars_ml" value="1"${ischecked($group_stars_ml)} />~, 1294 name => 'group_stars_ml', 1295 validate => 'boolean', 1296 }, 1297 ] 1298}, 1299{ 1300 name => $settings_txt{'staff'}, 1301 id => 'staff', 1302 items => [ 1303 { 1304 header => $settings_txt{'staff'}, 1305 }, 1306 # Multi-delete/multi-admin 1307 { 1308 description => qq~<label for="mdadmin">$mdintxt{'1'} $admin_txt{'684'}?</label>~, 1309 input_html => qq~<input type="checkbox" name="mdadmin" id="mdadmin" value="1"${ischecked($mdadmin)} />~, 1310 name => 'mdadmin', 1311 validate => 'boolean', 1312 }, 1313 { 1314 description => qq~<label for="mdglobal">$mdintxt{'1'} $admin_txt{'684a'}?</label>~, 1315 input_html => qq~<input type="checkbox" name="mdglobal" id="mdglobal" value="1"${ischecked($mdglobal)} />~, 1316 name => 'mdglobal', 1317 validate => 'boolean', 1318 }, 1319 { 1320 description => qq~<label for="mdfmod">$mdintxt{'1'} $admin_txt{'684b'}?</label>~, 1321 input_html => qq~<input type="checkbox" name="mdfmod" id="mdfmod" value="1"${ischecked($mdfmod)} />~, 1322 name => 'mdfmod', 1323 validate => 'boolean', 1324 }, 1325 { 1326 description => qq~<label for="mdmod">$mdintxt{'1'} $admin_txt{'63d'}?</label>~, 1327 input_html => qq~<input type="checkbox" name="mdmod" id="mdmod" value="1"${ischecked($mdmod)} />~, 1328 name => 'mdmod', 1329 validate => 'boolean', 1330 }, 1331 { 1332 description => qq~<label for="adminbin">$mdintxt{'4'}</label>~, 1333 input_html => qq~<input type="checkbox" name="adminbin" id="adminbin" value="1"${ischecked($adminbin)} />~, 1334 name => 'adminbin', 1335 validate => 'boolean', 1336 }, 1337 { 1338 description => qq~<label for="adminview">$matxt{'5'}</label>~, 1339 input_html => qq~ 1340<select name="adminview" id="adminview" size="1"> 1341 <option value="0" ${isselected($adminview == 0)}>$matxt{'1'}</option> 1342 <option value="1" ${isselected($adminview == 1)}>$matxt{'2'}</option> 1343 <option value="2" ${isselected($adminview == 2)}>$matxt{'3'}</option> 1344 <option value="3" ${isselected($adminview == 3)}>$matxt{'4'}</option> 1345</select>~, 1346 name => 'adminview', 1347 validate => 'number', 1348 }, 1349 { 1350 description => qq~<label for="gmodview">$matxt{'6'}</label>~, 1351 input_html => qq~ 1352<select name="gmodview" id="gmodview" size="1"> 1353 <option value="0" ${isselected($gmodview == 0)}>$matxt{'1'}</option> 1354 <option value="1" ${isselected($gmodview == 1)}>$matxt{'2'}</option> 1355 <option value="2" ${isselected($gmodview == 2)}>$matxt{'3'}</option> 1356 <option value="3" ${isselected($gmodview == 3)}>$matxt{'4'}</option> 1357</select>~, 1358 name => 'gmodview', 1359 validate => 'number', 1360 }, 1361 { 1362 description => qq~<label for="fmodview">$matxt{'6a'}</label>~, 1363 input_html => qq~ 1364<select name="fmodview" id="fmodview" size="1"> 1365 <option value="0" ${isselected($fmodview == 0)}>$matxt{'1'}</option> 1366 <option value="1" ${isselected($fmodview == 1)}>$matxt{'2'}</option> 1367 <option value="2" ${isselected($fmodview == 2)}>$matxt{'3'}</option> 1368 <option value="3" ${isselected($fmodview == 3)}>$matxt{'4'}</option> 1369</select>~, 1370 name => 'fmodview', 1371 validate => 'number', 1372 }, 1373 { 1374 description => qq~<label for="modview">$matxt{'7'}</label>~, 1375 input_html => qq~ 1376<select name="modview" id="modview" size="1"> 1377 <option value="0" ${isselected($modview == 0)}>$matxt{'1'}</option> 1378 <option value="1" ${isselected($modview == 1)}>$matxt{'2'}</option> 1379 <option value="2" ${isselected($modview == 2)}>$matxt{'3'}</option> 1380 <option value="3" ${isselected($modview == 3)}>$matxt{'4'}</option> 1381</select>~, 1382 name => 'modview', 1383 validate => 'number', 1384 }, 1385 { 1386 description => qq~<label for="enable_MCstatusStealth">$admin_txt{'stealth'}</label>~, 1387 input_html => qq~<input type="checkbox" name="enable_MCstatusStealth" id="enable_MCstatusStealth" value="1"${ischecked($enable_MCstatusStealth)}/>~, 1388 name => 'enable_MCstatusStealth', 1389 validate => 'boolean', 1390 }, 1391 { 1392 description => qq~<label for="bypass_lock_perm">$userlevel_txt{'allowbypass'}</label>~, 1393 input_html => qq~ 1394<select name="bypass_lock_perm" id="bypass_lock_perm" size="1"> 1395 <option value="0" ${isselected($bypass_lock_perm eq '0')}>$userlevel_txt{'none'}</option> 1396 <option value="mod" ${isselected($bypass_lock_perm eq 'mod')}>$userlevel_txt{'modgmodadmin'}</option> 1397 <option value="fmod" ${isselected($bypass_lock_perm eq 'fmod')}>$userlevel_txt{'fmodgmodadmin'}</option> 1398 <option value="gmod" ${isselected($bypass_lock_perm eq 'gmod')}>$userlevel_txt{'gmodadmin'}</option> 1399 <option value="fa" ${isselected($bypass_lock_perm eq 'fa')}>$userlevel_txt{'admin'}</option> 1400</select>~, 1401 name => 'bypass_lock_perm', 1402 validate => 'text', 1403 }, 1404 { 1405 description => qq~<label for="staff_reason">$admin_txt{'staff_reason'}</label>~, 1406 input_html => qq~<input type="checkbox" name="staff_reason" id="staff_reason" value="1"${ischecked($staff_reason)} />~, 1407 name => 'staff_reason', 1408 validate => 'boolean', 1409 }, 1410 { 1411 description => qq~<label for="maxadminlog">$admin_txt{'maxadminlog'}</label>~, 1412 input_html => qq~<input type="text" name="maxadminlog" id="maxadminlog" size="5" value="$maxadminlog" />~, 1413 name => 'maxadminlog', 1414 validate => 'number', 1415 }, 1416 ], 1417}, 1418{ 1419 name => $settings_txt{'privatemessage'}, 1420 id => 'privatemessage', 1421 items => [ 1422 { 1423 header => $settings_txt{'pmgeneral'}, 1424 }, 1425 { 1426 description => qq~<label for="PM_level">$imtxt{'enablePM'}</label>~, 1427 input_html => qq~ 1428<select name="PM_level" id="PM_level"> 1429 <option value="0" ${isselected($PM_level == 0)}>$userlevel_txt{'none'}</option> 1430 <option value="1" ${isselected($PM_level == 1)}>$userlevel_txt{'members'}</option> 1431 <option value="2" ${isselected($PM_level == 2)}>$userlevel_txt{'modgmodadmin'}</option> 1432 <option value="4" ${isselected($PM_level == 4)}>$userlevel_txt{'fmodgmodadmin'}</option> 1433 <option value="3" ${isselected($PM_level == 3)}>$userlevel_txt{'gmodadmin'}</option> 1434</select>~, 1435 name => 'PM_level', 1436 validate => 'number', 1437 }, 1438 { 1439 description => qq~<label for="numposts">$imtxt{'75'}</label>~, 1440 input_html => qq~<input type="text" name="numposts" id="numposts" size="5" value="$numposts" />~, 1441 name => 'numposts', 1442 validate => 'number', 1443 depends_on => ['PM_level!=0'], 1444 }, 1445 { 1446 description => qq~<label for="imspam">$imtxt{'52'}</label>~, 1447 input_html => qq~<input type="text" name="imspam" id="imspam" size="5" value="$imspam" />~, 1448 name => 'imspam', 1449 validate => 'number,null', 1450 depends_on => ['PM_level!=0'], 1451 }, 1452 { 1453 description => qq~<label for="enable_PMsearch">$imtxt{'enable_PMsearch'}</label>~, 1454 input_html => qq~<input type="text" name="enable_PMsearch" id="enable_PMsearch" size="5" value="$enable_PMsearch" />~, 1455 name => 'enable_PMsearch', 1456 validate => 'number,null', 1457 depends_on => ['PM_level!=0'], 1458 }, 1459 { 1460 description => qq~<label for="send_welcomeim">$imtxt{'33'}</label>~, 1461 input_html => qq~<input type="checkbox" name="send_welcomeim" id="send_welcomeim" value="1"${ischecked($send_welcomeim)} />~, 1462 name => 'send_welcomeim', 1463 validate => 'boolean', 1464 depends_on => ['PM_level!=0'], 1465 }, 1466 { 1467 description => qq~<label for="sendname">$imtxt{'34'}</label>~, 1468 input_html => qq~<input type="text" name="sendname" id="sendname" size="35" value="$sendname" />~, 1469 name => 'sendname', 1470 validate => 'text,null', 1471 depends_on => ['PM_level!=0', 'send_welcomeim'], 1472 }, 1473 { 1474 description => qq~<label for="imsubject">$imtxt{'36'}</label>~, 1475 input_html => qq~<input type="text" name="imsubject" id="imsubject" size="35" value="$imsubject" />~, 1476 name => 'imsubject', 1477 validate => 'text,null', 1478 depends_on => ['PM_level!=0', 'send_welcomeim'], 1479 }, 1480 { 1481 description => qq~<label for="imtext">$imtxt{'35'}</label>~, 1482 input_html => qq~<textarea name="imtext" id="imtext" cols="35" rows="5">$imtext</textarea>~, 1483 name => 'imtext', 1484 validate => 'fulltext,null', 1485 depends_on => ['PM_level!=0', 'send_welcomeim'], 1486 }, 1487 { 1488 header => $settings_txt{'bmessages'}, 1489 }, 1490 { 1491 description => qq~<label for="PMenableBm_level">$imtxt{'87'}</label>~, 1492 input_html => qq~ 1493<select name="PMenableBm_level" id="PMenableBm_level"> 1494 <option value="0" ${isselected($PMenableBm_level == 0)}>$userlevel_txt{'none'}</option> 1495 <option value="1" ${isselected($PMenableBm_level == 1)}>$userlevel_txt{'modgmodadmin'}</option> 1496 <option value="4" ${isselected($PMenableBm_level == 4)}>$userlevel_txt{'fmodgmodadmin'}</option> 1497 <option value="2" ${isselected($PMenableBm_level == 2)}>$userlevel_txt{'gmodadmin'}</option> 1498 <option value="3" ${isselected($PMenableBm_level == 3)}>$userlevel_txt{'admin'}</option> 1499</select>~, 1500 name => 'PMenableBm_level', 1501 validate => 'number', 1502 depends_on => ['PM_level!=0'], 1503 }, 1504 { 1505 header => $settings_txt{'alertmessages'}, 1506 }, 1507 { 1508 description => qq~<label for="PMenableGuestButton">$imtxt{'88'}</label>~, 1509 input_html => qq~<input type="checkbox" name="PMenableGuestButton" id="PMenableGuestButton" value="1"${ischecked($PMenableGuestButton)} />~, 1510 name => 'PMenableGuestButton', 1511 validate => 'boolean', 1512 depends_on => ['PM_level!=0','$PMenableBm_level!=0'], 1513 }, 1514 { 1515 description => qq~<label for="PMenableAlertButton">$imtxt{'89'}</label>~, 1516 input_html => qq~<input type="checkbox" name="PMenableAlertButton" id="PMenableAlertButton" value="1"${ischecked($PMenableAlertButton)} />~, 1517 name => 'PMenableAlertButton', 1518 validate => 'boolean', 1519 depends_on => ['PM_level!=0','$PMenableBm_level!=0'], 1520 }, 1521 { 1522 description => qq~<label for="PMAlertButtonGuests">$imtxt{'90'}</label>~, 1523 input_html => qq~<input type="checkbox" name="PMAlertButtonGuests" id="PMAlertButtonGuests" value="1"${ischecked($PMAlertButtonGuests)} />~, 1524 name => 'PMAlertButtonGuests', 1525 validate => 'boolean', 1526 depends_on => ['PMenableAlertButton', 'PM_level!=0','$PMenableBm_level!=0'], 1527 }, 1528 1529 1530 { 1531 header => $settings_txt{'members'}, 1532 }, 1533 { 1534 description => qq~<label for="enable_imlimit">$imtxt{'06'}</label>~, 1535 input_html => qq~<input type="checkbox" name="enable_imlimit" id="enable_imlimit" value="1"${ischecked($enable_imlimit)} />~, 1536 name => 'enable_imlimit', 1537 validate => 'boolean', 1538 depends_on => ['PM_level!=0'], 1539 }, 1540 { 1541 description => qq~<label for="numobox">$imtxt{'03'} $imtxt{'85'}</label>~, 1542 input_html => qq~<input type="text" name="numobox" id="numobox" size="5" value="$numobox" />~, 1543 name => 'numobox', 1544 validate => 'number,null', 1545 depends_on => ['enable_imlimit', 'PM_level!=0'], 1546 }, 1547 { 1548 description => qq~<label for="numibox">$imtxt{'03'} $imtxt{'84'}</label>~, 1549 input_html => qq~<input type="text" name="numibox" id="numibox" size="5" value="$numibox" />~, 1550 name => 'numibox', 1551 validate => 'number,null', 1552 depends_on => ['enable_imlimit', 'PM_level!=0'], 1553 1554 }, 1555 { 1556 description => qq~<label for="numstore">$imtxt{'03'} $imtxt{'46'}</label>~, 1557 input_html => qq~<input type="text" name="numstore" id="numstore" size="5" value="$numstore" />~, 1558 name => 'numstore', 1559 validate => 'number,null', 1560 depends_on => ['enable_imlimit', 'PM_level!=0'], 1561 }, 1562 { 1563 description => qq~<label for="numdraft">$imtxt{'03'} $imtxt{'draft'}</label>~, 1564 input_html => qq~<input type="text" name="numdraft" id="numdraft" size="5" value="$numdraft" />~, 1565 name => 'numdraft', 1566 validate => 'number,null', 1567 depends_on => ['enable_imlimit', 'PM_level!=0'], 1568 }, 1569 { 1570 description => qq~<label for="PMenable_cc">$imtxt{'allowcc'}</label>~, 1571 input_html => qq~<input type="checkbox" name="PMenable_cc" id="PMenable_cc" value="1"${ischecked($PMenable_cc)} />~, 1572 name => 'PMenable_cc', 1573 validate => 'boolean', 1574 depends_on => ['PM_level!=0'], 1575 1576 }, 1577 { 1578 description => qq~<label for="PMenable_bcc">$imtxt{'allowbcc'}</label>~, 1579 input_html => qq~<input type="checkbox" name="PMenable_bcc" id="PMenable_bcc" value="1"${ischecked($PMenable_bcc)} />~, 1580 name => 'PMenable_bcc', 1581 validate => 'boolean', 1582 depends_on => ['PM_level!=0'], 1583 }, 1584 { 1585 description => qq~<label for="enable_notifications_PM">$imtxt{'381'}</label>~, 1586 input_html => qq~<input type="checkbox" name="enable_notifications_PM" id="enable_notifications_PM" value="1"${ischecked((($enable_notifications == 2 || $enable_notifications == 3) ? 1 : 0))} />~, 1587 name => 'enable_notifications_PM', 1588 validate => 'boolean', 1589 depends_on => ['PM_level!=0'], 1590 }, 1591 { 1592 description => qq~<label for="enable_storefolders">$imtxt{'extrastore'}</label>~, 1593 input_html => qq~<input type="text" name="enable_storefolders" id="enable_storefolders" size="5" value="$enable_storefolders" />~, 1594 name => 'enable_storefolders', 1595 validate => 'number,null', 1596 depends_on => ['PM_level!=0'], 1597 }, 1598 { 1599 description => qq~<label for="MaxIMMessLen">$admin_txt{'498c'}</label>~, 1600 input_html => qq~<input type="text" size="5" name="MaxIMMessLen" id="MaxIMMessLen" value="$MaxIMMessLen" />~, 1601 name => 'MaxIMMessLen', 1602 validate => 'number', 1603 }, 1604 { 1605 description => 1606 qq~<label for="AdMaxIMMessLen">$admin_txt{'498d'}</label>~, 1607 input_html => 1608qq~<input type="text" size="5" name="AdMaxIMMessLen" id="AdMaxIMMessLen" value="$AdMaxIMMessLen" />~, 1609 name => 'AdMaxIMMessLen', 1610 validate => 'number', 1611 }, 1612 1613 { 1614 header => $settings_txt{'mycenter'}, 1615 }, 1616 { 1617 description => qq~<label for="enable_MCaway">$imtxt{'away'}</label>~, 1618 input_html => qq~ 1619<select name="enable_MCaway" id="enable_MCaway"> 1620 <option value="0" ${isselected($enable_MCaway == 0)}>$userlevel_txt{'none'}</option> 1621 <option value="1" ${isselected($enable_MCaway == 1)}>$userlevel_txt{'staff'}</option> 1622 <option value="2" ${isselected($enable_MCaway == 2)}>$userlevel_txt{'staffall'}</option> 1623 <option value="3" ${isselected($enable_MCaway == 3)}>$userlevel_txt{'members'}</option> 1624</select><br />~, 1625 name => 'enable_MCaway', 1626 validate => 'number', 1627 depends_on => ['PM_level!=0'], 1628 }, 1629 { 1630 description => qq~<label for="MaxAwayLen">$admin_txt{'689a'}</label>~, 1631 input_html => qq~<input type="text" name="MaxAwayLen" id="MaxAwayLen" size="5" value="$MaxAwayLen" />~, 1632 name => 'MaxAwayLen', 1633 validate => 'number,null', 1634 depends_on => ['enable_MCaway!=0', 'PM_level!=0'], 1635 }, 1636 ], 1637}, 1638); 1639 1640# Routine to save them 1641sub SaveSettings { 1642 my %settings = @_; 1643 1644 # Validate forum_start stuff 1645 foreach (qw(forumstart_month forumstart_day forumstart_year forumstart_hour forumstart_minute forumstart_secund)) { 1646 $FORM{$_} =~ s/\D//gsm; 1647 } 1648 my $forumstart_month = $FORM{'forumstart_month'}; 1649 my $forumstart_day = $FORM{'forumstart_day'}; 1650 my $forumstart_year = $FORM{'forumstart_year'}; 1651 my $forumstart_hour = $FORM{'forumstart_hour'}; 1652 my $forumstart_minute = $FORM{'forumstart_minute'}; 1653 my $forumstart_secund = $FORM{'forumstart_secund'}; 1654 my $max_days = 31; 1655 if($forumstart_month == 4 || $forumstart_month == 6 || $forumstart_month == 9 || $forumstart_month == 11) { 1656 $max_days = 30; 1657 } elsif($forumstart_month == 2 && $forumstart_year % 4 == 0 && $forumstart_year != 0) { 1658 $max_days = 29; 1659 } elsif($forumstart_month == 2 && ($forumstart_year % 4 != 0 || $forumstart_year == 0)) { 1660 $max_days = 28; 1661 } 1662 if ($forumstart_day > $max_days) { $forumstart_day = $max_days;} 1663 $forumstart = qq~$forumstart_month/$forumstart_day/$forumstart_year $maintxt{'107'} $forumstart_hour:$forumstart_minute:$forumstart_secund~; 1664 1665 # Validate Timezone 1666 if ( $enabletz ) { 1667 if ( $FORM{'default_tz'} eq '-') { 1668 $default_tz = 'UTC'; 1669 } 1670 else { $default_tz = $FORM{'default_tz'}; } 1671 } 1672 else { $default_tz = 'UTC'; } 1673 1674 $timeoffset = $FORM{'usertimesign'} =~ /^-$/sm ? q{-} : q{}; 1675 $timeoffset .= $FORM{'usertimehour'} =~ /^\d+$/sm ? $FORM{'usertimehour'} : '0'; 1676 $timeoffset .= q{.}; 1677 $timeoffset .= $FORM{'usertimemin'} =~ /^\d+$/sm ? $FORM{'usertimemin'} : '0'; 1678 1679 # Get barmaxnumb 1680 $settings{'barmaxnumb'} = $FORM{'barmaxnumb'}; 1681 $settings{'barmaxnumb'} =~ s/\D//gsm; 1682 1683 # Fix guestaccess 1684 $settings{'guestaccess'} = !$settings{'guestaccess'} || 0; 1685 $settings{'imtext'} =~ s/\r(?=\n*)//gsm; 1686 $settings{'imtext'} =~ s~\n~<br />~gsm; 1687 1688 # Fix $pwstrengthmeter_common 1689 $settings{'pwstrengthmeter_common'} =~ s/'//gsm; #' make my syntax checker happy; 1690 if (($settings{'set_subjectMaxLength'} < 10 && $settings{'set_subjectMaxLength'} != 0) || $settings{'set_subjectMaxLength'} > 255) { fatal_error('invalid_value', "set_subjectMaxLength ($admin_txt{'498a'})"); } 1691 1692 # Convert unwanted tags in Board Name 1693 ToHTML($settings{'mbname'}); 1694 1695 # Upload default avatar 1696 $cur_default_userpic = $FORM{'cur_default_userpic'}; 1697 if ( $settings{'default_userpic'} ne q{} ) { 1698 $settings{'default_userpic'} = UploadFile('default_userpic', 'Templates/Forum/default', 'png jpg jpeg gif', '250', '0'); 1699 if ( $cur_default_userpic ne 'nn.gif' ) { 1700 unlink "$htmldir/Templates/Forum/default/$cur_default_userpic"; 1701 } 1702 } 1703 else { 1704 $settings{'default_userpic'} = $cur_default_userpic; 1705 } 1706 1707 # Settings.pm stuff 1708 SaveSettingsTo('Settings.pm', %settings); 1709 return; 1710} 1711 17121;