Dima_So
@Dima_So
Experientia est optima magistra

Как разделить превью новостей по условию в Битрикс?

На странице выводятся активные и прошедшие акции.
fe1921bce6e044ac869717801a6a44d4.png

Вопрос: как отделить новости у которых задано поле "окончание акции" на новую строку с отдельным заголовком. Вопрос именно в указании условия в шаблоне?

Код шаблона:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var array $arParams */
/** @var array $arResult */
/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */
/** @var CBitrixComponentTemplate $this */
/** @var string $templateName */
/** @var string $templateFile */
/** @var string $templateFolder */
/** @var string $componentPath */
/** @var CBitrixComponent $component */
$this->setFrameMode(true);
?>
<h1><?$APPLICATION->ShowTitle()?></h1>
<div class="news-page">	
<?foreach($arResult["ITEMS"] as $arItem):?>
	<?
	// echo($arItem['PROPERTIES']['SALE_END']['VALUE']);
	// echo "<br>";
	// echo date('d.m.Y h:i:s');
	$sale_class = '';
	$sale_end = $arItem['PROPERTIES']['SALE_END']['VALUE'];
		if(strtotime($sale_end) < strtotime(date('d.m.Y h:i:s')) && !empty($sale_end)) {
			$sale_class = "sale-grey";
		}
	$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')));
	?>
	<div class="news" id="<?=$this->GetEditAreaId($arItem['ID']);?>">

		<span class="date"><?echo $arItem["DISPLAY_ACTIVE_FROM"]?></span>

		<a class="title" href="<?=$arItem["DETAIL_PAGE_URL"]?>"><?echo $arItem["NAME"]?></a>
		<div class="<?=$sale_class?>">
		<?if($arItem["PREVIEW_PICTURE"]["SRC"]!=""):?>
			<a href="<?=$arItem["DETAIL_PAGE_URL"]?>" ><img alt="<?echo $arItem["NAME"]?>" title="<?echo $arItem["NAME"]?>" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>"></a>
		<?endif;?>
		</div>
		<?echo $arItem["PREVIEW_TEXT"];?>
		<a class="about" href="<?=$arItem["DETAIL_PAGE_URL"]?>">Подробнее</a>
		<?if ($sale_end){?>
		<?
			$date_end = explode(' ', $sale_end);  
		?>
		<div class="sale-end">
			Дата окончания акции:<br>
			<span><?=$date_end[0]?></span>
		</div>
		<?}?>

	</div>
					
<?endforeach;?>
</div>
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
agmegadeth
@agmegadeth
Веб-разработчик в дизайн студии
Прогони два цикла с разными условиями
<?foreach($arResult["ITEMS"] as $arItem):?>
    <? if (empty($arItem['PROPERTIES']['SALE_END']['VALUE'])) :?>
        Выводим без акции
    <? endif;?>
<?endforeach;?>

<?foreach($arResult["ITEMS"] as $arItem):?>
    <? if (!empty($arItem['PROPERTIES']['SALE_END']['VALUE'])) :?>
        Выводим с акцией
    <? endif;?>
<?endforeach;?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы