/**
* Returns list of custom-url data-arrays.
*
* @param string $path
* @param string $locale
*
* @return \Iterator
*/
public function findList($path, $locale)
{
// TODO pagination
$session = $this->sessionManager->getSession();
$queryManager = $session->getWorkspace()->getQueryManager();
$qomFactory = $queryManager->getQOMFactory();
$queryBuilder = new QueryBuilder($qomFactory);
$queryBuilder->select('a', 'jcr:uuid', 'uuid');
$queryBuilder->addSelect('a', 'title', 'title');
$queryBuilder->addSelect('a', 'published', 'published');
$queryBuilder->addSelect('a', 'domainParts', 'domainParts');
$queryBuilder->addSelect('a', 'baseDomain', 'baseDomain');
$queryBuilder->addSelect('a', 'sulu:content', 'targetDocument');
$queryBuilder->addSelect('a', 'sulu:created', 'created');
$queryBuilder->addSelect('a', 'sulu:creator', 'creator');
$queryBuilder->addSelect('a', 'sulu:changed', 'changed');
$queryBuilder->addSelect('a', 'sulu:changer', 'changer');
$queryBuilder->from($queryBuilder->qomf()->selector('a', 'nt:unstructured'));
$queryBuilder->where($queryBuilder->qomf()->comparison($queryBuilder->qomf()->propertyValue('a', 'jcr:mixinTypes'), QueryObjectModelConstantsInterface::JCR_OPERATOR_EQUAL_TO, $queryBuilder->qomf()->literal('sulu:custom_url')));
$queryBuilder->andWhere($queryBuilder->qomf()->descendantNode('a', $path));
$query = $queryBuilder->getQuery();
$result = $query->execute();
$uuids = array_map(function (Row $item) {
return $item->getValue('a.targetDocument');
}, iterator_to_array($result->getRows()));
$targets = $this->contentRepository->findByUuids(array_unique($uuids), $locale, MappingBuilder::create()->addProperties(['title'])->getMapping());
return new RowsIterator($result->getRows(), $result->getColumnNames(), $targets, $this->generator, $this->userManager);
}