FeatureRepository.php 2.25 KB
Newer Older
Christian Knauf's avatar
Christian Knauf committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

namespace T3o\Typo3Roadmap\Domain\Repository;

use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Database\Query\QueryBuilder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;

/**
 * This file is part of the TYPO3 CMS project.
 *
 * It is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License, either version 2
 * of the License, or any later version.
 *
 * For the full copyright and license information, please read the
 * LICENSE.txt file that was distributed with this source code.
 *
 * The TYPO3 project - inspiring people to share!
 */

/**
 * The repository for Features
 */
class FeatureRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{

    /**
     * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface
     */
    public function findAll()
    {
        $query = $this->createQuery();
        $query->getQuerySettings()->setRespectStoragePage(false);
        $query->setOrderings(['typo3releaseminorversion.version' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING]);
        return $query->execute();
    }

    /**
     * @param $setting
     * @param string $featureArea
     * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface
     */
45
    public function findByFilter($setting)
Christian Knauf's avatar
Christian Knauf committed
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
    {
        $query = $this->createQuery();
        $query->getQuerySettings()->setRespectStoragePage(false);
        $query->setOrderings(['typo3releaseminorversion.version' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING]);

        //We need at least min 1 filterConstraint
        $constraints[] = $query->greaterThan('uid', 0);

        if ($setting['majorversion'] != '') {
            $constraints[] = $query->equals('typo3releasemajorversion', (int)$setting['majorversion']);
        }
        if ($setting['minorversion'] != '') {
            $constraints[] = $query->equals('typo3releaseminorversion', (int)$setting['minorversion']);
        }

        if ($setting['featurearea'] != '') {
            $constraints[] = $query->equals('featureArea', (int)$setting['featurearea']);
        }

        $query->matching($query->logicalAnd($constraints));

        return $query->execute();
    }
}