Forked from kvalexandr/Bitrix Next and Prev news.detail
Last active
October 25, 2019 17:01
-
-
Save artemsites/15b6007e8a3ba94868fde0d80004f02a to your computer and use it in GitHub Desktop.
Bitrix next and prev elements of news.detail. Следующий и предыдущий элемент в news.detail.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
В result_modifier.php шаблона вставляем: | |
<? | |
/** | |
* Находим предыдущий и следующий элемент портфолио. | |
*/ | |
// сортировку берем из параметров компонента | |
$arSort = array( | |
$arParams["SORT_BY1"] => $arParams["SORT_ORDER1"], | |
$arParams["SORT_BY2"] => $arParams["SORT_ORDER2"], | |
); | |
// выбрать нужно id элемента, его имя и ссылку. Можно добавить любые другие поля, например PREVIEW_PICTURE или PREVIEW_TEXT | |
$arSelect = array( | |
"ID", | |
"NAME", | |
"DETAIL_PAGE_URL", | |
"PROPERTY_36_CODE"//LOGO | |
); | |
// выбираем активные элементы из нужного инфоблока. Раскомментировав строку можно ограничить секцией | |
$arFilter = array( | |
"IBLOCK_ID" => $arResult["IBLOCK_ID"], | |
//"SECTION_CODE" => $arParams["SECTION_CODE"], | |
"ACTIVE" => "Y", | |
"CHECK_PERMISSIONS" => "Y", | |
); | |
// выбирать будем по 1 соседу с каждой стороны от текущего | |
$arNavParams = array( | |
"nPageSize" => 1, | |
"nElementID" => $arResult["ID"], | |
); | |
$arItems = array(); | |
$rsElement = CIBlockElement::GetList($arSort, $arFilter, false, $arNavParams, $arSelect); | |
$rsElement->SetUrlTemplates($arParams["DETAIL_URL"]); | |
while ($obElement = $rsElement->GetNextElement()) { | |
$arItems[] = $obElement->GetFields(); | |
} | |
// возвращается от 1го до 3х элементов в зависимости от наличия соседей, обрабатываем эту ситуацию | |
if (count($arItems) == 3) : | |
$arResult["TORIGHT"] = array( | |
"NAME" => $arItems[0]["NAME"], | |
"URL" => $arItems[0]["DETAIL_PAGE_URL"], | |
"LOGO" => $arItems[0]["~PROPERTY_36_CODE_VALUE"] | |
); | |
$arResult["TOLEFT"] = array( | |
"NAME" => $arItems[2]["NAME"], | |
"URL" => $arItems[2]["DETAIL_PAGE_URL"], | |
"LOGO" => $arItems[2]["~PROPERTY_36_CODE_VALUE"] | |
); | |
elseif (count($arItems) == 2) : | |
if ($arItems[0]["ID"] != $arResult["ID"]) | |
$arResult["TORIGHT"] = array( | |
"NAME" => $arItems[0]["NAME"], | |
"URL" => $arItems[0]["DETAIL_PAGE_URL"], | |
"LOGO" => $arItems[0]["~PROPERTY_36_CODE_VALUE"] | |
); | |
else | |
$arResult["TOLEFT"] = array( | |
"NAME" => $arItems[1]["NAME"], | |
"URL" => $arItems[1]["DETAIL_PAGE_URL"], | |
"LOGO" => $arItems[1]["~PROPERTY_36_CODE_VALUE"] | |
); | |
endif; | |
// в $arResult["TORIGHT"] и $arResult["TOLEFT"] лежат массивы с информацией о соседних элементах | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- В нужном месте шаблона детальной новости или статьи (template.php) вставляем следующий код: --> | |
<?if(is_array($arResult["TOLEFT"])):?> | |
<a href="<?=$arResult["TOLEFT"]["URL"]?>"> | |
< <?=$arResult["TOLEFT"]["NAME"]?> | |
</a> | |
<?endif?> | |
<?if(is_array($arResult["TORIGHT"])):?> | |
<a href="<?=$arResult["TORIGHT"]["URL"]?>"> | |
<?=$arResult["TORIGHT"]["NAME"]?> > | |
</a> | |
<?endif?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment