Введите поисковый запрос

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

Часто возникает необходимость применять разные стили или 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;?>
...


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


Общий рейтинг: 1
1 оценка
Ваша оценка:

Комментарии (1)

اقا
27.03.2024

زتققک


Оставить заявку
 
 

Денис Бунаков

C 2012 года являюсь Битрикс Программистом.
Программист 1С:Битрикс – это веб-разработчик с узким профилем, который работает непосредственно с продукцией от компании 1С.