Проблема такая, когда добавляю в корзину товар, потом в поиске ввожу нужное мне наименование, открывается страница с результатами и там всегда в начале новой страницы поиска появляется товар из корзину.
Ссылка на сайтhttps://stroimoll.ru
Вот сейчас у меня в корзине гвозди
http://joxi.ru/4AkavWLtap7emq
В поиске ввожу штукатурка
http://joxi.ru/ZrJGNwBudPo5mj
Когда нажимаю показать еще
http://joxi.ru/KAgdkw5TPWxDrl
И в начале новой страницы всегда появляются товары из корзины в таком виде
http://joxi.ru/E2pXVa3iEL6L2Y
Код файла result_modifier.php из поиска
Шаблон поиска
Ссылка на сайт
Вот сейчас у меня в корзине гвозди
В поиске ввожу штукатурка
Когда нажимаю показать еще
И в начале новой страницы всегда появляются товары из корзины в таком виде
Код файла result_modifier.php из поиска
Код |
---|
<?php if ($_REQUEST['action'] == 'add_item_popup') { $APPLICATION->RestartBuffer(); if ($iItemId = intval($_REQUEST['id'])) { CModule::includeModule('catalog'); $iQuantity = $_REQUEST['quantity'] ? : 1; Add2BasketByProductID($iItemId, $iQuantity); $arItem = CIBlockElement::GetByID($iItemId)->Fetch(); $sBasketPath = htmlspecialchars($_REQUEST['basket_url']); $sPriceCode = htmlspecialchars($_REQUEST['price_code']); $arParams = array( "IBLOCK_TYPE" => $arItem['IBLOCK_TYPE_ID'], "IBLOCK_ID" => $arItem['IBLOCK_ID'], "ELEMENT_ID" => $arItem['ID'], "BASKET_URL" => $sBasketPath, "PRICE_CODE" => array( $sPriceCode ), "SET_TITLE" => "N", "SET_STATUS_404" => "N", "CACHE_TYPE" => "N", "CACHE_TIME" => "36000000", "CACHE_NOTES" => "", "CACHE_GROUPS" => "Y", "OFFERS_CART_PROPERTIES" => array(), "ADD_TO_BASKET_ACTION" => array(), "CURRENCY_ID" => "RUB", 'QUANTITY' => $iQuantity ); //echo '<pre>'.print_r($arParams, true).'</pre>'; $APPLICATION->IncludeComponent( "bitrix:catalog.element", "add_item_popup", $arParams ); } die(); } $arResult['ELEMENTS'] = Array(); $arIDS = Array(); if (CModule::IncludeModule('sale') && CModule::IncludeModule('catalog') && CModule::IncludeModule('iblock') && count($arResult["SEARCH"]) > 0) { foreach ($arResult['SEARCH'] as $arItem) { if ($arItem['MODULE_ID'] == 'iblock' && $arItem['PARAM1'] == 'catalog') { $arIDS[$arItem['PARAM2']][] = $arItem['ITEM_ID']; } } foreach ($arIDS as $iblockID => $arIDFilter) { if (!empty($arIDFilter)) { $arPrices = CIBlockPriceTools::GetCatalogPrices($iblockID, $arParams["CATALOG_PRICE_CODE"]); $arSelect = array( "ID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "NAME", "ACTIVE_FROM", "DETAIL_PAGE_URL", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DETAIL_PICTURE", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE", "PREVIEW_PICTURE", "PROPERTY_*" ); foreach ($arPrices as &$value) { if (!$value['CAN_VIEW'] && !$value['CAN_BUY']) continue; $arSelect[] = $value["SEL ECT"]; $arFilter["CATALOG_SHOP_QUANTITY_" . $value["ID"]] = $arParams["SHOW_PRICE_COUNT"]; } $rsItems = CIBlockElement::GetList(Array(), Array('IBLOCK_ID' => $iblockID, '=ID' => $arIDFilter), false, false, $arSelect); while ($arItem = $rsItems->GetNext()) { $arItem["PRICES"] = CIBlockPriceTools::GetItemPrices($iblockID, $arPrices, $arItem, $arParams['PRICE_VAT_INCLUDE'], $arConvertParams); if (!empty($arItem["PRICES"])) { foreach ($arItem['PRICES'] as &$arOnePrice) { if ('Y' == $arOnePrice['MIN_PRICE']) { $arItem['MIN_PRICE'] = $arOnePrice; break; } } unset($arOnePrice); } $arItem["CAN_BUY"] = CIBlockPriceTools::CanBuy($iblockID, $arPrices, $arItem); $arResult['ELEMENTS'][] = $arItem; } } } } |
Шаблон поиска
Код |
---|
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); /** @var array $arParams */ /** @var array $arResult */ /** @global CMain $APPLICATION */ /** @global CUser $USER */ /** @global CDatabase $DB */ /** @var CBitrixComponentTemplate $this */ /** @var string $templateName */ /** @var string $templateFile */ /** @var string $templateFolder */ /** @var string $componentPath */ /** @var CBitrixComponent $component */ $arCloudParams = array( "SEARCH" => $arResult["REQUEST"]["~QUERY"], "TAGS" => $arResult["REQUEST"]["~TAGS"], "CHECK_DATES" => $arParams["CHECK_DATES"], "arrFILTER" => $arParams["arrFILTER"], "SORT" => $arParams["TAGS_SORT"], "PAGE_ELEMENTS" => $arParams["TAGS_PAGE_ELEMENTS"], "PERIOD" => $arParams["TAGS_PERIOD"], "URL_SEARCH" => $arParams["TAGS_URL_SEARCH"], "TAGS_INHERIT" => $arParams["TAGS_INHERIT"], "FONT_MAX" => $arParams["FONT_MAX"], "FONT_MIN" => $arParams["FONT_MIN"], "COLOR_NEW" => $arParams["COLOR_NEW"], "COLOR_OLD" => $arParams["COLOR_OLD"], "PERIOD_NEW_TAGS" => $arParams["PERIOD_NEW_TAGS"], "SHOW_CHAIN" => $arParams["SHOW_CHAIN"], "COLOR_TYPE" => $arParams["COLOR_TYPE"], "WIDTH" => $arParams["WIDTH"], "CACHE_TIME" => $arParams["CACHE_TIME"], "CACHE_TYPE" => $arParams["CACHE_TYPE"], "RESTART" => $arParams["RESTART"], ); if (is_array($arCloudParams["arrFILTER"])) { foreach ($arCloudParams["arrFILTER"] as $strFILTER) { if ($strFILTER == "main") { $arCloudParams["arrFILTER_main"] = $arParams["arrFILTER_main"]; } elseif ($strFILTER == "forum" && IsModuleInstalled("forum")) { $arCloudParams["arrFILTER_forum"] = $arParams["arrFILTER_forum"]; } elseif (strpos($strFILTER, "iblock_") === 0) { if (isset($arParams["arrFILTER_" . $strFILTER]) && is_array($arParams["arrFILTER_" . $strFILTER])) { foreach ($arParams["arrFILTER_" . $strFILTER] as $strIBlock) $arCloudParams["arrFILTER_" . $strFILTER] = $arParams["arrFILTER_" . $strFILTER]; } } elseif ($strFILTER == "blog") { $arCloudParams["arrFILTER_blog"] = $arParams["arrFILTER_blog"]; } elseif ($strFILTER == "socialnetwork") { $arCloudParams["arrFILTER_socialnetwork"] = $arParams["arrFILTER_socialnetwork"]; } } } $APPLICATION->IncludeComponent("bitrix:search.tags.cloud", ".default", $arCloudParams, $component); ?><br/> <div class="search-page"> <fo rm action="" method="get"> <input type="hidden" name="tags" value="<? echo $arResult["REQUEST"]["TAGS"] ?>"/> <? if ($arParams["USE_SUGGEST"] === "Y"): if (strlen($arResult["REQUEST"]["~QUERY"]) && is_object($arResult["NAV_RESULT"])) { $arResult["FILTER_MD5"] = $arResult["NAV_RESULT"]->GetFilterMD5(); $obSearchSuggest = new CSearchSuggest($arResult["FILTER_MD5"], $arResult["REQUEST"]["~QUERY"]); $obSearchSuggest->SetResultCount($arResult["NAV_RESULT"]->NavRecordCount); } ?> <? $APPLICATION->IncludeComponent( "bitrix:search.suggest.input", "", array( "NAME" => "q", "VALUE" => $arResult["REQUEST"]["~QUERY"], "INPUT_SIZE" => 40, "DROPDOWN_SIZE" => 10, "FILTER_MD5" => $arResult["FILTER_MD5"], ), $component, array("HIDE_ICONS" => "Y") );?> <? else: ?> <input type="text" name="q" value="<?= $arResult["REQUEST"]["QUERY"] ?>" size="40"/> <? endif; ?> <? if ($arParams["SHOW_WHERE"]): ?> <sel ect name="where"> <option value=""><?= GetMessage("SEARCH_ALL") ?></option> <? foreach ($arResult["DROPDOWN"] as $key => $value): ?> <option value="<?= $key ?>"<? if ($arResult["REQUEST"]["WHERE"] == $key) echo " selected" ?>><?= $value ?></option> <? endforeach ?> </select> <? endif; ?> <input type="submit" value="<?= GetMessage("SEARCH_GO") ?>"/> <input type="hidden" name="how" value="<? echo $arResult["REQUEST"]["HOW"] == "d" ? "d" : "r" ?>"/> <? if ($arParams["SHOW_WHEN"]): ?> <sc ript> var switch_search_params = function () { var sp = document.getElementById('search_params'); var flag; var i; if (sp.style.display == 'none') { flag = false; sp.style.display = 'block' } else { flag = true; sp.style.display = 'none'; } var from = document.getElementsByName('from'); for (i = 0; i < from.length; i++) if (from[i].type.toLowerCase() == 'text') from[i].disabled = flag; var to = document.getElementsByName('to'); for (i = 0; i < to.length; i++) if (to[i].type.toLowerCase() == 'text') to[i].disabled = flag; return false; } </sc ript> <br/><a class="search-page-params" href="#" oncl ick="return switch_search_params()"><? echo GetMessage('CT_BSP_ADDITIONAL_PARAMS') ?></a> <div id="search_params" class="search-page-params" st yle="display:<? echo $arResult["REQUEST"]["FROM"] || $arResult["REQUEST"]["TO"] ? 'block' : 'none' ?>"> <? $APPLICATION->IncludeComponent( 'bitrix:main.calendar', '', array( 'SHOW_INPUT' => 'Y', 'INPUT_NAME' => 'fr om', 'INPUT_VALUE' => $arResult["REQUEST"]["~FR OM"], 'INPUT_NAME_FINISH' => 'to', 'INPUT_VALUE_FINISH' => $arResult["REQUEST"]["~TO"], 'INPUT_ADDITIONAL_ATTR' => 'size="10"', ), null, array('HIDE_ICONS' => 'Y') ); ?> </div> <? endif ?> </form> <br/> <? if (isset($arResult["REQUEST"]["ORIGINAL_QUERY"])): ?> <div class="search-language-guess"> <?echo GetMessage("CT_BSP_KEYBOARD_WARNING", array("#query#" => '<a href="' . $arResult["ORIGINAL_QUERY_URL"] . '">' . $arResult["REQUEST"]["ORIGINAL_QUERY"] . '</a>'))?> </div><br/><? endif; ?> <? if ($arResult["REQUEST"]["QUERY"] === false && $arResult["REQUEST"]["TAGS"] === false): ?> <? elseif ($arResult["ERROR_CODE"] != 0): ?> <p><?= GetMessage("SEARCH_ERROR") ?></p> <? ShowError($arResult["ERROR_TEXT"]); ?> <p><?= GetMessage("SEARCH_CORRECT_AND_CONTINUE") ?></p> <br/><br/> <p><?= GetMessage("SEARCH_SINTAX") ?><br/><b><?= GetMessage("SEARCH_LOGIC") ?></b></p> <table border="0" cellpadding="5"> <tr> <td align="center" valign="top"><?= GetMessage("SEARCH_OPERATOR") ?></td> <td valign="top"><?= GetMessage("SEARCH_SYNONIM") ?></td> <td><?= GetMessage("SEARCH_DESCRIPTION") ?></td> </tr> <tr> <td align="center" valign="top"><?= GetMessage("SEARCH_AND") ?></td> <td valign="top">and, &, +</td> <td><?= GetMessage("SEARCH_AND_ALT") ?></td> </tr> <tr> <td align="center" valign="top"><?= GetMessage("SEARCH_OR") ?></td> <td valign="top">or, |</td> <td><?= GetMessage("SEARCH_OR_ALT") ?></td> </tr> <tr> <td align="center" valign="top"><?= GetMessage("SEARCH_NOT") ?></td> <td valign="top">not, ~</td> <td><?= GetMessage("SEARCH_NOT_ALT") ?></td> </tr> <tr> <td align="center" valign="top">( )</td> <td valign="top"> </td> <td><?= GetMessage("SEARCH_BRACKETS_ALT") ?></td> </tr> </table> <? elseif (count($arResult["SEARCH"]) > 0): ?> <? $obSectionComponent = new CBitrixComponent(); $obSectionComponent->initComponent('bitrix:catalog.section'); $obSectionComponent->arParams = array( 'DISPLAY_TOP_PAGER' => 'N', 'DISPLAY_BOTTOM_PAGER' => 'Y', 'BASKET_URL' => $arParams['BASKET_URL'] ); $obSectionComponent->arResult = array( 'ITEMS' => $arResult['ELEMENTS'], 'PRICES' => $arParams['CATALOG_PRICE_CODE'], 'NAV_STRING' => $arResult["NAV_STRING"], ); $obSectionComponent->includeComponentTemplate(); ?> <? else: ?> <? ShowNote(GetMessage("SEARCH_NOTHING_TO_FOUND")); ?> <? endif; ?> </div> |