// Новые параметры сниппета в AJAX запросе
$params = array();
$params['tpl'] = '@INLINE <div id="[[+id]]" class="pic">[[+idx]]</div>
<div class="item">
<span class="title">Гостиница [[+pagetitle]]</span>
<div class="foto">'.
$modx->runSnippet("Gallery", array("album" => $modx->runSnippet("getResourceField",
array("id" => '[[+id]]', "field" =>"GalleryAlbum", "isTV" =>"1")) ,
"thumbTpl" => "hotelTplThumbtop","limit" => "1")).'
</div>'
...array("id" => '[[+id]]'$modx->resource->get('id')$modx->resource->id
$resources = $modx->getIterator('modResource', array(
'pagetitle' => $ваш_pagetitle
));
foreach ($resources as $res) {
$output .= $res->get('id');
}
<?php
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}
$action = filter_input(INPUT_POST,'action');
if (empty($action)) {return;}
$res = '';
switch ($action) {
case 'getResources':
$params = array();
$params['tpl'] = '@INLINE <div id="[[+id]]" class="pic">[[+idx]]</div>
<div class="item">
<span class="title">Гостиница [[+pagetitle]]</span>
<div class="foto">'. $modx->runSnippet("Gallery", array("album" => $modx->runSnippet("getResourceField", array("id" => [[+id]], "field" =>"GalleryAlbum", "isTV" =>"1")) , "thumbTpl" => "hotelTplThumbtop","limit" => "1")).' </div>
<div class="inf">
<span class="adress">Адрес: [[+tv.adress]]</span><div class="clear"></div>
<span class="metro">[[+tv.metro_vo]]</span><div class="clear"></div>
<span class="metro">[[+tv.metro_p]]</span><div class="clear"></div>
<a class="grey" href="/[[+alias]]/">О гостинице</a>
<a class="blue" href="/">Номера</a>
<a class="blue" href="/">Цены</a><div class="clear"></div>
<p class="trans">[[+introtext]] </p>
</div>
<div class="buttons">
<span class="price">От [[+tv.min_price]] руб/сутки</span><div class="clear"></div>
<a class="onmap"><img src="images/onmap.png"/> Показать на карте</a>
<a class="buy" href="/"><img src="images/buy.png"/> Забронировать</a>
<a class="show"><img src="images/show.png"/> Раскрыть</a><div class="clear"></div>
</div>
</div>
<div class="clear"></div>';
$ltr = filter_input(INPUT_POST,'ltr');
$params['where'] = '{"pagetitle:LIKE":"%'.$ltr.'%"}';
$params['includeTVs'] = '1';
$params['processTVs'] = '1';
$params['parents'] = filter_input(INPUT_POST, 'parents', FILTER_SANITIZE_NUMBER_INT);
$res = $modx->runSnippet('getResources', $params); break;
}
if (!empty($res)) {
die($res);
}<input id="findit" class="input" onfocus="if(this.value=='Поиск гостиницы по названию') this.value='';" onblur="if(this.value=='') this.value='Поиск гостиницы по названию';" value="Поиск гостиницы по названию" data-action="getResources" data-tpl="hotelTpl" data-parents="100" data-ltr=""/> <div id="input"></div>
$('#findit').livequery('change',function(){
$('#findit').attr('data-ltr', $('#findit').val());
// Ajax post-запрос к странице, выдающей ресурсы (в ней сниппет ajaxResources)
$.ajax({
async: false,
url:"/find.php",
type: "POST",
data: $('#findit').data(),
success: function(data) {
$('#input').append(data);
}
})
})
$modx->runSnippet("Gallery", array("album" => $modx->runSnippet("getResourceField", array("id" => [[+id]], "field" =>"GalleryAlbum", "isTV" =>"1")) , "thumbTpl" => "hotelTplThumbtop","limit" => "1"))
[[Gallery?
&album=`[[+tv.GalleryAlbum]]`
&thumbTpl=`hotelTplThumbtop`
&limit=`1`
]]