/** * Hydration handler for the legacy object. * * @param HydrationEvent $event */ public function hydrateLegacyHandler(HydrationEvent $event) { $entity = $event->getArgument('entity'); if ($entity instanceof Content) { $entity->setLegacyService($this->legacy); } }
/** * Hydration handler for the legacy object. * * @param HydrationEvent $event */ public function hydrateLegacyHandler(HydrationEvent $event) { $entity = $event->getArgument('entity'); if (get_class($entity) === 'Bolt\\Storage\\Entity\\Content') { $entity->setLegacyService($this->legacy); } }
/** * StorageEvents::PRE_HYDRATE event callback. * * @param HydrationEvent $event */ public function preHydrate(HydrationEvent $event) { $request = $this->requestStack->getCurrentRequest(); if ($request === null) { return; } $localeSlug = $request->get('_locale'); /** @var Content $entity */ $entity = $event->getArgument('entity'); $subject = $event->getSubject(); if (!$entity instanceof Content || $request->request->getBoolean('no_locale_hydrate')) { return; } $contentTypeName = $entity->getContenttype(); $contentType = $this->boltConfig->get('contenttypes/' . $contentTypeName); if (isset($subject[$localeSlug . 'data'])) { $localeData = json_decode($subject[$localeSlug . 'data'], true); foreach ($localeData as $key => $value) { if ($contentType['fields'][$key]['type'] !== 'repeater') { $subject[$key] = is_array($value) ? json_encode($value) : $value; } } } }