. */ /* */ /*************************************************************************************/ namespace Thelia\Action; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Thelia\Core\Event\ActionEvent; use Thelia\Core\Event\TheliaEvents; use Thelia\Model\Category as CategoryModel; use Thelia\Form\CategoryCreationForm; use Thelia\Core\Event\CategoryEvent; use Thelia\Tools\Redirect; use Thelia\Model\CategoryQuery; use Thelia\Model\AdminLog; use Thelia\Form\CategoryDeletionForm; use Thelia\Action\Exception\FormValidationException; use Propel\Runtime\ActiveQuery\Criteria; use Propel\Runtime\Propel; use Thelia\Model\Map\CategoryTableMap; use Propel\Runtime\Exception\PropelException; class Coupon extends BaseAction implements EventSubscriberInterface { /** * Disable a Coupon * * @param ActionEvent $event */ public function delete(CategoryDeleteEvent $event) { $this->checkAuth("ADMIN", "admin.category.delete"); $category = CategoryQuery::create()->findPk($event->getId()); if ($category !== null) { $event->setDeletedCategory($category); $event->getDispatcher()->dispatch(TheliaEvents::BEFORE_DELETECATEGORY, $event); $category->delete(); $event->getDispatcher()->dispatch(TheliaEvents::AFTER_DELETECATEGORY, $event); } } /** * Returns an array of event names this subscriber listens to. * * The array keys are event names and the value can be: * * * The method name to call (priority defaults to 0) * * An array composed of the method name to call and the priority * * An array of arrays composed of the method names to call and respective * priorities, or 0 if unset * * For instance: * * * array('eventName' => 'methodName') * * array('eventName' => array('methodName', $priority)) * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) * * @return array The event names to listen to * * @api */ public static function getSubscribedEvents() { return array( // "action.createCategory" => array("create", 128), // "action.modifyCategory" => array("modify", 128), // "action.deleteCategory" => array("delete", 128), // // "action.toggleCategoryVisibility" => array("toggleVisibility", 128), // "action.changeCategoryPositionUp" => array("changePositionUp", 128), // "action.changeCategoryPositionDown" => array("changePositionDown", 128), // "action.changeCategoryPosition" => array("changePosition", 128), ); } }