Completed
Push — master ( 8b2251...7f9abc )
by
unknown
17:11 queued 13s
created

AspectTrait::hasSlugUniqueInSite()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 4
nc 3
nop 2
dl 0
loc 8
rs 10
c 1
b 0
f 0
1
<?php
2
declare(strict_types = 1);
3
namespace TYPO3\CMS\Core\Routing\Aspect;
4
5
/*
6
 * This file is part of the TYPO3 CMS project.
7
 *
8
 * It is free software; you can redistribute it and/or modify it under
9
 * the terms of the GNU General Public License, either version 2
10
 * of the License, or any later version.
11
 *
12
 * For the full copyright and license information, please read the
13
 * LICENSE.txt file that was distributed with this source code.
14
 *
15
 * The TYPO3 project - inspiring people to share!
16
 */
17
18
use TYPO3\CMS\Core\Utility\GeneralUtility;
19
20
trait AspectTrait
21
{
22
    protected function isSlugUniqueInSite(string $tableName, string $fieldName): bool
23
    {
24
        $configuration = $GLOBALS['TCA'][$tableName]['columns'][$fieldName]['config'] ?? null;
25
        return
26
            ($configuration['type'] ?? null) === 'slug'
27
            && GeneralUtility::inList($configuration['eval'] ?? '', 'uniqueInSite');
28
    }
29
30
    protected function hasSlugUniqueInSite(string $tableName, string ...$fieldNames): bool
31
    {
32
        foreach ($fieldNames as $fieldName) {
33
            if ($this->isSlugUniqueInSite($tableName, $fieldName)) {
34
                return true;
35
            }
36
        }
37
        return false;
38
    }
39
}
40