Kredov long

[Решено] Обновление количества закладок

Тема в разделе "OpenCart", создана пользователем kasutaj, 2 май 2013.

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

    kasutaj

    Регистрация:
    28 апр 2013
    Сообщения:
    19
    Симпатии:
    1
    Всем привет, возникла небольшая проблемка с обновлением счётчика товаров в закладках, после переноса в главное меню.
    Перенёс так, в header.tpl вместо

    PHP:
        <?php foreach ($categories as $category) { ?>
        <li><?php if ($category['active']) { ?>
    <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
    <?php } else { ?>
    <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
    <?php ?>
     
          <?php if ($category['children']) { ?>
          <div>
            <?php for ($i 0$i count($category['children']);) { ?>
            <ul>
              <?php $j $i ceil(count($category['children']) / $category['column']); ?>
              <?php for (; $i $j$i++) { ?>
              <?php if (isset($category['children'][$i])) { ?>
              <li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
              <?php ?>
              <?php ?>
            </ul>
            <?php ?>
          </div>
          <?php ?>
        </li>
        <?php ?>
    вставил это:

    PHP:
     <li><a href="<?php echo $home?>"><?php echo $text_home?></a></li>
     <li><a href="<?php echo $wishlist?>" id="wishlist_total"><?php echo $text_wishlist?></a></li>
     <li><a href="<?php echo $account?>"><?php echo $text_account?></a></li>
     <li><a href="<?php echo $shopping_cart?>"><?php echo $text_shopping_cart?></a></li>
     <li><a href="<?php echo $checkout?>"><?php echo $text_checkout?></a></li>
    Так же отсюда удалил всё кроме записи про wishlist, это для проверки

    PHP:
       <div class="links"><a href="<?php echo $home?>"><?php echo $text_home?></a><a href="<?php echo $wishlist?>" id="wishlist-total"><?php echo $text_wishlist?></a><a href="<?php echo $account?>"><?php echo $text_account?></a><a href="<?php echo $shopping_cart?>"><?php echo $text_shopping_cart?></a><a href="<?php echo $checkout?>"><?php echo $text_checkout?></a></div> 
    Выглядит это вот так:
    [​IMG]
    Так же в wishlist.php добавил изменения, что бы закладки могли просматривать и не зарегистрированные пользователи, но это по идее не должно влиять, т.к. косяк одинаков, что зареганых что нет пользователей.

    Собственно проблема в том, что при добавлении в закладки, счётчик в старом месте (2) сразу же увеличивается, а в новом (1), на панели меню, только если обновить страницу или перейти по какой либо ссылке. Если удалять из закладок, то страница обновляется вся целиком и счётчики в обоих местах тоже.
    Вобщем, как сделать, что бы при добавлении в панели меню счётчик обновлялся сам ? Подозреваю, что искать нужно в wishlist.php
     
  2. Spartak

    Spartak

    Регистрация:
    23 дек 2012
    Сообщения:
    151
    Симпатии:
    57
    Доброй ночи
    Возможно, проблема кроется в том, что в строчке, которую вы вставили
    <li><a href="<?php echo $wishlist; ?>" id="wishlist_total"><?php echo $text_wishlist; ?></a></li>
    и той, что была раньше
    <a href="<?php echo $wishlist; ?>" id="wishlist-total"><?php echo $text_wishlist; ?></a>
    есть отличие в имени id стиля
     
    kasutaj нравится это.
  3. kasutaj

    kasutaj

    Регистрация:
    28 апр 2013
    Сообщения:
    19
    Симпатии:
    1
    Spartak, о, точно, не заметил этой ошибки. Исправил, но проблемы это не никак не решило :(
     
  4. Spartak

    Spartak

    Регистрация:
    23 дек 2012
    Сообщения:
    151
    Симпатии:
    57
    Добрый день.
    В таком случае могу вам предложить еще вот что:
    - откройте свой файл catalog/view/javascript/common.js
    - найдите в нем строчку
    Код:
    $('#wishlist-total').html(json['total']);
    и просто замените ее на эту
    Код:
    $('#wishlist-total, #menu #wishlist-total').html(json['total']);
     
    kasutaj нравится это.
  5. kasutaj

    kasutaj

    Регистрация:
    28 апр 2013
    Сообщения:
    19
    Симпатии:
    1
    Хм, только что попробовал ваш вариант, результат тот же. В меню изменяется только после обновления всей страницы. Поковыряюсь ещё в этом common.js

    Upd:

    Всё, разобрался, мой косяк был. Теперь по предложенному Spartakom решению всё работает. Большое спасибо !!!
     
  6. Spartak

    Spartak

    Регистрация:
    23 дек 2012
    Сообщения:
    151
    Симпатии:
    57
    Вот смотрите, я например код меню
    Код:
    <?php if ($categories) { ?>
    <div id="menu">
      <ul>
    	<?php foreach ($categories as $category) { ?>
    	<li><?php if ($category['active']) { ?>
    <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
    <?php } else { ?>
    <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
    <?php } ?>
     
    	  <?php if ($category['children']) { ?>
    	  <div>
    		<?php for ($i = 0; $i < count($category['children']);) { ?>
    		<ul>
    		  <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
    		  <?php for (; $i < $j; $i++) { ?>
    		  <?php if (isset($category['children'][$i])) { ?>
    		  <li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
    		  <?php } ?>
    		  <?php } ?>
    		</ul>
    		<?php } ?>
    	  </div>
    	  <?php } ?>
    	</li>
    	<?php } ?>
      </ul>
    </div>
    <?php } ?>
    изменил вот так
    Код:
    <?php if ($categories) { ?>
    <div id="menu">
      <ul>
    <li><a href="<?php echo $wishlist; ?>" id="wishlist-total"><?php echo $text_wishlist; ?></a></li>
      </ul>
    </div>
    <?php } ?>
    и заменил строчку (как написал выше) в файле common.js

    На выходе, у меня все работает правильно.
     
  7. kasutaj

    kasutaj

    Регистрация:
    28 апр 2013
    Сообщения:
    19
    Симпатии:
    1
    Да, я когда $wishlist_total изменил на $wishlist-total не работало, а потом случайно заменит этот tpl файл, где это ещё было не исправлено, вот common.js и не сработал, сейчас всё перепроверил и исправил этот $wishlist_total. Всё сразу заработало, ещё раз спасибо :bounce:
     
Статус темы:
Закрыта.