Допустим мы имеем ресурс некой страницы с шаблоном Main. Пусть у нас есть ресурс-контейнер с ID = 2, в котором вложены дочерние ресурсы. Эти ресурсы мы планируем вывести на главной.
#. Создаем сниппет с именем GetRes с таким содержимым:
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
$output = $modx->runSnippet('getResources',array(
'parents'=>$_REQUEST['parents'],
'tpl'=>'item',
'includeTVs'=>'1',
'processTVs'=>'1',
'limit'=>'0',
'showHidden'=>'0'
));
return $output;
}
#. Создаем чанк с именем item:
<a href="/[[~[[+id]]]]">[[+pagetitle]]</a> <br />
#. Создаем в дереве ресурсов страницу и в контенте пишем
[[!GetRes]]
. Указываем ей псевдоним ajaxitems . Например, адрес этого ресурса при дефолтных настройках пусть получается таким http:// mysite.ru/ajaxitems.html
#. Помещаем в шаблон Main (внутри head) такой код:
<script type="text/javascript" src="<a href="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js</a>"></script>
<script type="text/javascript" >
function AjaxLoadItems(url,parents_string) {
$("#ajax-items").addClass("loading");
$.ajax({
url: url,
data: {parents: parents_string},
success: function(data) {
$("#ajax-items").removeClass("loading");
$('#ajax-items').html(data);
}
});
}
$(document).ready(functon() {
AjaxLoadItems("http:// mysite.ru/ajaxitems.html", "2");
// 2 - это id нашего ресурса-контейнера
});
</script>
#. В нужном месте (где мы хотим вывести список) HTML-кода помещаем такой код:
<div id="ajax-items">Здесь появятся ресурсы с помощью AJAX</div>
Максим 17.10.2013 02:17 #
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
$parents = ... ;
$output = $modx->runSnippet('getResources', ... );
return $output;
}
Отдельный шаблон я бы тоже не стал создавать.
Евгений Pulsar 17.10.2013 08:35 #
Евгений Pulsar 19.10.2013 05:26 #
Алексей 15.01.2016 09:52 #