complete cart controller
This commit is contained in:
@@ -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>
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -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";
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user