2

Magento Shopperテーマ(http://shopper.queldorei.com/)を使用しています。

ショップカートに商品を追加すると、複数の要素が追加されます。

<div class="cart-top-title">
<a href="https://droppinstudio.dk/horsepony/index.php/checkout/cart/" class="clearfix">
<span class="icon"></span>Cart</a></div>

ここで間違いを犯しているのはjQueryであることがわかりました。

function setLocationAjax(url, id)
{
   ...
       if (data.status != 'ERROR' && $('.cart-top-container').length) {
          $('.cart-top-container').replaceWith(data.cart_top);
       }   
   ...
}

誰かがこれを修正するために何をすべきかについて良い考えを持っていますか?

4

2 に答える 2

2

CartControllerを調べて、応答変数(data.cart_top)を変更する必要があります。

CartControllerの場所は、テーマが使用するモジュールによって異なります。コアCartControllerは、app / code / core / Mage / Checkout / controllers/CartController.phpにあります。

お役に立てれば。

于 2012-12-12T16:46:24.313 に答える
1

アーウィンありがとう、それは私が何が悪いのかを理解するのを助けました

CartControllerはapp/code / local / Excellence / Ajax / controllers /にあり、実際にはIndexController.phpという名前です。

行52-54は、data.cart_top応答を設定します。

$sidebar_header = $this->getLayout()->getBlock('cart_top')->toHtml();
Mage::register('referrer_url', $this->_getRefererUrl());
$response['cart_top'] = $sidebar_header;

修正方法として、 cart_topブロックの設計方法を変更し、 cart_top.phtmlから「cart-top-title」を削除して独自のファイルに入れ、header.phtmlに含めることができます。

ajaxcart.js(関数setLocationAjax)の85行目で実際の置換が行われていることがわかります。

私の簡単な修正は、次のようにjQueryを使用してdivを削除することでした。

if (data.status != 'ERROR' && $('.cart-top-container').length) {
  $('.cart-top-title').remove();
  $('.cart-top-container').replaceWith(data.cart_top);
}

ここのjsファイル:skin / frontend / default / shopper / js / ajaxcart / ajaxcart.js

ここでcart_top.phtml:app / design / frontend / default / shopper / template / checkout / cart / cart-top.phtml

ここにheader.phtml:app / design / frontend / default / shopper / template / page / html / header.phtml

于 2012-12-14T11:12:22.617 に答える