From 00f7c491b24cc653377b897f135f398733744794 Mon Sep 17 00:00:00 2001 From: Manuel Raynaud Date: Fri, 20 Sep 2013 19:00:41 +0200 Subject: [PATCH] create folder events --- .../Thelia/Config/Resources/routing/admin.xml | 4 + .../Controller/Admin/FolderController.php | 18 ++- .../Thelia/Core/Event/FolderCreateEvent.php | 120 ++++++++++++++++ core/lib/Thelia/Core/Event/FolderEvent.php | 68 +++++++++ .../Thelia/Core/Event/FolderUpdateEvent.php | 136 ++++++++++++++++++ 5 files changed, 344 insertions(+), 2 deletions(-) create mode 100644 core/lib/Thelia/Core/Event/FolderCreateEvent.php create mode 100644 core/lib/Thelia/Core/Event/FolderEvent.php create mode 100644 core/lib/Thelia/Core/Event/FolderUpdateEvent.php diff --git a/core/lib/Thelia/Config/Resources/routing/admin.xml b/core/lib/Thelia/Config/Resources/routing/admin.xml index 849d71483..5626c4056 100755 --- a/core/lib/Thelia/Config/Resources/routing/admin.xml +++ b/core/lib/Thelia/Config/Resources/routing/admin.xml @@ -204,6 +204,10 @@ Thelia\Controller\Admin\FolderController::updateAction + + Thelia\Controller\Admin\FolderController::processUpdateAction + + diff --git a/core/lib/Thelia/Controller/Admin/FolderController.php b/core/lib/Thelia/Controller/Admin/FolderController.php index 510180ddf..8cfdda8a3 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\FolderUpdateEvent; use Thelia\Core\Event\TheliaEvents; use Thelia\Form\FolderModificationForm; use Thelia\Model\FolderQuery; @@ -67,7 +68,7 @@ class FolderController extends AbstractCrudController */ protected function getUpdateForm() { - // TODO: Implement getUpdateForm() method. + return new FolderModificationForm($this->getRequest()); } /** @@ -111,7 +112,20 @@ class FolderController extends AbstractCrudController */ protected function getUpdateEvent($formData) { - // TODO: Implement getUpdateEvent() method. + $updateEvent = new FolderUpdateEvent($formData['id']); + + $updateEvent + ->setLocale($formData['locale']) + ->setTitle($formData['title']) + ->setChapo($formData['chapo']) + ->setDescription($formData['description']) + ->setPostscriptum($formData['postscriptum']) + ->setVisible($formData['visible']) + ->setUrl($formData['url']) + ->setParent($formData['parent']) + ; + + return $updateEvent; } /** diff --git a/core/lib/Thelia/Core/Event/FolderCreateEvent.php b/core/lib/Thelia/Core/Event/FolderCreateEvent.php new file mode 100644 index 000000000..609fea6f8 --- /dev/null +++ b/core/lib/Thelia/Core/Event/FolderCreateEvent.php @@ -0,0 +1,120 @@ +. */ +/* */ +/*************************************************************************************/ + +namespace Thelia\Core\Event; + + +/** + * Class FolderCreateEvent + * @package Thelia\Core\Event + * @author Manuel Raynaud + */ +class FolderCreateEvent extends FolderEvent { + protected $title; + protected $parent; + protected $locale; + protected $visible; + + /** + * @param mixed $locale + * + * @return $this + */ + public function setLocale($locale) + { + $this->locale = $locale; + + return $this; + } + + /** + * @return mixed + */ + public function getLocale() + { + return $this->locale; + } + + /** + * @param mixed $parent + * + * + * @return $this + */ + public function setParent($parent) + { + $this->parent = $parent; + + return $this; + } + + /** + * @return mixed + */ + public function getParent() + { + return $this->parent; + } + + /** + * @param mixed $title + * + * @return $this + */ + public function setTitle($title) + { + $this->title = $title; + + return $this; + } + + /** + * @return mixed + */ + public function getTitle() + { + return $this->title; + } + + /** + * @param mixed $visible + * + * @return $this + */ + public function setVisible($visible) + { + $this->visible = $visible; + + return $this; + } + + /** + * @return mixed + */ + public function getVisible() + { + return $this->visible; + } + + +} \ No newline at end of file diff --git a/core/lib/Thelia/Core/Event/FolderEvent.php b/core/lib/Thelia/Core/Event/FolderEvent.php new file mode 100644 index 000000000..2a5d17c60 --- /dev/null +++ b/core/lib/Thelia/Core/Event/FolderEvent.php @@ -0,0 +1,68 @@ +. */ +/* */ +/*************************************************************************************/ + +namespace Thelia\Core\Event; +use Thelia\Model\Folder; + + +/** + * Class FolderEvent + * @package Thelia\Core\Event + * @author Manuel Raynaud + */ +class FolderEvent extends ActionEvent { + + /** + * @var \Thelia\Model\Folder + */ + protected $folder; + + function __construct(Folder $folder = null) + { + $this->folder = $folder; + } + + /** + * @param \Thelia\Model\Folder $folder + */ + public function setFolder(Folder $folder) + { + $this->folder = $folder; + + return $this; + } + + /** + * @return \Thelia\Model\Folder + */ + public function getFolder() + { + return $this->folder; + } + + public function hasFolder() + { + return null !== $this->folder; + } + +} \ No newline at end of file diff --git a/core/lib/Thelia/Core/Event/FolderUpdateEvent.php b/core/lib/Thelia/Core/Event/FolderUpdateEvent.php new file mode 100644 index 000000000..47c3b28cf --- /dev/null +++ b/core/lib/Thelia/Core/Event/FolderUpdateEvent.php @@ -0,0 +1,136 @@ +. */ +/* */ +/*************************************************************************************/ + +namespace Thelia\Core\Event; + + +/** + * Class FolderUpdateEvent + * @package Thelia\Core\Event + * @author Manuel Raynaud + */ +class FolderUpdateEvent extends FolderCreateEvent { + protected $folder_id; + + protected $chapo; + protected $description; + protected $postscriptum; + + protected $url; + + function __construct($folder_id) + { + $this->folder_id = $folder_id; + } + + /** + * @param mixed $chapo + */ + public function setChapo($chapo) + { + $this->chapo = $chapo; + + return $this; + } + + /** + * @return mixed + */ + public function getChapo() + { + return $this->chapo; + } + + /** + * @param mixed $description + */ + public function setDescription($description) + { + $this->description = $description; + + return $this; + } + + /** + * @return mixed + */ + public function getDescription() + { + return $this->description; + } + + /** + * @param mixed $folder_id + */ + public function setFolderId($folder_id) + { + $this->folder_id = $folder_id; + + return $this; + } + + /** + * @return mixed + */ + public function getFolderId() + { + return $this->folder_id; + } + + /** + * @param mixed $postscriptum + */ + public function setPostscriptum($postscriptum) + { + $this->postscriptum = $postscriptum; + + return $this; + } + + /** + * @return mixed + */ + public function getPostscriptum() + { + return $this->postscriptum; + } + + /** + * @param mixed $url + */ + public function setUrl($url) + { + $this->url = $url; + + return $this; + } + + /** + * @return mixed + */ + public function getUrl() + { + return $this->url; + } + +} \ No newline at end of file