Cleanup MetadataRepository

This commit is contained in:
Alexander Bigga 2021-11-22 17:59:45 +01:00
parent 4a0571c6bf
commit 63dc101e34
4 changed files with 37 additions and 27 deletions

View File

@ -73,6 +73,9 @@ class ListViewController extends AbstractController
*/
protected $metadataList = [];
/**
* @var MetadataRepository
*/
protected $metadataRepository;
/**
@ -295,7 +298,7 @@ class ListViewController extends AbstractController
*/
protected function loadConfig()
{
$metadataResult = $this->metadataRepository->getMetadataForListview($this->settings['pages']);
$metadataResult = $this->metadataRepository->findBySettings(['is_listed' => 1, 'is_sortable' => 1]);
/** @var Metadata $metadata */
foreach ($metadataResult as $metadata) {

View File

@ -226,7 +226,7 @@ class MetadataController extends AbstractController
$context = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Context\Context::class);
$currentLanguageUid = $context->getPropertyFromAspect('language', 'id');
$metadataResult = $this->metadataRepository->getMetadata($this->settings['pages'], $currentLanguageUid);
$metadataResult = $this->metadataRepository->findAll();
/** @var Metadata $metadata */
foreach ($metadataResult as $metadata) {

View File

@ -12,10 +12,10 @@
namespace Kitodo\Dlf\Domain\Repository;
use Kitodo\Dlf\Common\Helper;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Persistence\QueryInterface;
use Kitodo\Dlf\Common\Helper;
class CollectionRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
@ -36,7 +36,7 @@ class CollectionRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
$query->matching($query->equals('fe_cruser_id', $showUserDefined));
$query->setOrderings([
'label' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
'label' => QueryInterface::ORDER_ASCENDING
]);
}

View File

@ -14,36 +14,43 @@ namespace Kitodo\Dlf\Domain\Repository;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Database\ConnectionPool;
use Kitodo\Dlf\Common\Helper;
use TYPO3\CMS\Extbase\Persistence\QueryInterface;
class MetadataRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
public function getMetadataForListview($pages) {
/**
* Finds all collection for the given settings
*
* @param array $settings
*
* @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface
*/
public function findBySettings($settings = [])
{
$query = $this->createQuery();
$query->matching($query->logicalOr([
$query->equals('is_listed', 1),
$query->equals('is_sortable', 1)
]));
$query->matching($query->equals('pid', $pages));
$constraints = [];
$query->setOrderings([
'sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
]);
if ($settings['is_listed']) {
$constraints[] = $query->equals('is_listed', 1);
}
if ($settings['is_sortable']) {
$constraints[] = $query->equals('is_sortable', 1);
}
if (count($constraints)) {
$query->matching(
$query->logicalAnd($constraints)
);
}
// order by oai_name
$query->setOrderings(
array('sorting' => QueryInterface::ORDER_ASCENDING)
);
return $query->execute();
}
public function getMetadata($pages, $sysLangUid) {
$query = $this->createQuery();
$querySettings = $query->getQuerySettings();
$querySettings->setLanguageUid($sysLangUid);
$querySettings->setLanguageOverlayMode('strict');
$query->matching($query->equals('pid', $pages));
return $query->execute();
}
}
}