/** * Sets the title on the node from the value in the document. * * @param PersistEvent $event */ public function setTitleOnNode(AbstractMappingEvent $event) { $document = $event->getDocument(); if (!$this->supports($document)) { return; } if ($document instanceof LocalizedTitleBehavior) { if (!$event->getLocale()) { return; } $event->getNode()->setProperty($this->propertyEncoder->localizedContentName(static::PROPERTY_NAME, $event->getLocale()), $document->getTitle()); } else { $event->getNode()->setProperty($this->propertyEncoder->contentName(static::PROPERTY_NAME), $document->getTitle()); } }
/** * Append mapping selects for a single property to given query-builder. * * @param QueryBuilder $queryBuilder * @param string $propertyName * @param string[] $locales */ private function appendSingleMapping(QueryBuilder $queryBuilder, $propertyName, $locales) { foreach ($locales as $locale) { $alias = sprintf('%s%s', $locale, str_replace('-', '_', ucfirst($propertyName))); $queryBuilder->addSelect('node', $this->propertyEncoder->localizedContentName($propertyName, $locale), $alias); } }