public function delete(ContentDeleteEvent $event) { if (null !== ($content = ContentQuery::create()->findPk($event->getContentId()))) { $defaultFolderId = $content->getDefaultFolderId(); $content->setDispatcher($event->getDispatcher())->delete(); $event->setDefaultFolderId($defaultFolderId); $event->setContent($content); } }
public function delete(ContentDeleteEvent $event, $eventName, EventDispatcherInterface $dispatcher) { if (null !== ($content = ContentQuery::create()->findPk($event->getContentId()))) { $con = Propel::getWriteConnection(ContentTableMap::DATABASE_NAME); $con->beginTransaction(); try { $fileList = ['images' => [], 'documentList' => []]; $defaultFolderId = $content->getDefaultFolderId(); // Get content's files to delete after content deletion $fileList['images']['list'] = ContentImageQuery::create()->findByContentId($event->getContentId()); $fileList['images']['type'] = TheliaEvents::IMAGE_DELETE; $fileList['documentList']['list'] = ContentDocumentQuery::create()->findByContentId($event->getContentId()); $fileList['documentList']['type'] = TheliaEvents::DOCUMENT_DELETE; // Delete content $content->setDispatcher($dispatcher)->delete($con); $event->setDefaultFolderId($defaultFolderId); $event->setContent($content); // Dispatch delete content's files event foreach ($fileList as $fileTypeList) { foreach ($fileTypeList['list'] as $fileToDelete) { $fileDeleteEvent = new FileDeleteEvent($fileToDelete); $dispatcher->dispatch($fileTypeList['type'], $fileDeleteEvent); } } $con->commit(); } catch (\Exception $e) { $con->rollback(); throw $e; } } }