From 56197a739e680989613b73b16c47f1efbe1fd1f6 Mon Sep 17 00:00:00 2001 From: Manuel Raynaud Date: Fri, 20 Sep 2013 19:49:12 +0200 Subject: [PATCH] icreate folder delete event --- .../Thelia/Config/Resources/routing/admin.xml | 4 ++ .../Controller/Admin/FolderController.php | 15 ++++- .../Thelia/Core/Event/FolderDeleteEvent.php | 64 +++++++++++++++++++ core/lib/Thelia/Core/Event/FolderEvent.php | 5 ++ 4 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 core/lib/Thelia/Core/Event/FolderDeleteEvent.php diff --git a/core/lib/Thelia/Config/Resources/routing/admin.xml b/core/lib/Thelia/Config/Resources/routing/admin.xml index 5626c4056..e371f685d 100755 --- a/core/lib/Thelia/Config/Resources/routing/admin.xml +++ b/core/lib/Thelia/Config/Resources/routing/admin.xml @@ -208,6 +208,10 @@ Thelia\Controller\Admin\FolderController::processUpdateAction + + Thelia\Controller\Admin\FolderController::deleteAction + + diff --git a/core/lib/Thelia/Controller/Admin/FolderController.php b/core/lib/Thelia/Controller/Admin/FolderController.php index eec4733f2..55135b2b2 100644 --- a/core/lib/Thelia/Controller/Admin/FolderController.php +++ b/core/lib/Thelia/Controller/Admin/FolderController.php @@ -22,6 +22,7 @@ /*************************************************************************************/ namespace Thelia\Controller\Admin; +use Thelia\Core\Event\FolderDeleteEvent; use Thelia\Core\Event\FolderUpdateEvent; use Thelia\Core\Event\TheliaEvents; use Thelia\Form\FolderModificationForm; @@ -133,7 +134,7 @@ class FolderController extends AbstractCrudController */ protected function getDeleteEvent() { - // TODO: Implement getDeleteEvent() method. + return new FolderDeleteEvent($this->getRequest()->get('folder_id'), 0); } /** @@ -149,11 +150,13 @@ class FolderController extends AbstractCrudController /** * Get the created object from an event. * - * @param unknown $createEvent + * @param $event \Thelia\Core\Event\FolderEvent $event + * + * @return null|\Thelia\Model\Folder */ protected function getObjectFromEvent($event) { - // TODO: Implement getObjectFromEvent() method. + return $event->hasFolder() ? $event->getFolder() : null; } /** @@ -235,6 +238,12 @@ class FolderController extends AbstractCrudController } } + /** + * Put in this method post object delete processing if required. + * + * @param \Thelia\Core\Event\FolderDeleteEvent $deleteEvent the delete event + * @return Response a response, or null to continue normal processing + */ protected function performAdditionalDeleteAction($deleteEvent) { // Redirect to parent category list diff --git a/core/lib/Thelia/Core/Event/FolderDeleteEvent.php b/core/lib/Thelia/Core/Event/FolderDeleteEvent.php new file mode 100644 index 000000000..1ef83ef51 --- /dev/null +++ b/core/lib/Thelia/Core/Event/FolderDeleteEvent.php @@ -0,0 +1,64 @@ +. */ +/* */ +/*************************************************************************************/ + +namespace Thelia\Core\Event; + + +/** + * Class FolderDeleteEvent + * @package Thelia\Core\Event + * @author Manuel Raynaud + */ +class FolderDeleteEvent extends FolderEvent{ + + /** + * @var int folder id + */ + protected $folder_id; + + /** + * @param int $folder_id + */ + function __construct($folder_id) + { + $this->folder_id = $folder_id; + } + + /** + * @param int $folder_id + */ + public function setFolderId($folder_id) + { + $this->folder_id = $folder_id; + } + + /** + * @return int + */ + public function getFolderId() + { + return $this->folder_id; + } + + +} \ No newline at end of file diff --git a/core/lib/Thelia/Core/Event/FolderEvent.php b/core/lib/Thelia/Core/Event/FolderEvent.php index 2a5d17c60..8ae8223b5 100644 --- a/core/lib/Thelia/Core/Event/FolderEvent.php +++ b/core/lib/Thelia/Core/Event/FolderEvent.php @@ -60,6 +60,11 @@ class FolderEvent extends ActionEvent { return $this->folder; } + /** + * test if a folder object exists + * + * @return bool + */ public function hasFolder() { return null !== $this->folder;