Для динамической страницы добавляем атрибут с именем "Количество комментариев на странице", даем ему имя "CommentsOnPage" и значение по умолчанию "10".
Редактируем в структуре сайта узлы с этой динамической страницей, указываем кол-во комментариев на страницу и сохраняем.
В настройки динамической страницы перед:
$GLOBALS['INFSYS_result'] = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id, '', $break_if_path_not_found);
Добавляем:
// Нумерация для комментариев
if (ereg ("^comment-page-([0-9]*)$", end($GLOBALS['URL_ARRAY']), $regs) && to_int($regs[1]) > 0)
{
/* Страница умножается на кол-во элементов, выводимых на страницу */
$break_if_path_not_found = false;
$GLOBALS['comment-page'] = $regs[1];
}
В код динамической страницы вместо
$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem( ...
пишем
// Для тех, кто поленился в структуре отредактировать и указать
if (!isset($GLOBALS['LA']['CommentsOnPage']))
{
$GLOBALS['LA']['CommentsOnPage'] = 10;
}
$begin = to_int($GLOBALS['comment-page']);
if ($begin <= 0)
{
$begin = 0;
$param['begin'] = 0;
}
else
{
$begin--;
$param['begin'] = $begin * to_int($GLOBALS['LA']['CommentsOnPage']);
}
$external_propertys['CommentsCurrentPage'] = $begin;
$param['count'] = to_int($GLOBALS['LA']['CommentsOnPage']);
$external_propertys['CommentsOnPage'] = $param['count'];
// Выводим элемент информационной системы
$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys,
$param);
Теперь в XSL после:
<xsl:apply-templates select="item_comments/comment"/>
добавим нумерацию:
<xsl:call-template name="for">
<xsl:with-param name="items_on_page" select="/document/CommentsOnPage" />
<xsl:with-param name="current_page" select="/document/CommentsCurrentPage"/>
<xsl:with-param name="link" select="/document/item/item_path"/>
<xsl:with-param name="count_items" select="item_comments/count_comments"/>
<xsl:with-param name="visible_pages">6</xsl:with-param>
<xsl:with-param name="prefix">comment-page</xsl:with-param>
</xsl:call-template>
если на "вторых" страницах с комментариями не хочется, чтобы публиковался весь информационный элемент, а публиковалась только часть, например название (чтобы поисковые системы не посчитали внутренними дубликатами страниц), в XSL те блоки, которые должны публиковаться на главной странице добавим в условие
<!-- если нет текущей страницы комментариев или она больше 0 -->
<xsl:if test="not(/document/CommentsCurrentPage/node()) or /document/CommentsCurrentPage = 0">
...
</xsl:if>
Работать будет с версии 5.2.0.