10.01.2017
Спустя 3,5 года вопрос остается актуальным.
Есть ли решение этой задачи?
Спустя 3,5 года вопрос остается актуальным.
Есть ли решение этой задачи?
09.01.2017 16:28:49
[QUOTE]Руслан Дронов написал:
Добрый день, Не могу никак решить задачу с получением id статей отфильтрованных по дате из нескольких инфоблоков. В принципе задача тривиальная и реализована на многих сайта, когда на главную нужно вывести последние сообщения из всех разделов в порядке даты их публикации, но я не представляю как это сделать на bitrix. Приведу пример того что я хочу реализовать: Есть 5 инфоблоков с $iblock_id 24,31,45,55,67 В 1-ом инфоблоке с $iblock_id 24 последняя статья написана 9 января ее id 127 В 2-ом инфоблоке с $iblock_id 31 последняя статья написана 6 января ее id 111 В 3-ом инфоблоке с $iblock_id 45 последняя статья написана 1 января ее id 84 В 4-ом инфоблоке с $iblock_id 55 последняя статья написана 4 января ее id 105 В 5-ом инфоблоке с $iblock_id 67 последняя статья написана 3 января ее id 97 Нужно получить id статей из перечисленных инфоблоков в порядке убывания даты написания. Т.е. 1. id статьи написанной 9 января (из примера id 127) 2. id статьи написанной 6 января (из примера id 111) 3. id статьи написанной 4 января (из примера id 105) 4. id статьи написанной 3 января (из примера id 97) 5. id статьи написанной 1 января (из примера id 84) В примере указано 5 инфоблоков, реально их намного больше и количество будет расти. Я думаю, что логика должна быть следущая: Находим последнюю опубликованную статью в каждом из заданных по $iblock_id инфоблоков и вытаскиваем ее id и дату. Создаем массив. Дальше отфильтровываем массив по дате в порядке убывания. Получаем последние N элементов массива с датами и id. -------------------------------------------------------------------------------------------- Как вытащить id последнеей статьи из заданного инфоблока я разобрался <? if (CModule::IncludeModule("iblock")): $iblock_id = 15; $i = 0; $my_elements = CIBlockElement::GetList ( Array("ID" => "desc"), Array("IBLOCK_ID" => $iblock_id), false, Array ("nTopCount" => 1), Array('ID') ); while($ar_fields = $my_elements->GetNext()) { if($i == 0) $id1=$ar_fields; } endif; ?> , но как реализовать фильтр с массивом не могу понять. Спасибо за внимание. Буду рад любой помощи.[/QUOTE] Вопрос по-прежнему актуален. |
|
|
02.11.2016 00:37:20
[QUOTE]Александр Кислицын написал:
[CODE] $strReturn = '<div id="breadcrumb">'; for($index = 0, $itemSize = count($arResult); $index < $itemSize; $index++) { if ($index == 0) {$title = htmlspecialcharsex($arResult[$index]["TITLE"]); $strReturn .= '<span>'.$title.'</span> > ';} else {$title = htmlspecialcharsex($arResult[$index]["TITLE"]); if($arResult[$index]["LINK"] <> "" && $index != ($itemSize - 1)) $strReturn .= ' <a href="'.$arResult[$index]["LINK"].'" title="'.$title.'">'.$title.'</a> > '; //$strReturn .= ' <a href="'.$arResult[$index]["LINK"].'" title="'.$title.'">'.$title.'</a> > '; else $strReturn .= '<span>'.$title.'</span>'; } } $strReturn .= '</div>'; return $strReturn; ?> [/CODE][/QUOTE] Да, я теперь понял. [CODE]$strReturn .= ' <a href="'.$arResult[$index]["LINK"].'" title="'.$title.'" rel="nofollow" >'.$title.'</a> > '; [/CODE] Спасибо Вам большое. |
|
|
28.10.2016 18:14:32
[QUOTE]Александр Кислицын написал:
Вы в самом начале привели код цепочки. [URL=https://yandex.ru/support/webmaster/controlling-robot/html.xml#nofollow]https://yandex.ru/support/webmaster/controlling-robot/html.xml#nofollow[/URL] [/QUOTE] Ну да, на html понятно как сделать. Но здесь же цепочка генерируется php скриптом. Где я привел код цепочки? |
|
|
26.10.2016 16:36:30
[QUOTE]Александр Кислицын написал:
а смысл тогда в цепочке навигации? она как раз нужна для того, чтобы юзер мог по иерархии уйти вверх. обычно текущую страницу не делают ссылкой, чтобы не было проблем с SEO[/QUOTE] вот-вот по поводу SEO, c каждой страницы идет ссылка на этот раздел |
|
|
26.10.2016 14:35:56
[QUOTE]Игорь Долгополов написал:
[CODE] $curPage = $GLOBALS['APPLICATION']->GetCurPage($get_index_page=false); if ($curPage != SITE_DIR) { if (empty($arResult) || $curPage != $arResult[count($arResult)-1]['LINK']) $arResult[] = array('TITLE' => htmlspecialcharsback($GLOBALS['APPLICATION']->GetTitle(false, true)), 'LINK' => $curPage); } [/CODE]закомментируйте этот участок кода[/QUOTE] Игорь Долгополов, спасибо вам большое. Все получилось. Еще такой вопрос, как убрать активные ссылки из цепочки навигации "Главная > [URL=http://rusdrones.ru/articles/]Статьи[/URL] > Квадрокоптер для геодезической съёмки" В частности меня интересует активная ссылка "[URL=http://rusdrones.ru/articles/]Статьи[/URL]" Что нужно исправить в коде, чтобы не было активной ссылки на этот раздел? |
|
|