[Решено] Добавление класса active к #cart

Тема в разделе "OpenCart", создана пользователем alex_storm, 12 авг 2013.

Статус темы:
Закрыта.
  1. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Всем привет. Вопрос такого плана, я добавил class="active" к id="cart" когда товар попадает в корзину.
    Вот так $('#cart').addClass('active');
    Все норм, только при перезагрузке страницы класс исчезает. Вопрос как оставить класс на месте даже после перезагрузки страниц?
     
  2. kur1977

    kur1977

    Регистрация:
    11 фев 2013
    Сообщения:
    123
    Симпатии:
    59
    В темплейте делать проверку на наличие товара в корзине и выводить этот класс, если в ней есть товар
     
    alex_storm нравится это.
  3. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    284
    Симпатии:
    309
    В файле catalog\view\theme\default\template\module\cart.tpl
    Заменить первую строку на
    PHP:
    <div id="cart" <?php if (!empty($products)) {echo "class=\"active\""; } ?>>
    либо на
    PHP:
    <div id="cart" <?php print (!empty($products)) ? 'class="active"'''?>>
    Вам еще нужно будет разобраться с проблемой удаления из корзины товара. т.е. когда пользователь удаляет последний товар из корзины, то класс active должен удаляться. Если я правильно понял. Для решения замените в том же файле
    PHP:
    <td class="remove">
      <img src="catalog/view/theme/default/image/remove-small.png"
      alt="<?php echo $button_remove?>"
      title="<?php echo $button_remove?>"
      onclick="(getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') ? location = 'index.php?route=checkout/cart&remove=<?php echo $product['key']; ?>' : $('#cart').load('index.php?route=module/cart&remove=<?php echo $product['key']; ?>' + ' #cart > *');" />
    </td>
    на
    PHP:
    <td class="remove">
      <img src="catalog/view/theme/default/image/remove-small.png"
      alt="<?php echo $button_remove?>"
      title="<?php echo $button_remove?>"
      onclick="(getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') ? location = 'index.php?route=checkout/cart&remove=<?php echo $product['key']; ?>' : $('#cart').load('index.php?route=module/cart&remove=<?php echo $product['key']; ?>' + ' #cart > *'); <?php if (count($products) == 1){ echo "$('#cart').removeClass('active');";} ?>" />
    </td>
    ,то есть в конце onClick нужно добавить код
    PHP:
    <?php if (count($products) == 1){ echo "$('#cart').removeClass('active');";} ?>
    который проверяет последний это товар в корзине или нет. Если да, тогда удаляет класс active.
     
    Wild и alex_storm нравится это.
Статус темы:
Закрыта.