/** * Returns all categories depending on the settings in the demand object * * @param \DERHANSEN\SfEventMgt\Domain\Model\Dto\CategoryDemand $demand CategoryDamand * * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface */ public function findDemanded($demand) { $constraints = []; $query = $this->createQuery(); if ($demand->getRestrictToStoragePage()) { $pidList = GeneralUtility::intExplode(',', $demand->getStoragePage(), true); $constraints[] = $query->in('pid', $pidList); } if ($demand->getCategories()) { if ($demand->getIncludeSubcategories()) { $categoryList = CategoryService::getCategoryListWithChilds($demand->getCategories()); $pidList = GeneralUtility::intExplode(',', $categoryList, true); } else { $pidList = GeneralUtility::intExplode(',', $demand->getCategories(), true); } $constraints[] = $query->in('uid', $pidList); } if (count($constraints) > 0) { $query->matching($query->logicalAnd($constraints)); } return $query->execute(); }
/** * @test */ public function setStoragePageSetsStoragePageForString() { $this->subject->setStoragePage('1,2,3'); $this->assertEquals('1,2,3', $this->subject->getStoragePage()); }