Пример #1
0
 /**
  * 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);
     }
 }