Добрый день.
Помогите с задачей, я в тупике уже.
В общем надо подгружать товары в каталоге. Каталог разбит на категории и используется умный фильтр.
При прокрутке я хочу подгружать через ajax данные следующих страниц.
[CODE]<sc ript>
/*AJAX прогрузка*/
$(document).ready(function(){
var startFrom = 2;
var inProgress = false;
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() >= $(document).height() - 600 && !inProgress) {
console.log('before send');
$.ajax({
url: '/ajax/getCatalogData.php',
method: 'POST',
data: {
"PAGEN_1" : startFrom,
"arCurSectionID" :<?php echo $arCurSection['ID']; ?>,
"xml": "<?php echo $xml; ?>",
"arParams":<?php echo json_encode($arParams); ?>,
"SECTION_CODE":"<?php echo $arResult["VARIABLES"]["SECTION_CODE"]; ?>"
},
beforeSend: function() {
inProgress = true;
}
}).complete(function(data){
console.log('data loaded');
$(".catalog__wrap-goods").append(data.responseText);
startFrom += 1;
inProgress = false;
});
}
});
});
</sc ript>[/CODE]
Сам файл, который должен отдавать каталог через ajax вот тут:
[CODE]<?php
/*
retrieves product catalog via ajax
*/
define("NO_KEEP_STATISTIC", true);
define("NO_AGENT_CHECK", true);
define('PUBLIC_AJAX_MODE', true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"]="N";
$APPLICATION->ShowIncludeStat = false;
global $APPLICATION;
if (isset($_POST)) {
$arParams = $_POST['arParams'];
ob_start();
CModule::IncludeModule("iblock");
$arFilterST = Array('IBLOCK_ID'=>4, 'ACTIVE'=>'Y', 'ID' => $SPID);
$db_listST = CIBlockSection::GetList(Array($byS=>$orderS), $arFilterST, true, Array("UF_ID_TYPE"));
while($ar_resultST = $db_listST->GetNext()){
$found = true;
$SPPID= $ar_resultST['IBLOCK_SECTION_ID'];
}
if ('Y' == $arParams['USE_FILTER'] && $found ){
$APPLICATION->IncludeComponent(
"custom:catalog.smart.filter",
"inew-filter",
Array(
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"SECTION_ID" => $_POST['arCursectionID'],
"SECTION_XML" => $_POST['xml'],
"FILTER_NAME" => $arParams["FILTER_NAME"],
"PRICE_CODE" => array('для интернет-магазина'),
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_NOTES" => "",
"CACHE_GROUPS" => "Y",
"SAVE_IN_SESSION" => "N",
"XML_EXPORT" => "Y",
"SECTION_TITLE" => "NAME",
"SECTION_DESCRIPTION" => "DESCRIPTION",
"SHOW_ALL_WO_SECTION" => "Y"
),
null,
array()
);
}
$by='name';
$sort = 'ASC';
$APPLICATION->IncludeComponent(
"custom:catalog.section",
'visual',
array(
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"ELEMENT_SORT_FIELD" => $by,
"ELEMENT_SORT_ORDER" => $sort,
"ELEMENT_SORT_FIELD2" => '',
"ELEMENT_SORT_ORDER2" => '',
"PROPERTY_CODE" => Array(),
"META_KEYWORDS" => $arParams["LIST_META_KEYWORDS"],
"META_DESCRIPTION" => $arParams["LIST_META_DESCRIPTION"],
"BROWSER_TITLE" => $arParams["LIST_BROWSER_TITLE"],
"INCLUDE_SUBSECTIONS" => $arParams["INCLUDE_SUBSECTIONS"],
"BASKET_URL" => $arParams["BASKET_URL"],
"ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"],
"PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"],
"SECTION_ID_VARIABLE" => $arParams["SECTION_ID_VARIABLE"],
"PRODUCT_QUANTITY_VARIABLE" => $arParams["PRODUCT_QUANTITY_VARIABLE"],
"PRODUCT_PROPS_VARIABLE" => $arParams["PRODUCT_PROPS_VARIABLE"],
"FILTER_NAME" => 'searchFilter',
"CACHE_TYPE" => $arParams["CACHE_TYPE"],
"CACHE_TIME" => $arParams["CACHE_TIME"],
"CACHE_FILTER" => $arParams["CACHE_FILTER"],
"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
"SET_TITLE" => $arParams["SET_TITLE"],
"SET_STATUS_404" => $arParams["SET_STATUS_404"],
"DISPLAY_COMPARE" => $arParams["USE_COMPARE"],
"PAGE_ELEMENT_COUNT" => 48,
"LINE_ELEMENT_COUNT" => 4,
"PRICE_CODE" => $arParams["PRICE_CODE"],
"USE_PRICE_COUNT" => $arParams["USE_PRICE_COUNT"],
"SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"],
"PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"],
"USE_PRODUCT_QUANTITY" => $arParams['USE_PRODUCT_QUANTITY'],
"PRODUCT_PROPERTIES" => Array(),
"DISPLAY_TOP_PAGER" => $arParams["DISPLAY_TOP_PAGER"],
"DISPLAY_BOTTOM_PAGER" => $arParams["DISPLAY_BOTTOM_PAGER"],
"PAGER_TITLE" => $arParams["PAGER_TITLE"],
"PAGER_SHOW_ALWAYS" => $arParams["PAGER_SHOW_ALWAYS"],
"PAGER_TEMPLATE" => $arParams["PAGER_TEMPLATE"],
"PAGER_DESC_NUMBERING" => $arParams["PAGER_DESC_NUMBERING"],
"PAGER_DESC_NUMBERING_CACHE_TIME" => $arParams["PAGER_DESC_NUMBERING_CACHE_TIME"],
"PAGER_SHOW_ALL" => $arParams["PAGER_SHOW_ALL"],
"OFFERS_CART_PROPERTIES" => $arParams["OFFERS_CART_PROPERTIES"],
"OFFERS_FIELD_CODE" => $arParams["LIST_OFFERS_FIELD_CODE"],
"OFFERS_PROPERTY_CODE" => $arParams["LIST_OFFERS_PROPERTY_CODE"],
"OFFERS_SORT_FIELD" => $arParams["OFFERS_SORT_FIELD"],
"OFFERS_SORT_ORDER" => $arParams["OFFERS_SORT_ORDER"],
"OFFERS_SORT_FIELD2" => $arParams["OFFERS_SORT_FIELD2"],
"OFFERS_SORT_ORDER2" => $arParams["OFFERS_SORT_ORDER2"],
"OFFERS_LIMIT" => $arParams["LIST_OFFERS_LIMIT"],
"SECTION_ID" => "",
"SECTION_CODE" => $_POST['SECTION_CODE'],
"SECTION_URL" => '/catalog/#SECTION_CODE#/',
"DETAIL_URL" => '/catalog/#ELEMENT_CODE#.html',
'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
'CURRENCY_ID' => $arParams['CURRENCY_ID'],
'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"],
'LABEL_PROP' => $arParams['LABEL_PROP'],
'ADD_PICT_PROP' => $arParams['ADD_PICT_PROP'],
'PRODUCT_DISPLAY_MODE' => $arParams['PRODUCT_DISPLAY_MODE'],
'OFFER_ADD_PICT_PROP' => $arParams['OFFER_ADD_PICT_PROP'],
'OFFER_TREE_PROPS' => $arParams['OFFER_TREE_PROPS'],
'PRODUCT_SUBSCRIPTION' => $arParams['PRODUCT_SUBSCRIPTION'],
'SHOW_DISCOUNT_PERCENT' => $arParams['SHOW_DISCOUNT_PERCENT'],
'SHOW_OLD_PRICE' => $arParams['SHOW_OLD_PRICE'],
'MESS_BTN_BUY' => $arParams['MESS_BTN_BUY'],
'MESS_BTN_ADD_TO_BASKET' => $arParams['MESS_BTN_ADD_TO_BASKET'],
'MESS_BTN_SUBSCRIBE' => $arParams['MESS_BTN_SUBSCRIBE'],
'MESS_BTN_DETAIL' => $arParams['MESS_BTN_DETAIL'],
'MESS_NOT_AVAILABLE' => $arParams['MESS_NOT_AVAILABLE'],
),
null
);
$result=ob_get_clean();
echo $result;
}
?>[/CODE]
Если подключать только catalog.section, то он отдает часть нефильтрованного каталога.
Но если подключить умный фильтр, которым вроде бы надо отфильтровать этот каталог, то вывода вообще нет. Как будто в это фильтре где-то die() срабатывает.
Подскажите в чем может быть проблема. Или может я вообще не так действую?
Заранее благодарен