complete cart controller
This commit is contained in:
@@ -15,10 +15,10 @@
|
||||
</route>
|
||||
|
||||
<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 id="cart.change.process" path="/cart/change" methods="post">
|
||||
<default key="_controller">Thelia\Controller\Front\CartController::addArticle</default>
|
||||
<route id="cart.change.process" path="/cart/delete" methods="post">
|
||||
<default key="_controller">Thelia\Controller\Front\CartController::deleteArticle</default>
|
||||
</route>
|
||||
</routes>
|
||||
@@ -24,7 +24,11 @@ namespace Thelia\Controller\Front;
|
||||
|
||||
|
||||
use Thelia\Controller\BaseController;
|
||||
use Thelia\Tools\Redirect;
|
||||
|
||||
class BaseFrontController extends BaseController {
|
||||
|
||||
public function redirect($url) {
|
||||
Redirect::exec($url);
|
||||
}
|
||||
}
|
||||
@@ -35,13 +35,26 @@ class CartController extends BaseFrontController
|
||||
$cartEvent = $this->getCartEvent();
|
||||
|
||||
$this->dispatch(TheliaEvents::CART_ADDITEM, $cartEvent);
|
||||
|
||||
$this->redirectInternal();
|
||||
}
|
||||
|
||||
public function modifyArticle()
|
||||
{
|
||||
$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()
|
||||
@@ -51,4 +64,11 @@ class CartController extends BaseFrontController
|
||||
|
||||
return new CartEvent($request, $cart);
|
||||
}
|
||||
|
||||
protected function redirectInternal()
|
||||
{
|
||||
if (null !== $url = $this->getRequest()->get("success_url")) {
|
||||
$this->redirect($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -136,5 +136,7 @@ final class TheliaEvents
|
||||
/**
|
||||
* sent on modify article action
|
||||
*/
|
||||
const CART_CHANGEARTICLE = "action.changeArticle";
|
||||
const CART_CHANGEITEM = "action.changeArticle";
|
||||
|
||||
const CART_DELETEITEM = "action.deleteArticle";
|
||||
}
|
||||
Reference in New Issue
Block a user