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

Добавить архив новостей

00 голосов
5
Всем добрый день!
Огромная просьба помочь экспертам.
Как добавить в раздел новости архив новостей или сделать чтобы на странице отображалось например 10 новостей, остальные шли на вторую страницу
код новостей

Наиболее лучший вариант сделать архив новостей, чтобы по истечению периода активности новость помещалась в архив.
Цитата
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Список новостей");
?><?$APPLICATION->IncludeComponent("demo:news.line", ".default", Array(
"IBLOCK_TYPE" => "news",
"IBLOCKS" => array(
0 => "3",
),
"NEWS_COUNT" => "40",
"SORT_BY1" => "ACTIVE_FROM",
"SORT_ORDER1" => "DESC",
"SORT_BY2" => "SORT",
"SORT_ORDER2" => "ASC",
"DETAIL_URL" => "news_detail.php?ID=#ELEMENT_ID#",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "300"
)
);?><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>


Спасибо!
спросил 04 Ноя, 13 от TYtu (200 баллов)

5 Ответы

00 голосов
Использовать стандартный компонент "Список новостей" (bitrix:news.list), в параметрах задать нужное количество новостей, показываемых на одной странице.
ответил 11 Дек, 13 от smileplz (8,020 баллов)
00 голосов
Спасибо, разобрался!
ответил 25 Март, 14 от TYtu (200 баллов)
00 голосов
Коллеги, у меня такая же задача. Но ещё нужно чтобы в архиве начиналось с 11 новости а не опять с первой.
В настройках компонента есть возможность указать сколько новостей нужно отображать, но нет возможности указать с какой новости начать вывод новостей.

Кто сталкивался с похожей задачей?
ответил 17 Июль, 14 от leeth (100 баллов)
00 голосов
Включаем постраничную навигацию и вешаем редирект с 1й страницы сразу на вторую, либо линк прописываем сразу на вторую страницу - будет вам сразу 11 новость
ответил 17 Ноя, 14 от Cyber (540 баллов)
00 голосов
С редиректом в навигаторе будет ссылка на первую страницу.

Я скопировал компонент news.list и добавил несколько строк:

 
Код
       $arNavParamsFirst = $arNavParams;
        if (empty($arNavParamsFirst['nTopCount'])){
            $arNavParamsFirst['nTopCount'] = 10;
        }
        $arExc = CIBlockElement::GetList($arSort, array_merge($arFilter, $arrFilter), false, $arNavParamsFirst , $arSelect);
        $arFilterID = array();
        while($obElement = $arExc->GetNextElement())
        {
            $arItem = $obElement->GetFields();
            $arFilterID[] = $arItem["ID"];
        }
        $arFilter['!ID'] = $arFilterID;
        print_r(array_merge($arFilter, $arrFilter));
        $rsElement = CIBlockElement::GetList($arSort, array_merge($arFilter, $arrFilter), false, $arNavParams, $arSelect);

делаем в два запроса.
первый определяет ID первых 10 страниц.
второй выбирает с изменённым фильтром
ответил 13 Март, 15 от leeth (100 баллов)

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

0 голосов
5 ответов
спросил 05 Ноя, 13 от MonikA (120 баллов)
0 голосов
1 ответ
0 голосов
6 ответов
спросил 15 Окт, 13 от Kania (5,180 баллов)
0 голосов
0 ответов
спросил 04 Март, 16 от аноним