[TASK] Allow multiple extractor services with the same priority
[Packages/TYPO3.CMS.git] / typo3 / sysext / extensionmanager / Classes / Domain / Repository / RepositoryRepository.php
1 <?php
2 namespace TYPO3\CMS\Extensionmanager\Domain\Repository;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 /**
18 * A repository for extension repositories
19 * @internal This class is a specific domain repository implementation and is not part of the Public TYPO3 API.
20 */
21 class RepositoryRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
22 {
23 /**
24 * Do not include pid in queries
25 */
26 public function initializeObject()
27 {
28 /** @var \TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface $defaultQuerySettings */
29 $defaultQuerySettings = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface::class);
30 $defaultQuerySettings->setRespectStoragePage(false);
31 $this->setDefaultQuerySettings($defaultQuerySettings);
32 }
33
34 /**
35 * Updates ExtCount and lastUpdated in Repository eg after import
36 *
37 * @param int $extCount
38 * @param int $uid
39 */
40 public function updateRepositoryCount($extCount, $uid = 1)
41 {
42 $repository = $this->findByUid($uid);
43
44 $repository->setLastUpdate(new \DateTime());
45 $repository->setExtensionCount((int)$extCount);
46
47 $this->update($repository);
48 }
49
50 /**
51 * Find main typo3.org repository
52 *
53 * @return \TYPO3\CMS\Extensionmanager\Domain\Model\Repository
54 */
55 public function findOneTypo3OrgRepository()
56 {
57 $allRepositories = $this->findAll();
58 $typo3OrgRepository = null;
59 foreach ($allRepositories as $repository) {
60 /** @var \TYPO3\CMS\Extensionmanager\Domain\Model\Repository $repository */
61 if ($repository->getTitle() === 'TYPO3.org Main Repository') {
62 $typo3OrgRepository = $repository;
63 break;
64 }
65 }
66 return $typo3OrgRepository;
67 }
68 }