а можно ли как то внутри кешируемого сниппета [[MSearch]]
Вызвать дитто некешируемым ?
щас я вызываю так
return $modx->runSnippet("Ditto", $params);
может можно добавить какой нибудь необязательный параметр чтобы это поправить?
просто у меня небольшая проблемка с передачей параметров к дитто
в сниппете строится параметр filter который надо закешировать
но если я просто напишу [[MSearch]], то неверно будет работать пагинация
если не лень разбираться в коде то вот весь код сниппета
<?php
//give params
$country = $_POST['country'];
$place = $_POST['place'];
$types=$_POST['types'];
$num_room=$_POST['num_room'];
$price=$_POST['price'];
$size=$_POST['size'];
$data_is_send=$_POST['data_is_send'];
$start=$_GET['cat_start'];
$country_id = $_GET['country_id'];
//setup value
echo "<script type='text/javascript'>$(function(){";
if ( $num_room!="" ) echo "$('#num_room').attr('value',".$num_room.");";
echo "});</script>";
//general directory
$main = $modx->runSnippet("UltimateParent", array("topLevel" => "1") );
if( $country != 0 && $country != "" ) {
if( $place != 0 ) { $parents = $place; }
else { $parents = $country; }
}
else {
if ( $country_id == "" ) {
if ( $country != "" ) { $parents = $main; }
else {
$query = mysql_query( "SELECT * FROM modx_site_content WHERE parent=".$main );
$queryMass = mysql_fetch_array($query);
$parents = $queryMass['id'];
}
}
else { $parents=$country_id; }
}
$params['parents'] = $parents;
//initialize params
$params['randomize'] = "0";
$params['paginate'] = "1";
$params['show'] = "6";
$params['summarize'] = "6";
$params['hideFolders'] = "1";
$params['id'] = "cat";
$params['sortDir'] = "DESC";
$params['depth'] = "4";
$params['paginateSplitterCharacter'] = "|";
$params['tpl'] = "itemcatalog";
$params['noResults'] = "Sorry";
//Filter for search
$delim=''; $params['filter']='';
if( $types!="0" && $types!="" ) { $params['filter'] .= "tvtypes,".$types.",1"; $delim='|'; }
if( $num_room!="" ) { $params['filter'] .= $delim."tvnum_room,".$num_room.",1"; $delim='|'; }
if( $price!="0" && $price!="" ) {
$params['filter'] .= $delim."tvprice,".$price.",";
if($price<=5000000) { $params['filter'] .= "5"; } else { $params['filter'] .= "6"; }
$delim='|';
}
//print total
if( ($data_is_send == "1") || ($start != "") ) echo "<dl style='clear: both; margin:0 ;padding:0;'><b>Найдено: [+total+] объекта(ов)</b></dl>";
//run ditto
return $modx->runSnippet("Ditto", $params);
?>