Привет всем.
Не могу никак сделать обновление корзины в один клик.
То есть, поле для ввода количества покупаемых товаров формируется так:
<form action="<?php echo JRoute::_('index.php'); ?>" method="post" class="inline">
<input type="hidden" name="option" value="com_virtuemart" />
<input type="text" title="<?php echo JText::_('COM_VIRTUEMART_CART_UPDATE')?>" class="inputbox" id="quant" size="3" maxlength="4" name="quantity" value="<?php echo $prow->quantity ?>" />
<input type="hidden" name="view" value="cart" />
<input type="hidden" name="task" value="update" />
<input type="hidden" name="cart_virtuemart_product_id" value="<?php echo $prow->cart_item_id ?>" />
<input type="submit" class="vmicon vm2-add_quantity_cart" name="update" title="<?php echo JText::_('COM_VIRTUEMART_CART_UPDATE')?>" align="middle" value=" "/>
</form>
А я хочу сделать, что бы была одна кнопка обновить корзину, и при ее клике, менялось все количество товарных позиций, которые в корзине.
Я питался изменить форму
<input type="text" title="<?php echo JText::_('COM_VIRTUEMART_CART_UPDATE')?>" class="inputbox" id="quant" size="3" maxlength="4" name="quantity[]" value="<?php echo $prow->quantity ?>" />
и саму форму выносил за грани таблицы, а так же скрытые инпуты.
Потом я обращался в функцию
public function update() {
$mainframe = JFactory::getApplication();
/* Load the cart helper */
$cartModel = VirtueMartCart::getCart();
if ($cartModel->updateProductCart())
$mainframe->enqueueMessage(JText::_('COM_VIRTUEMART_PRODUCT_UPDATED_SUCCESSFULLY'));
else
$mainframe->enqueueMessage(JText::_('COM_VIRTUEMART_PRODUCT_NOT_UPDATED_SUCCESSFULLY'), 'error');
$mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart'));
}
в контролере cart.php
Которая непосредственно обращается в хелпер cart.php к функции
public function updateProductCart($cart_virtuemart_product_id=0) {
if (empty($cart_virtuemart_product_id))
$cart_virtuemart_product_id = JRequest::getString('cart_virtuemart_product_id');
if (empty($quantity))
$quantity = JRequest::getInt('quantity');
// foreach($cart_virtuemart_product_ids as $cart_virtuemart_product_id){
$updated = false;
if (array_key_exists($cart_virtuemart_product_id, $this->products)) {
if (!empty($quantity)) {
if ($this->checkForQuantities($this->products[$cart_virtuemart_product_id], $quantity)) {
$this->products[$cart_virtuemart_product_id]->quantity = $quantity;
$updated = true;
}
} else {
//Todo when quantity is 0, the product should be removed, maybe necessary to gather in array and execute delete func
unset($this->products[$cart_virtuemart_product_id]);
$updated = true;
}
}
// }
/* Save the cart */
$this->setCartIntoSession();
if ($updated)
return true;
else
return false;
}
Я пытался ее менять, но видемо, что-то где-то упускал.
Подскажите, как мнеправильно подправить хелпер, что бы корзина обновлялась один кликом.