Существует проблема при фильтрации новостей. Сниппет обрабатывает только первый GET запрос, при повторном запросе данные остаются неизменными.
Код сниппета
<?php Filter Fields Settings
$filter = array();
if($_REQUEST['classNews']) {
print_r(gettype($_REQUEST['classNews']));
$filter[] = 'classNews='.$_REQUEST['classNews'];
}
//Sort
if($_GET['sortby']) {
$sortby = $_GET['sortby'];
} else {
$sortby = 'pagetitle';
}
if($_GET['sortdir']) {
$sortdir = $_GET['sortdir'];
} else {
$sortdir = 'asc';
}
//Offset
$offset = 0;
if($_GET['offset']){
$offset = $_GET['offset'];
}
if($filter) {
$where = $modx->toJSON(array($filter));
} else {
$where = '';
}
$params_count = array(
'parents' => $parents,
'limit' => 0,
'tpl' => '@INLINE ,',
'select' => 'id',
'includeTVs' => $fields,
'showHidden' => '1',
'where' => $where
);
print_r($params_count);
$count = $modx->runSnippet('pdoResources',$params_count);
$count = count(explode(',',$count))-1;
$modx->setPlaceholder('count',$count);
$params = array(
'parents' => $parents,
'limit' => $limit,
'offset' => $offset,
'tpl' => $tpl,
'select' => 'id,pagetitle,introtext,content,publishedon',
'includeTVs' => $fields,
'showHidden' => '1',
'sortby' => $sortby,
'sortdir' => $sortdir,
'where' => $where
);
print_r($params);
$more = $count - $offset - $limit;
$lim = $more > $limit ? $limit : $more;
$button = '';
if($more > 0){
$button = '<div class="ajax-filter-count" data-
count="'.$count.'"><a href="#" class="ajax-more">Загрузить еще
'.$lim.' из '.$more.'</a></div>';
}
return $modx->runSnippet('pdoResources',$params).$button;
Ниже код отправки запроса
var ajaxContainerSelector = '.ajax-container',
function ajaxMainFunction() {
console.log($(ajaxFormSelector).serialize())
$.ajax({
data: $(ajaxFormSelector).serialize()
}).done(function(response) {
var $response = $(response);
console.log($response+"++")
$(ajaxContainerSelector).fadeOut(fadeSpeed);
setTimeout(function() {
$(ajaxContainerSelector).html($response.find(ajaxContainerSelector).html()).fadeIn(fadeSpeed);
ajaxCount();
}, fadeSpeed);
});
}
Форма с вызовом сниппета
<div class="row">
<div class="col-xl-2 col-lg-2"></div>
<div class="col-xl-8 col-lg-8 col-md-12">
<div class="row">
<form class="ajax-form">
<input type="hidden" name="sortby" value="pagetitle">
<input type="hidden" name="sortdir" value="asc">
<h1 class="h-contacts">НОВОСТИ</h1>
<ul class="news-sections">
<li class="sections-item-text border" id="allNews" onclick="Border(this,0)">Все новости</li>
<li class="sections-item-text" id="masterClass" onclick="Border(this,1)">Мастер-классы</li>
<li class="sections-item-text" id="expertOpinion" onclick="Border(this,2)">Мнение эксперта</li>
</ul>
<label>
<input type='radio' value="0" name="classNews" checked=""></input>
<input type='radio' value="1" name="classNews"></input>
<input type='radio' value="2" name="classNews" ></input>
</label>
</form>
</div>
</div>
<div class="col-xl-2 col-lg-2"></div>
</div>
</div>
<div class=" ajax-container container " id="result">
[[catalogFilter?
&parents=`4`
&limit=`3`
&fields=`classNews`
]]
</div>
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Натягиваю верстку на WordPressТема подразумевает древовидные комментарии
Собственно хочу сделать 2 INSERT, причем второй с неправильным полем f5 за место f4т