@@ -228,7 +228,7 @@ |
||
228 | 228 | 'style' => Validator::parsedBody($request)->isInArrayKeys($this->styles())->integer('style'), |
229 | 229 | 'width' => Validator::parsedBody($request)->isBetween(self::MINIMUM_WIDTH, self::MAXIMUM_WIDTH)->integer('width'), |
230 | 230 | 'xref' => Validator::parsedBody($request)->isXref()->string('xref'), |
231 | - ])); |
|
231 | + ])); |
|
232 | 232 | } |
233 | 233 | |
234 | 234 | Auth::checkComponentAccess($this, ModuleChartInterface::class, $tree, $user); |
@@ -304,7 +304,8 @@ discard block |
||
304 | 304 | <li class="wt-initials-list-item d-flex"> |
305 | 305 | <?php if ($count > 0) : ?> |
306 | 306 | <a href="<?= e($this->listUrl($tree, ['alpha' => $letter, 'show_marnm' => $show_marnm, 'tree' => $tree->name()])) ?>" class="wt-initial px-1<?= $letter === $alpha ? ' active' : '' ?> '" title="<?= I18N::number($count) ?>"><?= $this->displaySurnameInitial((string) $letter) ?></a> |
307 | - <?php else : ?> |
|
307 | + <?php else { |
|
308 | + : ?> |
|
308 | 309 | <span class="wt-initial px-1 text-muted"><?= $this->displaySurnameInitial((string) $letter) ?></span> |
309 | 310 | |
310 | 311 | <?php endif ?> |
@@ -359,6 +360,7 @@ discard block |
||
359 | 360 | switch ($alpha) { |
360 | 361 | case '@': |
361 | 362 | $filter = static fn (string $x): bool => $x === Individual::NOMEN_NESCIO; |
363 | +} |
|
362 | 364 | break; |
363 | 365 | case ',': |
364 | 366 | $filter = static fn (string $x): bool => $x === ''; |
@@ -54,7 +54,8 @@ |
||
54 | 54 | RequestHandlerInterface $carry, |
55 | 55 | string|MiddlewareInterface $item, |
56 | 56 | ): RequestHandlerInterface { |
57 | - return new readonly class (carry: $carry, item: $item) implements RequestHandlerInterface { |
|
57 | + return new readonly class (carry: $carry, item: $item) implements RequestHandlerInterface |
|
58 | + { |
|
58 | 59 | /** |
59 | 60 | * @param class-string|MiddlewareInterface $item |
60 | 61 | */ |
@@ -1,20 +1,20 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | return array ( |
4 | - ' but the details are unknown' => ' but the details are unknown', |
|
5 | - '%H:%i:%s' => '%g:%i:%s %a', |
|
6 | - '%j %F %Y' => '%F %j, %Y', |
|
7 | - 'Asunción, Paraguay' => 'Asuncion, Paraguay', |
|
8 | - 'Bogotá, Colombia' => 'Bogota, Colombia', |
|
9 | - 'Ciudad Juárez, Mexico' => 'Ciudad Juarez, Mexico', |
|
10 | - 'Colonia Juárez, Mexico' => 'Colonia Juarez, Mexico', |
|
11 | - 'Curaçao' => 'Curacao', |
|
12 | - 'Córdoba, Argentina' => 'Cordoba, Argentina', |
|
13 | - 'Côte d’Ivoire' => 'Cote d’Ivoire', |
|
14 | - 'Réunion' => 'Reunion', |
|
15 | - 'Saint Barthélemy' => 'Saint Barthelemy', |
|
16 | - 'San José, Costa Rica' => 'San Jose, Costa Rica', |
|
17 | - 'São Paulo, Brazil' => 'Sao Paulo, Brazil', |
|
18 | - 'Tuxtla Gutiérrez, Mexico' => 'Tuxtla Gutierrez, Mexico', |
|
19 | - 'Åland Islands' => 'Aland Islands', |
|
4 | + ' but the details are unknown' => ' but the details are unknown', |
|
5 | + '%H:%i:%s' => '%g:%i:%s %a', |
|
6 | + '%j %F %Y' => '%F %j, %Y', |
|
7 | + 'Asunción, Paraguay' => 'Asuncion, Paraguay', |
|
8 | + 'Bogotá, Colombia' => 'Bogota, Colombia', |
|
9 | + 'Ciudad Juárez, Mexico' => 'Ciudad Juarez, Mexico', |
|
10 | + 'Colonia Juárez, Mexico' => 'Colonia Juarez, Mexico', |
|
11 | + 'Curaçao' => 'Curacao', |
|
12 | + 'Córdoba, Argentina' => 'Cordoba, Argentina', |
|
13 | + 'Côte d’Ivoire' => 'Cote d’Ivoire', |
|
14 | + 'Réunion' => 'Reunion', |
|
15 | + 'Saint Barthélemy' => 'Saint Barthelemy', |
|
16 | + 'San José, Costa Rica' => 'San Jose, Costa Rica', |
|
17 | + 'São Paulo, Brazil' => 'Sao Paulo, Brazil', |
|
18 | + 'Tuxtla Gutiérrez, Mexico' => 'Tuxtla Gutierrez, Mexico', |
|
19 | + 'Åland Islands' => 'Aland Islands', |
|
20 | 20 | ); |
@@ -57,52 +57,52 @@ |
||
57 | 57 | * Instead, the list from version 1.26 is copied here. |
58 | 58 | */ |
59 | 59 | public const array AI_ROBOTS = [ |
60 | - 'AI2Bot', |
|
61 | - 'Ai2Bot-Dolma', |
|
62 | - 'Amazonbot', |
|
63 | - 'anthropic-ai', |
|
64 | - 'Applebot', |
|
65 | - 'Applebot-Extended', |
|
66 | - 'Brightbot 1.0', |
|
67 | - 'Bytespider', |
|
68 | - 'CCBot', |
|
69 | - 'ChatGPT-User', |
|
70 | - 'Claude-Web', |
|
71 | - 'ClaudeBot', |
|
72 | - 'cohere-ai', |
|
73 | - 'cohere-training-data-crawler', |
|
74 | - 'Crawlspace', |
|
75 | - 'Diffbot', |
|
76 | - 'DuckAssistBot', |
|
77 | - 'FacebookBot', |
|
78 | - 'FriendlyCrawler', |
|
79 | - 'Google-Extended', |
|
80 | - 'GoogleOther', |
|
81 | - 'GoogleOther-Image', |
|
82 | - 'GoogleOther-Video', |
|
83 | - 'GPTBot', |
|
84 | - 'iaskspider/2.0', |
|
85 | - 'ICC-Crawler', |
|
86 | - 'ImagesiftBot', |
|
87 | - 'img2dataset', |
|
88 | - 'ISSCyberRiskCrawler', |
|
89 | - 'Kangaroo Bot', |
|
90 | - 'meta-externalagent', |
|
91 | - 'meta-externalfetcher', |
|
92 | - 'OAI-SearchBot', |
|
93 | - 'omgili', |
|
94 | - 'omgilibot', |
|
95 | - 'PanguBot', |
|
96 | - 'PerplexityBot', |
|
97 | - 'PetalBot', |
|
98 | - 'Scrapy', |
|
99 | - 'SemrushBot-OCOB', |
|
100 | - 'SemrushBot-SWA', |
|
101 | - 'Sidetrade indexer bot', |
|
102 | - 'Timpibot', |
|
103 | - 'VelenPublicWebCrawler', |
|
104 | - 'Webzio-Extended', |
|
105 | - 'YouBot', |
|
60 | + 'AI2Bot', |
|
61 | + 'Ai2Bot-Dolma', |
|
62 | + 'Amazonbot', |
|
63 | + 'anthropic-ai', |
|
64 | + 'Applebot', |
|
65 | + 'Applebot-Extended', |
|
66 | + 'Brightbot 1.0', |
|
67 | + 'Bytespider', |
|
68 | + 'CCBot', |
|
69 | + 'ChatGPT-User', |
|
70 | + 'Claude-Web', |
|
71 | + 'ClaudeBot', |
|
72 | + 'cohere-ai', |
|
73 | + 'cohere-training-data-crawler', |
|
74 | + 'Crawlspace', |
|
75 | + 'Diffbot', |
|
76 | + 'DuckAssistBot', |
|
77 | + 'FacebookBot', |
|
78 | + 'FriendlyCrawler', |
|
79 | + 'Google-Extended', |
|
80 | + 'GoogleOther', |
|
81 | + 'GoogleOther-Image', |
|
82 | + 'GoogleOther-Video', |
|
83 | + 'GPTBot', |
|
84 | + 'iaskspider/2.0', |
|
85 | + 'ICC-Crawler', |
|
86 | + 'ImagesiftBot', |
|
87 | + 'img2dataset', |
|
88 | + 'ISSCyberRiskCrawler', |
|
89 | + 'Kangaroo Bot', |
|
90 | + 'meta-externalagent', |
|
91 | + 'meta-externalfetcher', |
|
92 | + 'OAI-SearchBot', |
|
93 | + 'omgili', |
|
94 | + 'omgilibot', |
|
95 | + 'PanguBot', |
|
96 | + 'PerplexityBot', |
|
97 | + 'PetalBot', |
|
98 | + 'Scrapy', |
|
99 | + 'SemrushBot-OCOB', |
|
100 | + 'SemrushBot-SWA', |
|
101 | + 'Sidetrade indexer bot', |
|
102 | + 'Timpibot', |
|
103 | + 'VelenPublicWebCrawler', |
|
104 | + 'Webzio-Extended', |
|
105 | + 'YouBot', |
|
106 | 106 | ]; |
107 | 107 | |
108 | 108 | // Other bad robots - SEO optimisers, advertisers, etc. This list is shared with robots.txt. |
@@ -31,11 +31,11 @@ |
||
31 | 31 | // If the form is completed faster than this, then suspect a robot. |
32 | 32 | // private const float MINIMUM_FORM_TIME = 3.0; |
33 | 33 | /** |
34 | - * Generate a QR code image based on 2FA secret and return both. |
|
35 | - * |
|
36 | - * @param UserInterface $user |
|
37 | - * @return array<string, mixed> |
|
38 | - */ |
|
34 | + * Generate a QR code image based on 2FA secret and return both. |
|
35 | + * |
|
36 | + * @param UserInterface $user |
|
37 | + * @return array<string, mixed> |
|
38 | + */ |
|
39 | 39 | |
40 | 40 | public function genQRcode(UserInterface $user): array |
41 | 41 | { |
@@ -263,12 +263,12 @@ |
||
263 | 263 | return $this; |
264 | 264 | } |
265 | 265 | /** |
266 | - * Validate a supplied 2fa code |
|
267 | - * |
|
268 | - * @param string $codemfa |
|
269 | - * |
|
270 | - * @return bool |
|
271 | - */ |
|
266 | + * Validate a supplied 2fa code |
|
267 | + * |
|
268 | + * @param string $codemfa |
|
269 | + * |
|
270 | + * @return bool |
|
271 | + */ |
|
272 | 272 | public function checkMfaCode(string $codemfa): bool |
273 | 273 | { |
274 | 274 | /** @var string $secret */ |