complete cart controller

This commit is contained in:
Manuel Raynaud
2013-08-13 10:40:04 +02:00
parent b9bc56a748
commit a9ecf01216
4 changed files with 31 additions and 5 deletions

View File

@@ -15,10 +15,10 @@
</route> </route>
<route id="cart.add.process" path="/cart/add" methods="post"> <route id="cart.add.process" path="/cart/add" methods="post">
<default key="_controller">Thelia\Controller\Front\CartController::addArticle</default> <default key="_controller">Thelia\Controller\Front\CartController::changeArticle</default>
</route> </route>
<route id="cart.change.process" path="/cart/change" methods="post"> <route id="cart.change.process" path="/cart/delete" methods="post">
<default key="_controller">Thelia\Controller\Front\CartController::addArticle</default> <default key="_controller">Thelia\Controller\Front\CartController::deleteArticle</default>
</route> </route>
</routes> </routes>

View File

@@ -24,7 +24,11 @@ namespace Thelia\Controller\Front;
use Thelia\Controller\BaseController; use Thelia\Controller\BaseController;
use Thelia\Tools\Redirect;
class BaseFrontController extends BaseController { class BaseFrontController extends BaseController {
public function redirect($url) {
Redirect::exec($url);
}
} }

View File

@@ -35,13 +35,26 @@ class CartController extends BaseFrontController
$cartEvent = $this->getCartEvent(); $cartEvent = $this->getCartEvent();
$this->dispatch(TheliaEvents::CART_ADDITEM, $cartEvent); $this->dispatch(TheliaEvents::CART_ADDITEM, $cartEvent);
$this->redirectInternal();
} }
public function modifyArticle() public function modifyArticle()
{ {
$cartEvent = $this->getCartEvent(); $cartEvent = $this->getCartEvent();
$this->dispatch(TheliaEvents::CART_CHANGEARTICLE, $cartEvent); $this->dispatch(TheliaEvents::CART_CHANGEITEM, $cartEvent);
$this->redirectInternal();
}
public function deleteArticle()
{
$cartEvent = $this->getCartEvent();
$this->dispatch(TheliaEvents::CART_DELETEITEM, $cartEvent);
$this->redirectInternal();
} }
protected function getCartEvent() protected function getCartEvent()
@@ -51,4 +64,11 @@ class CartController extends BaseFrontController
return new CartEvent($request, $cart); return new CartEvent($request, $cart);
} }
protected function redirectInternal()
{
if (null !== $url = $this->getRequest()->get("success_url")) {
$this->redirect($url);
}
}
} }

View File

@@ -136,5 +136,7 @@ final class TheliaEvents
/** /**
* sent on modify article action * sent on modify article action
*/ */
const CART_CHANGEARTICLE = "action.changeArticle"; const CART_CHANGEITEM = "action.changeArticle";
const CART_DELETEITEM = "action.deleteArticle";
} }