} return true; }); Validator::addExtension('username_not_banned', function ($attribute, $value, $parameters) { $bans = FluxBB\Models\Ban::all(); foreach ($bans as $cur_ban) { // TODO: utf8_strtolower()? Or maybe strcasecmp() if that supports UTF-8? if (!empty($cur_ban->username) && strtolower($value) == strtolower($cur_ban->username)) { return false; } } return true; }); Validator::addExtension('username_not_guest', function ($attribute, $value, $parameters) { return strcasecmp($value, 'Guest') && strcasecmp($value, trans('fluxbb::common.guest')); }); Validator::addExtension('username_not_reserved', function ($attribute, $value, $parameters) { return !str_contains($value, array('[', ']', '\'', '"')); }); Validator::addExtension('no_ip', function ($attribute, $value, $parameters) { return !preg_match('%[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}%', $value) && !preg_match('%((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))%', $value); }); Validator::addExtension('no_bbcode', function ($attribute, $value, $parameters) { return !preg_match('%(?:\\[/?(?:b|u|s|ins|del|em|i|h|colou?r|quote|code|img|url|email|list|\\*|topic|post|forum|user)\\]|\\[(?:img|url|quote|list)=)%i', $value); }); Validator::addExtension('not_censored', function ($attribute, $value, $parameters) { if (FluxBB\Models\Config::disabled('o_censoring')) { return true; } return FluxBB\Models\Censor::is_clean($username); });
$is_subscribed = isset($topic) && $topic->isUserSubscribed(); $subscr_checked = false; // If it's a preview //if (Input::has('preview')) //$subscr_checked = Input::has('subscribe'); // If auto subscribed /* else */ if (FluxBB\Models\User::current()->auto_notify == '1') { $subscr_checked = true; } elseif ($is_subscribed) { // If already subscribed to the topic $subscr_checked = true; } $checkboxes[] = '<label><input type="checkbox" name="subscribe" value="1" tabindex="' . $cur_index++ . '"' . ($subscr_checked ? ' checked="checked"' : '') . ' />' . ($is_subscribed ? trans('fluxbb::post.stay_subscribed') : trans('fluxbb::post.subscribe')) . '<br /></label>'; } } elseif (FluxBB\Models\Config::enabled('o_smilies')) { $checkboxes[] = '<label><input type="checkbox" name="hide_smilies" value="1" tabindex="' . $cur_index++ . '" />' . trans('fluxbb::post.hide_smilies') . '<br /></label>'; } ?> @if (!empty($checkboxes)) <fieldset> <legend>{{ trans('fluxbb::common.options') }}</legend> <?php echo implode("\n\t\t\t\t\t\t\t", $checkboxes) . "\n"; ?> </fieldset> @endif <p class="buttons"><input type="submit" name="submit" value="{{ trans('fluxbb::common.submit') }}" tabindex="<?php echo $cur_index++; ?>