Перейти к содержимому


Поменять Подгрузку Товаров Ajax На Постраничную Навигацию


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 explosive

explosive

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 114 сообщений
  • ГородСанкт-Петербург

Отправлено 19 Март 2018 - 21:46

Добрый день, возможно ли сменить подгрузку товаров Ajax на классическую постраничную навигацию?
И как это реализовать?

С Ajax проблемы, что после захода на товары каждый раз выкидывает в начало каталога,  а не на то место где остановился клиент При большом кол-ве товаров это становится проблемой

#2 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 23 769 сообщений

Отправлено 24 Март 2018 - 08:44

Здравствуйте.

Зайдите в раздел Сайт - Редактор шаблонов - main.js - найдите и удалите:
$(function(){
 
  var $container = $('.product-list, .product-list2');
  var lastPage = 1;
  // Скрываем навигацию по умолчанию
  $('.pagination').hide();

  $container.infinitescroll({
	   
	navSelector  : '.infinitescroll-pages',	// класс элемента постраничной навигации для бесконечного скрола
	nextSelector : '.infinitescroll-pages b + a',  // класс элемента постраничной навигации, ссылка на следующую страницу
	itemSelector : '.prod_hold, .category-info',	 // класс элементов, которые будем извлекать
	loading: {
	  msgText: 'Пожалуйста подождите...',
	  finishedMsg: 'Больше нет товаров.',
	  img: zoomloaderPath ? zoomloaderPath : '/zoomloader.gif'
	}
	}, function(newElements) {
	  var $newElems = $( newElements ).css({ opacity: 0 });
	  $newElems.imagesLoaded(function(){
		$newElems.animate({ opacity: 1 });
		$container.masonry( 'appended', $newElems, true );
	  });
	  lastPage++;
	  // если это последняя страница, завершаем работу
	  if(lastPage >= (infiniteScrollLastPage ? infiniteScrollLastPage : 1) ){
		$container.infinitescroll('pause');
	  }
	}
  );
  $container.infinitescroll('pause');
});

function start_infinite_scroll(){
  $('.product-list, .product-list2').infinitescroll('resume');
  $('.product-list, .product-list2').infinitescroll('scroll');
  $('.product-list, .product-list2').infinitescroll('pause');
}
$(document).ready(function(){
  $('#load_more').click(function(){
	start_infinite_scroll();
  })
})


Далее зайдите в шаблон Товары - найдите:
  <div class="box load_more"><div class="box-content"><button id="load_more" class="button">Показать еще</button></div></div>
  {% ENDIF %}
  <!-- /Если есть товары -->
 
  <!-- Ссылки постраничной навигации для бесконечного скролла -->
  <div style="display: none;" class="infinitescroll-pages">
	{% FOR goods_pages %}
	  {% IF goods_pages.CURRENT %}
		<b>{goods_pages.PAGE}</b>
	  {% ELSE %}
		<a href="{GOODS_PAGINATE_URL | url_amp}&only_body=1&page={goods_pages.PAGE}">{goods_pages.PAGE}</a>
	  {% ENDIF %}
	{% ENDFOR %}
  </div>
  <!-- /Ссылки постраничной навигации для бесконечного скролла -->
 
  <!-- Запоминаем сколько всего есть страниц в каталоге -->
  <script type="text/javascript">var infiniteScrollLastPage = "{GOODS_PAGES_LAST}";</script>

замените на:
  {% ENDIF %}
  <!-- /Если есть товары -->
 
  <!-- Ссылки постраничной навигации для бесконечного скролла -->
  <div class="pagination"><div class="links">
	{% FOR goods_pages %}
	  {% IF goods_pages.CURRENT %}
		<b>{goods_pages.PAGE}</b>
	  {% ELSE %}
		<a href="{GOODS_PAGINATE_URL | url_amp}&only_body=1&page={goods_pages.PAGE}">{goods_pages.PAGE}</a>
	  {% ENDIF %}
	{% ENDFOR %}
  </div></div>
  <!-- /Ссылки постраничной навигации для бесконечного скролла -->





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных