Способ, с помощью которого можно добавить "Показать по" в списке новостей.
Данный функционал используется, когда в списке новостей пользователь сам может решать по сколько элементов должно быть показано на одной странице.
Для этого перед выводом компонента (если он находится в составе комплексного):
<?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>