TYPO3CMS
9.5
Main Page
Related Pages
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Variables
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Files
File List
File Members
All
$
d
e
r
u
Functions
Variables
$
e
r
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Pages
FolderIdentifierRestriction.php
Go to the documentation of this file.
1
<?php
2
declare(strict_types = 1);
3
namespace
TYPO3\CMS\Core\Resource\Search\QueryRestrictions
;
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\Database\ConnectionPool
;
19
use
TYPO3\CMS\Core\Database\Query\Expression\CompositeExpression
;
20
use
TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder
;
21
use
TYPO3\CMS\Core\Database\Query\Restriction\QueryRestrictionInterface
;
22
use
TYPO3\CMS\Core\Utility\GeneralUtility
;
23
28
class
FolderIdentifierRestriction
implements
QueryRestrictionInterface
29
{
33
private
$folderIdentifier
;
34
35
public
function
__construct
(
string
$folderIdentifier
)
36
{
37
$this->folderIdentifier =
$folderIdentifier
;
38
}
39
40
public
function
buildExpression
(array $queriedTables,
ExpressionBuilder
$expressionBuilder):
CompositeExpression
41
{
42
$constraints = [];
43
foreach
($queriedTables as $tableAlias => $tableName) {
44
if
($tableName !==
'sys_file'
) {
45
continue
;
46
}
47
$connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable($tableName);
48
$folderIdentifier
= $connection->createQueryBuilder()->escapeLikeWildcards($this->folderIdentifier);
49
$constraints[] = $expressionBuilder->
like
(
50
$tableAlias .
'.identifier'
,
51
$connection->quote(
$folderIdentifier
.
'%'
)
52
);
53
}
54
55
return
$expressionBuilder->
orX
(...$constraints);
56
}
57
}
TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder\like
string like(string $fieldName, $value)
Definition:
ExpressionBuilder.php:215
TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder
Definition:
ExpressionBuilder.php:33
TYPO3\CMS\Core\Database\Query\Restriction\QueryRestrictionInterface
Definition:
QueryRestrictionInterface.php:25
TYPO3\CMS\Core\Resource\Search\QueryRestrictions\FolderIdentifierRestriction
Definition:
FolderIdentifierRestriction.php:29
TYPO3\CMS\Core\Resource\Search\QueryRestrictions\FolderIdentifierRestriction\buildExpression
buildExpression(array $queriedTables, ExpressionBuilder $expressionBuilder)
Definition:
FolderIdentifierRestriction.php:39
TYPO3\CMS\Core\Database\Query\Expression\CompositeExpression
Definition:
CompositeExpression.php:23
TYPO3\CMS\Core\Resource\Search\QueryRestrictions\FolderIdentifierRestriction\$folderIdentifier
string $folderIdentifier
Definition:
FolderIdentifierRestriction.php:32
TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder\orX
CompositeExpression orX(... $expressions)
Definition:
ExpressionBuilder.php:80
TYPO3\CMS\Core\Resource\Search\QueryRestrictions
Definition:
ConsistencyRestriction.php:3
TYPO3\CMS\Core\Resource\Search\QueryRestrictions\FolderIdentifierRestriction\__construct
__construct(string $folderIdentifier)
Definition:
FolderIdentifierRestriction.php:34
TYPO3\CMS\Core\Database\ConnectionPool
Definition:
ConnectionPool.php:44
TYPO3\CMS\Core\Utility\GeneralUtility
Definition:
GeneralUtility.php:45
doxygen
typo3
sysext
core
Classes
Resource
Search
QueryRestrictions
FolderIdentifierRestriction.php
Generated on Tue Oct 5 2021 01:57:13 for TYPO3CMS by
1.8.18