Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Про вывод новостей

00 голосов
7
Уважаемые гуру, посдкажите решение или толковую ссылку на документацию.
Задача такая - вывести новости из инфоблока в порядке убывания (т.е. последняя новость будет самой верхней), но без (!) самой последней. Т.е. вывести например 5 последних новостей, начиная с предпоследней. (или например с третьей, пятой и т.д.).
А также как вывести одну(!) предпоследнюю новость? или одну произвольную, но не по ID а путем вычитания определенного количества от списка новостей отсортированных в порядке убывания? Надеюсь вы меня поняли.
Где задаются условия вывода?
Если не трудно пример кода приведите плиз.
спросил 02 Авг, 13 от Holiu (600 баллов)

7 Ответы

00 голосов
в шаблоне можно выставить что угодно
ответил 02 Авг, 13 от millenium (140 баллов)
00 голосов
Цитата
Алексей Монастырский пишет:
в шаблоне можно выставить что угодно



спасибо большое но я просил конкретики, например привести пример вывода одной предпоследней (по дате) новости
в стандартных настройках я не нашел как это реализовать
ответил 30 Сен, 13 от Holiu (600 баллов)
00 голосов
проще всего выставить всем порядок сортировки, и на выводе поставить убывание\возрастание как нужно
ответил 31 Дек, 13 от Rogarond (820 баллов)
00 голосов
Цитата
eddy_embers пишет:
проще всего выставить всем порядок сортировки, и на выводе поставить убывание\возрастание как нужно


вот я и спрашиваю, как отрезать самую последнюю новость например или 2 последних, чтобы вывести ОДНУ ПРЕДПОСЛЕДНЮЮ или ОДНУ ПРЕДПРЕДПОСЛЕДНЮЮ (в свойствах инфоблока то можно только выводить количество). Т.е. я могу выставить чтобы выводилась ОДНА новость но она будет либо самая последняя либо самая первая а мне нужна ОДНА но ПРЕДпоследняя.
ответил 16 Апр, 14 от Holiu (600 баллов)
00 голосов
Попробуй открыть для редактирования шаблон вывода новостей. Там будет строка <?foreach($arResult["ITEMS"] as $arItem):?>
Можно заменить ее на что-то в этом духе
<? for ($j=count($arResult)-1; $j<count($arResult); $j++)
{$arItem=$arResult[$j]; ?>
ответил 12 Авг, 14 от Nazarei (140 баллов)
00 голосов
Цитата
Юлия Бедросова пишет:
Попробуй открыть для редактирования шаблон вывода новостей. Там будет строка <?foreach($arResult["ITEMS"] as $arItem):?>
Можно заменить ее на что-то в этом духе
<? for ($j=count($arResult)-1; $j<count($arResult); $j++)
{$arItem=$arResult[$j]; ?>



Вот весь код шаблона news.list, скопированного в мой шаблон.

Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="news-list">
<?if($arParams["DISPLAY_TOP_PAGER"]):?>
   <?=$arResult["NAV_STRING"]?><br />
<?endif;?>
<?foreach($arResult["ITEMS"] as $arItem):?> 
   <p class="news-item">

      <?if($arParams["DISPLAY_DATE"]!="N" && $arItem["DISPLAY_ACTIVE_FROM"]):?>
         <span class="news-date-time"><font color="#000000"><b><?echo $arItem["DISPLAY_ACTIVE_FROM"]?></b></font></span><br>
      <?endif?>
      <?if($arParams["DISPLAY_NAME"]!="N" && $arItem["NAME"]):?>
         <?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
            <a href="<?echo $arItem["DETAIL_PAGE_URL"]?>"><b><?echo $arItem["NAME"]?></b></a><br><br>
         <?else:?>
            <b><?echo $arItem["NAME"]?></b><br />
         <?endif;?>
      <?endif;?>
      <?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
         <?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
            <a href="<?=$arItem["DETAIL_PAGE_URL"]?>"><img class="preview_picture" border="0" hspace="5" vspace="5" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["PREVIEW_PICTURE"]["ALT"]?>" title="<?=$arItem["NAME"]?>" style="float:left" /></a>
         <?else:?>
            <img class="preview_picture" border="0" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["PREVIEW_PICTURE"]["ALT"]?>" title="<?=$arItem["NAME"]?>" style="float:left" />
         <?endif;?>
      <?endif?>
      <?if($arParams["DISPLAY_PREVIEW_TEXT"]!="N" && $arItem["PREVIEW_TEXT"]):?>
         <?echo $arItem["PREVIEW_TEXT"];?>
      <?endif;?>
      <?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
         <div style="clear:both"></div>
      <?endif?>
      <?foreach($arItem["FIELDS"] as $code=>$value):?>
         <small>
         <?=GetMessage("IBLOCK_FIELD_".$code)?>:&nbsp;<?=$value;?>
         </small><br />
      <?endforeach;?>
      <?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
         <small>
         <?=$arProperty["NAME"]?>:&nbsp;
         <?if(is_array($arProperty["DISPLAY_VALUE"])):?>
            <?=implode("&nbsp;/&nbsp;", $arProperty["DISPLAY_VALUE"]);?>
         <?else:?>
            <?=$arProperty["DISPLAY_VALUE"];?>
         <?endif?>
         </small><br />
      <?endforeach;?>
   </p>
<?endforeach;?>
<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
   <br /><?=$arResult["NAV_STRING"]?>
<?endif;?>
</div>


если меняю как Вы показали, страница не отображается вообще, наверное нужно закрывающий тег <?endforeach;?> тоже поменять например на <?endfor;?> ?
ответил 16 Дек, 14 от Holiu (600 баллов)
00 голосов
конечно, закрывающий тег тоже надо менять, думаю на } - так как там я ее открыла
ответил 07 Апр, 15 от Nazarei (140 баллов)

Похожие вопросы