Всем привет! И простите меня "грешного"!
Вываливаю то, что "наделал" (WARNING! решение еще "сырое" и брошенное... Joomla! 2.5.6 и JS v3.7.2).
Поехали!
Итак, что я хотел и что вам может пригодиться:
1. необходимо прикрутить модуль AJAX карзинку
2. "+" и "-" в списке категорий, опять же на аяксе
3. "+" и "-" в корзине, опять же с аяксе пересчетом общей стоимости
С 1 пунктом более или менее ясно, есть платное решение, различные "допилки-запилки", и мое
:
использовал модуль mod_ice_jshopping_cart, его впрочем и не трогал, тока CSS перепилил
Идем далее.
Пункт нумер 2, вот это уже поинтереснее!
Мои драгоценные кнопочки!
Файл components\com_jshopping\templates\default\list_products\product.php
<?php if ($product->buy_link){?>
<div class="buttons">
<input type="text" name="quantity<?php print $product->product_id?>" id="quantity<?php print $product->product_id?>" value="0">
<input type="button" name="plusButton" value="+" onClick="clickPlusButton('quantity<?php print $product->product_id?>', '<?php print $product->buy_link?>&quantity=' )">
<input type="button" name="minusButton" value="-" onClick="clickMinusButton('quantity<?php print $product->product_id?>', '<?php print $product->buy_link?>&quantity=')">
<a id="linkquantity<?php print $product->product_id?>" href="#" onclick="return false;"><?php print _JSHOP_BUY?></a>
</div>
<?php }?>
Но этого мало, да buy_link всех помучил я думаю...
Идем сюды -> components\com_jshopping\templates\default\list_products\list_products.php
Вставил вот такой вот скриптик
<script language="JavaScript">
var startUrlValue = "<?php print $product->buy_link?>&quantity=".replace(/&/g, '&');
var urlValue = "<?php print $product->buy_link?>&quantity=".replace(/&/g, '&');;
function clickPlusButton(productCountBoxId, productURL)
{
productURL = productURL.replace(/&/g, '&');
var pageValue = parseInt(document.getElementById(productCountBoxId).value);
if (isNaN(pageValue))
{
pageValue = 0;
}
pageValue += 1;
document.getElementById(productCountBoxId).value = pageValue.toString();
document.getElementById("link" + productCountBoxId).href = productURL + pageValue.toString() + ";";
}
function clickMinusButton(productCountBoxId, productURL)
{
productURL = productURL.replace(/&/g, '&');
var pageValue = parseInt(document.getElementById(productCountBoxId).value);
if (isNaN(pageValue))
{
pageValue = 0;
}
if (pageValue > 0)
{
pageValue -= 1;
document.getElementById(productCountBoxId).value = pageValue.toString();
document.getElementById("link" + productCountBoxId).href = productURL + pageValue.toString() + ";";
}
if (pageValue == 0)
{
document.getElementById("link" + productCountBoxId).href = "#";
}
}
</script>
И опять! не все так просто, откуда-то надо же "хавать" данные, да еще обновлять! Запилил в корень (корневой каталог) сайта файлик под названием getinfo.php
это json'чик, который чегой-то там приятного сделает нам
<?php
$summ = $_GET ["summ"];
echo "{";
foreach ($_GET as $key=>$value)
{
echo "\"".$key."\": \"";
echo $value;
echo "\",";
}
echo "}";
?>
и опять же (не все работает, а точнее еще ничего не работает
)
+ и - ну никак... решение для этого брал...не помню... короче в файлик jtableauto.php из(components\com_jshopping\lib) дописал строчку в районе 13-14
function getBuildQueryListProductDefaultResult(){
$lang = &JSFactory::getLang();
return "prod.product_id, pr_cat.category_id, prod.`".$lang->get('name')."` as name, prod.`".$lang->get('short_description')."` as short_description, prod.product_ean, prod.product_thumb_image, product_full_image, prod.product_name_image, prod.product_price, prod.currency_id, prod.product_tax_id as tax_id, prod.product_old_price, prod.product_weight, prod.average_rating, prod.reviews_count, prod.hits, prod.weight_volume_units, prod.basic_price_unit_id, prod.label_id, prod.product_manufacturer_id, prod.min_price, prod.product_quantity, prod.different_prices";
}
И теперь пункт 3!
components\com_jshopping\templates\default\cart\cart.php
кнопки, + и - , сумма по товару
<td>
<input class="quantity-minus" type="button" value="-" onclick="var qty_el = document.getElementById('quantity[<?php print $key_id ?>]'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--; xmlhttpPost('updateCart'); return false;">
<input type = "text" id = "quantity[<?php print $key_id ?>]" name = "quantity[<?php print $key_id ?>]" value = "<?php print $prod['quantity'] ?>" class = "inputbox" style = "width: 18px" />
<input class="quantity-plus" type="button" value="+" onclick="var qty_el = document.getElementById('quantity[<?php print $key_id ?>]'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++; xmlhttpPost('updateCart'); return true;">
<?php print $prod['_qty_unit'];?>
</td>
<td>
<div id="summDiv_productId<?php print $prod['product_id']?>">
<?php print formatprice($prod['price']*$prod['quantity']); ?>
<?php print $prod['_ext_price_total_html']?>
<?php if ($this->config->show_tax_product_in_cart && $prod['tax']>0){?>
<span class="taxinfo"><?php print productTaxInfo($prod['tax']);?></span>
<?php }?>
</div>
</td>
вывод итоговой цены
<td class="value">
<div id="summValue">
<?php print formatprice($this->summ);?><?php print $this->_tmp_ext_subtotal?>
</div>
</td>
Вроде все!
Всем мир! И успехов!