/** * Adds the order to the document. * * @param AbstractMappingEvent $event */ public function handleHydrate(AbstractMappingEvent $event) { if (false == $this->supports($event->getDocument())) { return; } $node = $event->getNode(); $order = $node->getPropertyValueWithDefault($this->encoder->systemName(self::FIELD), null); $event->getAccessor()->set('suluOrder', $order); }
/** * Returns QueryBuilder with basic select and where statements. * * @param string $locale * @param string[] $locales * @param UserInterface $user * * @return QueryBuilder */ private function getQueryBuilder($locale, $locales, UserInterface $user = null) { $queryBuilder = new QueryBuilder($this->qomFactory); $queryBuilder->select('node', 'jcr:uuid', 'uuid')->addSelect('node', $this->propertyEncoder->localizedContentName('nodeType', $locale), 'nodeType')->addSelect('node', $this->propertyEncoder->localizedContentName('internal_link', $locale), 'internalLink')->addSelect('node', $this->propertyEncoder->localizedContentName('state', $locale), 'state')->addSelect('node', $this->propertyEncoder->localizedContentName('shadow-on', $locale), 'shadowOn')->addSelect('node', $this->propertyEncoder->localizedContentName('shadow-base', $locale), 'shadowBase')->addSelect('node', $this->propertyEncoder->localizedContentName('shadow-base', $locale), 'shadowBase')->addSelect('node', $this->propertyEncoder->systemName('order'), 'order')->from($this->qomFactory->selector('node', 'nt:unstructured'))->orderBy($this->qomFactory->propertyValue('node', 'sulu:order')); $this->appendSingleMapping($queryBuilder, 'template', $locales); $this->appendSingleMapping($queryBuilder, 'shadow-on', $locales); if (null !== $user) { foreach ($user->getRoleObjects() as $role) { $queryBuilder->addSelect('node', sprintf('sec:%s', 'role-' . $role->getId()), $role->getIdentifier()); } } return $queryBuilder; }