Найти в Дзене

Чётные и нечётные элементы в Битрикс

Часто возникает необходимость применять разные стили или html код к элементам компонентов новостей и каталога в 1С-Битрикс. Часто возникает необходимость применять разные стили или html код к элементам компонентов новостей и каталога в 1С-Битрикс. К примеру, нам надо, чтобы нечётные новости выводились в виде "стиль 1", а чётные вида "стиль 2". Для этого можно использовать небольшую проверку в шаблоне компонента. $i=1;
foreach($arResult["ITEMS"] as $arItem)
{
if($i%2==0)
{
// Тут четные
}
else
{
//Тут нечетные
}
$i++;
} Список новостей (bitrix:news.list) чётные и нечётные На примере шаблона компонента Битрикс "Список новостей (bitrix:news.list)" это будет выглядеть примерно так: <?$i=1;
foreach($arResult["ITEMS"] as $arItem):?>
<?
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["I
Оглавление

Часто возникает необходимость применять разные стили или html код к элементам компонентов новостей и каталога в 1С-Битрикс.

Часто возникает необходимость применять разные стили или html код к элементам компонентов новостей и каталога в 1С-Битрикс.

К примеру, нам надо, чтобы нечётные новости выводились в виде "стиль 1", а чётные вида "стиль 2". Для этого можно использовать небольшую проверку в шаблоне компонента.

$i=1;
foreach($arResult["ITEMS"] as $arItem)
{
if($i%2==0)
{
// Тут четные
}
else
{
//Тут нечетные
}
$i++;
}

Список новостей (bitrix:news.list) чётные и нечётные

На примере шаблона компонента Битрикс "Список новостей (bitrix:news.list)" это будет выглядеть примерно так:

<?$i=1;
foreach($arResult["ITEMS"] as $arItem):?>
<?
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
?>

<?{if($i%2==0){?>

<p>Чётная новость</p>
<p><?echo $arItem["NAME"]?></p>
<p><?echo $arItem["PREVIEW_TEXT"];?></p>

<?}else{?>

<p>Нечётная новость</p>
<p><?echo $arItem["NAME"]?></p>
<p><?echo $arItem["PREVIEW_TEXT"];?></p>

<?}$i++;}?>

<?endforeach;?>
...

Top элементов каталога (bitrix:catalog.top) чётные и нечётные

На примере шаблона компонента Битрикс "Top элементов каталога (bitrix:catalog.top)" это будет выглядеть примерно так:

...
<?foreach($arResult["ROWS"] as $arItems):?>
<!-- Количество элементов в строке (Начало строки)-->

<?$i=1;
foreach($arItems as $arElement):?>
<?if(is_array($arElement)):?>
<?
$this->AddEditAction($arElement['ID'], $arElement['EDIT_LINK'], CIBlock::GetArrayByID($arElement["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arElement['ID'], $arElement['DELETE_LINK'], CIBlock::GetArrayByID($arElement["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BCT_ELEMENT_DELETE_CONFIRM')));
?>

<?{if($i%2==0){?>

<p>Чётный элемент</p>
<?=$arElement["NAME"]?>
<?echo $arElement["PREVIEW_TEXT"];?>

<?}else{?>

<p>Нечётный элемент</p>
<?=$arElement["NAME"]?>
<?echo $arElement["PREVIEW_TEXT"];?>

<?}$i++;}?>
<?else:?>
<?endif;?>

<?endforeach;?>

<!-- Количество элементов в строке (Конец строки)-->
<?endforeach;?>
...

Я не претендую на красивость и оптимизацию кода, данные примеры требуются, чтобы показать логику (одну из) решения, кто-то делает иначе и более проще, вариантов много.