/** * postDeleteCallback. * * This callback takes care of deleting all translations, * associated with the deleted content. */ public function postDeleteCallback(StorageEvent $event) { $subject = $event->getSubject(); $query = 'DELETE FROM ' . $prefix . 'translation where content_type = ? and content_type_id = ?'; $stmt = $this->app['db']->prepare($query); $stmt->bindValue(1, $event->getArgument('contenttype')); $stmt->bindValue(2, $subject['id']); $stmt->execute(); }
/** * StorageEvents::POST_SAVE event callback. * * @param StorageEvent $event */ public function postSave(StorageEvent $event) { $request = $this->requestStack->getCurrentRequest(); if ($request === null) { return; } $localeSlug = $request->get('_locale'); $subject = $event->getSubject(); if (!$subject instanceof Content) { return; } if (!isset($subject[$localeSlug . 'data'])) { return; } $localeData = json_decode($subject[$localeSlug . 'data']); foreach ($localeData as $key => $value) { $subject->set($key, $value); } }