Дизайн создается только для наглядного и удобного предоставления содержимого сайта, пользователи идут на сайт за информацией, а не ради любования картинками, градиентами и плагечками. Задача дизайнера как можно нагляднее и удобнее продумать навигацию и восприятие информации. Странное дело, в Битрикс по умолчанию, отсутсвует функционал для навигации внутри новостей или статей аля "Следующая/Предыдущая" при подробном просмотре. Давайте вставим?
Странное дело, в Битрикс по умолчанию, отсутсвует функционал для навигации внутри новостей или статей аля "Следующая/Предыдущая" при подробном просмотре. Давайте вставим?
Собственно все элементарно: в шаблон news.detail , в нужном месте, достаточно вставить вот такой код
<?$rs=CIBlockElement::GetList(
array("active_from" => "desc"),
array("ACTIVE"=>"Y", "IBLOCK_ID"=>$arResult["IBLOCK_ID"]),
false,
array("nElementID"=>$arResult["ID"], "nPageSize"=>1),
array("ID")
);
while($ar=$rs->GetNext()) {
$page[] = $ar["ID"]; }
?>
<?if (count($page) == 2 && $arResult["ID"] == $page[0]):?>
<a href="/путь для ЧПУ/<?=$page[1]?>/">Предыдущая</a>
<?elseif (count($page) == 3):?>
<a href="/путь для ЧПУ/<?=$page[0]?>/">Следующая</a>
<a href="/путь для ЧПУ/<?=$page[2]?>/">Предыдущая</a>
<?elseif (count($page) == 2 && $arResult["ID"] == $page[1]):?>
<a href="/путь для ЧПУ/<?=$page[0]?>/">Следующая</a>
<?endif;?>
Само собой привел безо всякого оформления, вы сможете назначить свои классы или списки для ссылок. Пример работы: собственно под этим текстом. Удачного допиливания битрикс под удобства ).

В 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" ); // выбираем активные элементы из нужного инфоблока. Раскомментировав строку можно ограничить секцией $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"]); $arResult["TOLEFT"] = Array("NAME"=>$arItems[2]["NAME"], "URL"=>$arItems[2]["DETAIL_PAGE_URL"]); elseif(count($arItems)==2): if($arItems[0]["ID"]!=$arResult["ID"]) $arResult["TORIGHT"] = Array("NAME"=>$arItems[0]["NAME"], "URL"=>$arItems[0]["DETAIL_PAGE_URL"]); else $arResult["TOLEFT"] = Array("NAME"=>$arItems[1]["NAME"], "URL"=>$arItems[1]["DETAIL_PAGE_URL"]); endif; // в $arResult["TORIGHT"] и $arResult["TOLEFT"] лежат массивы с информацией о соседних элементах ?> |
В нужном месте шаблона детальной новости
Код |
---|
<?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?> |
Сайт автора http://alexvaleev.ru/
Подскажите пожалуйста, а помимо навигации внутри статьи, как сделать разбивку статьи если в ней очень много текста на подстраницы с величиной такой подстраницы например с максимальной длинной текста не более 5000
П.С. А как вы уменьшили количество кнопок в редакторе для комментариев?

Цитата |
---|
Ярослав пишет: Здравствуйте Михаил! Подскажите пожалуйста, а помимо навигации внутри статьи, как сделать разбивку статьи если в ней очень много текста на подстраницы с величиной такой подстраницы например с максимальной длинной текста не более 5000 П.С. А как вы уменьшили количество кнопок в редакторе для комментариев? |
Настройки редактора для пользователей настраивается в Сервисы-Форум при создании нового подфорума. Просто запрещающими методами "Запретить ссылки" , "Запретить таблицы" ну итд- чтобы только работа с текстом осталось, Можно хоть все поотключать- но как же без смайликов-то

Цитата | ||
---|---|---|
Михаил Базаров пишет:
Настройки редактора для пользователей настраивается в Сервисы-Форум при создании нового подфорума. Просто запрещающими методами "Запретить ссылки" , "Запретить таблицы" ну итд- чтобы только работа с текстом осталось, Можно хоть все поотключать- но как же без смайликов-то |
Код |
---|
<?$rs=CIBlockElement::GetList( array("active_from" => "desc"), array("ACTIVE"=>"Y", "IBLOCK_ID"=>$arResult["IBLOCK_ID"]), false, array("nElementID"=>$arResult["ID"], "nPageSize"=>1), array("ID", "CODE")); while($ar=$rs->GetNext()) { $page[] = $ar["CODE"]; }?> <div class="news_page"> <ul> <?if (count($page) == 2 && $arResult["CODE"] == $page[0]):?> <li><a href="/news/<?=$page[1]?>/">Следующая новость »</a></li> <?elseif (count($page) == 3):?> <li><a href="/news/<?=$page[0]?>/">« Предыдущая новость</a></li> <li><a class="" href="/news/<?=$page[2]?>/">Следующая новость »</a></li> <?elseif (count($page) == 2 && $arResult["ID"] == $page[1]):?> <li><a href="/news/<?=$page[0]?>/">« Предыдущая новость</a></li> <?endif;?> </ul> </div> |
Подскажите пожалуйста, как можно сделать так, чтобы при детальном просмотре новости можно было переходить к следующей и предыдущей не по ID новости, а по числу сортировки (которое 500 по умолчанию)? Что нужно поменять в вашем коде:
Цитата | ||||
---|---|---|---|---|
Михаил Базаров пишет: Более феншуйный и правильный вариант: В result_modifier.php (если нет, нужно создать) шаблона вставляем
В нужном месте шаблона детальной новости
Сайт автора http://alexvaleev.ru/ |

Использую в своем проекте "Более феншуйный и правильный вариант".
Но почему-то под каждой новость выводиться толька одна ссылка (либо на предыдущую, либо на следующую), но никак не обе сразу.