Проблема с offset у msProducts Никто не помогает!

Дополнение: minishop2

Добрый день,

с помощью сниппета через ajax вывожу доп. продукты в магазине и сталкиваюсь со следующей проблемой. Из фронтенда в сниппет передается значение оффсета, для того чтобы не выводить товары повторно. Значение оффсета хранится во фронтенде и там же инкрементируется (шаг 12 товаров). Так вот если оффсет больше чем осталось товаров, то вместо оставшихся товаров и/или нуля, сниппет отдает мне код всей странички. Т.е. весь фронт моментально ломается вместо того чтобы просто ничего не выводить (или оставшиеся продукты). Подскажите пожалуйста это баг или фича? Или это я что-то не так делаю/понимаю?

Фронт:
$('#shopMoreProductsButton').click(function() {
	$.post('/', $(this).data(), function(response) {
		$response = $(response);
		$response.appendTo('#shopProducts').hide().fadeIn(2000);
		$('html, body').animate({
        scrollTop: $response.first().offset().top - 81
    }, 2000);
	})
	$(this).data()['offset'] += 12;
});


Сниппет:

<?php
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}
    if (empty($_POST['action'])) {return;}

    $tpl = $modx->getOption('tpl', $scriptProperties, 'page-shop-products__item', true);
    $limit = (int) $modx->getOption('limit', $scriptProperties, 12, true);
    $offset = (int) (is_null($_POST['offset'])  ? $modx->getOption('offset', $scriptProperties, 12, true):$_POST['offset'];
    
    switch (strtolower($_POST['action'])) {
	    case 'loadmore':
	        $params = array();
                $params['offset'] = $offset;
                $params['limit'] = $limit;
                $res = $modx->runSnippet('msProducts', $params); 
        break;
    }
    
if (!empty($res)) {
    die($res);
}
Заранее благодарен.

Хей, кто нибудь?)
22 сентября 2016, 10:11    Oleg Cvetkov   
0    211 0

Комментарии (0)

    Вы должны авторизоваться, чтобы оставлять комментарии.