@dmyasnykov

Как адаптировать код OpenCart 1.X под OpenCart 2.3?

Код для кнопки "Показать еще" выложен под версию 1.х, нужно подогнать под 2.3

В файле catalog/controller/product/category.php, после $product_total = $this->model_catalog_product->getTotalProducts($filter_data); добавить:
$this->data['ttl'] = $product_total;
это я поменял на $data['ttl']

В файле catalog/view/theme/default/template/product/category.tpl, перед echo $pagination; добавить:
<?php if($ttl > count($products)){ ?>
	<input type="hidden" value="<?php echo $this->config->get('config_catalog_limit') + count($products); ?>" name="limit" id="pagin_limit">
	<?php if(($ttl - count($products)) >= $this->config->get('config_catalog_limit')){ ?>
		<div class="category_load">Показать еще <?php echo $this->config->get('config_catalog_limit'); ?></div>
	<?php }else{ ?>
		<div class="category_load">Показать еще <?php echo $ttl-count($products); ?></div>
	<?php } ?>
	<script>
		$(".category_load").on("click", function(){
			product_div = '.products';
			lim = $("#pagin_limit").val();
			$("." + product_div).load('index.php?route=product/category&path=<?php echo $this->request->get['path']; ?>&limit=' + lim + ' ' + product_div + '>*', function(){
				$("#pagin_limit").val(lim);
			});
		});
	</script>
<?php } ?>


Исходник:
https://for-opencart.com/utility/button-more

Вопрос:
Поменял только $data, но не работает, что еще нужно сделать?
  • Вопрос задан
  • 25 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sidni
Php Developer
я давно не брал в руки опенкарт((
1) Нужно дебажить (хорошо если установлен и настроен x-debug), если нет то тогда старое доброе var_dump();die;
2) узнать что приходит $product_total (см пункт 1) там должно быть количество продуктов
3) по нажатию на кнопку должен вызывается аякс запрос в консоле надо убедиться что он происходит и нет ошибок js. Далее нужно проверить статус ответа существует ли соответствующий экшен на который отправляется запрос.
так же смущает
product_div = '.products';
....
      $("." + product_div)

по идеи должно быть
$(product_div)
тк две точки это наверно перебор
и дальше поэтапно глядеть
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы