Функция addNextPosts вызывается нажатием ссылки и формирует переход по адресу, например,
Параметр next - число элементов для добавления. Параметр offset - смещение от первого элемента инфосистемы. Параметр group_id - id группы ИС в которой находимся.
Функция addNextPosts вызывает обратную функцию addNextPostsCallback, которая добавляет порцию элементов инфосистемы в список.
Стоит обратить внимание значение offset должно соответствовать значению указанному в настройках узла ИС кол-во элементов на странице.
Далее подготавливаем ТДС.
В настройках ТДС ищем строку со следующим содержанием:
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show($oInformationsystem);
Обычно это 5-я строка. После нее добавляем следующие строки кода
if (Core_Array::getRequest('next'))
{
$limit = intval(Core_Array::getRequest('next'));
$offset= intval(Core_Array::getRequest('offset'));
$group= intval(Core_Array::getRequest('group_id'));
<!-- Отображение подгрупп данной группы, только если подгруппы есть и не идет фильтра по меткам -->
<xsl:if test="count(tag) = 0 and count(.//informationsystem_group[parent_id=$group]) > 0">
<!-- Часть кода удалена -->
</xsl:if>
<!-- Отображение записи информационной системы -->
<div class="articles" data-offset="{limit}">
<xsl:apply-templates select="informationsystem_item[active=1]"/>
</div>
<xsl:choose>
<xsl:when test="$group = 0">
<xsl:if test="total > limit">
<p class="more_posts bg-success"><a href="" onclick="return $.addNextPosts('{url}', {limit}, {$group})">+ больше постов</a></p>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:if test="total > limit">
<p class="more_posts bg-success"><a href="" onclick="return $.addNextPosts('{//informationsystem_group[@id=$group]/url}', {limit}, '{$group}')">+ больше постов</a></p>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="count(informationsystem_group_properties) and group != 0">
Я сознательно удалил часть текста из xsl-шаблона, чтобы он не мешал увидеть суть изменений. Внутри шаблона "/informationsystem" я сделал 2 условия, которые проверяют элемент "ajax" xml-файла и в зависимости от его значения формируют содержание.
В условии xsl:if test="ajax = 0" строка вызова шаблона показа элемента инфосистемы xsl:apply-templates select="informationsystem_item[active=1]" заключена обернута в div class="articles" data-offset="{limit}". Это контейнер для элементов инфосистемы, в конец которого обратная функция записывает очередную порцию элементов.
Mcross, все получилось, кроме кнопки Показать еще - она до бесконечности показывается
элементы уже закончились, а она все есть
и открывает пустые дивы потом
что делаю не так?