Когда стоит задача показывать на разных страницах пагинации разное количество элементов мозг начинает закипать от того какой способ для этого выбрать. Выносить из-за этого компонент новостей в собственное пространство и выдумывать сложную логику крайне не хочется , поэтому приходится идти на следующие хитрости.
Представим что на первой странице вместо двух первых элементов у нас выводится какой-то другой блок, а потом уже элементы.
Тогда делаем следующим образом:
Перед вызовом компонента (например новостей в index.php) ставим подобное условие:
if((empty($_REQUEST["PAGEN_1"]) || $_REQUEST["PAGEN_1"] == 1) || $_REQUEST["PAGEN_1"] == 2) $cntAuctions = 14; // для первой и второй страницы else $cntAuctions = 12; // для остальных // ... далее вызов компонента новостей и в нем параметры "NEWS_COUNT" => $cntAuctions,
В шаблоне template.php в цикле по элементам ставим проверку для второй странице подобную этой
foreach($arResult['ITEMS'] as $key => $item) { if($arResult['NAV_RESULT']->NavPageNomer == 2 && ($key == 0 || $key == 1)) // для второй страницы пропускаем первые 2 элемента continue; // вторую страницу можно еще проверять по _REQUEST // ... дальше ваш вывод элементов }
Также мне понадобилось изменить информационную строку в пагинации о кол-ве показываемых элементов, просто в шаблоне пагинации ставим
if($arResult['NavPageNomer'] == 2 ) $arResult["NavPageSize"] = $arResult["NavPageSize"] - 2;
По мне это гораздо проще, чем все другие возможные варианты. Пользуйтесь :)