-
Notifications
You must be signed in to change notification settings - Fork 0
/
CartController.php
67 lines (52 loc) · 2.14 KB
/
CartController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
namespace plugins\riCart;
use Symfony\Component\HttpFoundation\Request;
use Zepluf\Bundle\StoreBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
class CartController extends Controller{
public function __construct(){
parent::__construct();
}
public function ajaxAddToCartAction(Request $request){
$_SESSION['cart']->addCart($request->get('products_id'), $request->get('cart_quantity'), $request->get('id'));
return $this->renderJson($this->_getCart());
}
public function ajaxRemoveFromCartAction(Request $request){
global $currencies;
$_SESSION['cart']->remove($request->get('id'));
return $this->renderJson($this->_getCart());
}
public function ajaxGetCartAction(){
return $this->renderJson((array(
'box_cart_content' => $this->view->render("riCart::_box_shopping_cart.php"),
'messages' => $this->container->get('riLog.Logs')->getAsArray())
)
);
}
public function ajaxEditCartAction(Request $request){
$totalParams = $request->get('totalParams');
for($i=0; $i<$totalParams; $i++){
$param = explode('|', $request->get('param'.$i));
$_SESSION['cart']->contents[$param[0]][qty] = $param[1];
}
return $this->renderJson(
array(
'bool'=> true,
));
}
private function _getCart(){
global $currencies;
$products = array();
foreach ($_SESSION['cart']->get_products() as $product) {
$products_id = zen_get_prid($product['id']);
$product['productsLink'] = zen_href_link(zen_get_info_page($products_id), 'products_id=' . $products_id);
$product['display_price'] = $currencies->format($product['price'] * $product['quantity']);
$product['productsImage'] = zen_image(DIR_WS_IMAGES . $product['image'], $product['name'], '66', '66');
$products[] = $product;
}
return array(
'products' => $products,
'total' => $currencies->format($_SESSION['cart']->show_total())
);
}
}