Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
По статистике, посетители сайтов куда чаще оказываются на страницах конкретных статей и товаров, чем собственно на главной странице. Следовательно, есть смысл в первую очередь совершенствовать именно ее. В этой статье разберем пример модернизации страницы детального просмотра для улучшения поведенческих характеристик. А именно, добавим навигацию к предыдущей и следующей записи, а также результаты поиска по сайту.
1. Редактируем шаблон страницы detail.php
Добавим код в параметры компонента bitrix:catalog.section
2. Редактируем шаблон "подвала" component_epilog.php
3. Настраиваем параметры компонента .parameters.php
4. Настраиваем вывод результатов поиска result_modifier.php
5. Настраиваем шаблон template.php
Готово!
Назад в раздел
1. Редактируем шаблон страницы detail.php
Добавим код в параметры компонента bitrix:catalog.section
"PAGE_SEARCH_RESULT" => $APPLICATION->get_cookie("PAGE_SEARCH_RESULT"), // Страница с результатами поиска"PAGE_SEARCH_FILTER" => $APPLICATION->get_cookie("PAGE_SEARCH_FILTER"), // Сериализованный массив фильтра по элементам |
2. Редактируем шаблон "подвала" component_epilog.php
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();// Сохраним параметры фильтра в cookie пользователя$APPLICATION->set_cookie("PAGE_SEARCH_RESULT", $APPLICATION->GetCurPageParam(), time()+60*60*24*7);// Массив фильтра для CIBlockElement::GetListglobal ${$arParams["FILTER_NAME"]};$arrFilter = ${$arParams["FILTER_NAME"]}; // Блок с выбором раздела, если нужноif($_REQUEST["SECTION_CODE"]) { $arrFilter["SECTION_CODE"] = $_REQUEST["SECTION_CODE"];} foreach($arrFilter["PROPERTY"] as $key=>$arProperty) { $prefix = ""; if(strstr($key, "?")) { $key = str_replace(Array("?"), "", $key); $prefix = "?"; } $arrFilter[$prefix."PROPERTY_".$key] = $arProperty;}unset($arrFilter["PROPERTY"]);$APPLICATION->set_cookie("PAGE_SEARCH_FILTER", serialize($arrFilter), time()+60*60*24*7);?> |
3. Настраиваем параметры компонента .parameters.php
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();$arTemplateParameters = Array( "PAGE_SEARCH_RESULT" => Array( "PARENT" => "SECTION_CODE", "NAME" => "URL страницы с результатами поиска", "TYPE" => "STRING", "DEFAULT" => "" ), "PAGE_SEARCH_FILTER" => Array( "PARENT" => "SECTION_CODE", "NAME" => "Массив фильтра поиска с которого перешли на страницу", "TYPE" => "STRING", "DEFAULT" => "" ));?> |
4. Настраиваем вывод результатов поиска result_modifier.php
// ССЫЛКА НА СТРАНИЦУ С РЕЗУЛЬТАТАМИ ПОИСКА$arResult["SEARCH_RESULT"] = $APPLICATION->get_cookie("PAGE_SEARCH_RESULT");// ССЫЛКИ НА ПРЕДЫДУЩИЙ И СЛЕДУЮЩИЙ РЕЗУЛЬТАТ ПОИСКА$arrFilterOriginal = $APPLICATION->get_cookie("PAGE_SEARCH_FILTER");$arrFilterUser = unserialize($arrFilterOriginal);$arSort = Array("sort" => "asc", "timestamp_x" => "desc");$arFilter = array_merge( Array ("IBLOCK_ID" => $arResult["IBLOCK_ID"], "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y"), $arrFilterUser);// Выбирать будем по 1 соседу с каждой стороны от текущего$arNavParams = Array("nPageSize" => 1, "nElementID" => $arResult["ID"]);$arSelect = Array("ID", "NAME", "DETAIL_PAGE_URL" );$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["TOLEFT"] = Array("NAME"=>$arItems[0]["NAME"], "URL"=>$arItems[0]["DETAIL_PAGE_URL"]); $arResult["TORIGHT"] = Array("NAME"=>$arItems[2]["NAME"], "URL"=>$arItems[2]["DETAIL_PAGE_URL"]);elseif(count($arItems)==2): if($arItems[0]["ID"]!=$arResult["ID"]) $arResult["TOLEFT"] = Array("NAME"=>$arItems[0]["NAME"], "URL"=>$arItems[0]["DETAIL_PAGE_URL"]); else $arResult["TORIGHT"] = Array("NAME"=>$arItems[1]["NAME"], "URL"=>$arItems[1]["DETAIL_PAGE_URL"]);endif; |
5. Настраиваем шаблон template.php
<div class="links"> <?if($arResult["TOLEFT"]):?> <a class="back" href="<?=$arResult["TOLEFT"]["URL"]?>">предыдущее предложение</a> <?endif;?> <?if($arResult["SEARCH_RESULT"]):?> <a class="up" href="<?=$arResult["SEARCH_RESULT"];?>">к результатам поиска</a> <?endif;?> <?if($arResult["TORIGHT"]):?> <a class="right" href="<?=$arResult["TORIGHT"]["URL"];?>">следующее предложение</a> <?endif;?></div> |
Готово!
Назад в раздел
Подписаться на новые материалы раздела:
