Способ, с помощью которого можно добавить "Показать по" в списке новостей.
Данный функционал используется, когда в списке новостей пользователь сам может решать по сколько элементов должно быть показано на одной странице.
Для этого перед выводом компонента (если он находится в составе комплексного):
<?php
$GLOBALS['mycomponent_variable'] = $arParams["NEWS_COUNT"];
if (array_key_exists("showBy", $_REQUEST)) {
if ( intVal($_REQUEST["showBy"]) && in_array(intVal($_REQUEST["showBy"]), array(5, 20, 35)) ) {
$GLOBALS['mycomponent_variable'] = intVal($_REQUEST["showBy"]);
$_SESSION["showBy"] = $GLOBALS['mycomponent_variable'];
} elseif ($_SESSION["showBy"]) {
$GLOBALS['mycomponent_variable'] = intVal($_SESSION["showBy"]);
}
}
?>
В вызове компонента:
<?$APPLICATION->IncludeComponent( "bitrix:news.list", "", Array( "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "NEWS_COUNT" => $GLOBALS['mycomponent_variable'], ...
И в самом шаблоне компонента:
<div class="show_number">
<span class="show_title">Показать по</span>
<ul class="number_list selectdropdown">
<? for( $i = 5; $i <= 40; $i+=15 ) : ?>
<li>
<a rel="nofollow" <? if ($i == $GLOBALS['mycomponent_variable']): ?>class="current"<? endif; ?>
href="<?= $APPLICATION->GetCurPageParam('showBy='.$i, array('showBy', 'mode')) ?>">
<?= $i ?>
</a>
</li>
<? endfor; ?>
</ul>
</div>