Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Вывод в search.page

00 голосов
1
Здравствуйте , подскажите пожалуйста как в шаблоне  search.page

Код
<div class="search-page">
<form action="" method="get">
<?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"]):?>
    &nbsp;<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;?>
    &nbsp;<input type="submit" value="<?=GetMessage("SEARCH_GO")?>" />
    <input type="hidden" name="how" value="<?echo $arResult["REQUEST"]["HOW"]=="d"? "d": "r"?>" />
<?if($arParams["SHOW_WHEN"]):?>
    <script>
    var switch_search_params = function()
    {
        var sp = document.getElementById('search_params');
        var flag;

        if(sp.style.display == 'none')
        {
            flag = false;
            sp.style.display = 'block'
        }
        else
        {
            flag = true;
            sp.style.display = 'none';
        }

        var from = document.getElementsByName('from');
        for(var i = 0; i < from.length; i++)
            if(from[i].type.toLowerCase() == 'text')
                from[i].disabled = flag

        var to = document.getElementsByName('to');
        for(var i = 0; i < to.length; i++)
            if(to[i].type.toLowerCase() == 'text')
                to[i].disabled = flag

        return false;
    }
    </script>
    <br /><a class="search-page-params" href="#" onclick="return switch_search_params()"><?echo GetMessage('CT_BSP_ADDITIONAL_PARAMS')?></a>
    <div id="search_params" class="search-page-params" style="display:<?echo $arResult["REQUEST"]["FROM"] || $arResult["REQUEST"]["TO"]? 'block': 'none'?>">
        <?$APPLICATION->IncludeComponent(
            'bitrix:main.calendar',
            '',
            array(
                'SHOW_INPUT' => 'Y',
                'INPUT_NAME' => 'from',
                'INPUT_VALUE' => $arResult["REQUEST"]["~FROM"],
                '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">&nbsp;</td>
            <td><?=GetMessage("SEARCH_BRACKETS_ALT")?></td>
        </tr>
    </table>
<?elseif(count($arResult["SEARCH"])>0):?>
    <?if($arParams["DISPLAY_TOP_PAGER"] != "N") echo $arResult["NAV_STRING"]?>
    <br /><hr />
    <?foreach($arResult["SEARCH"] as $arItem):?>
        &#
спросил 08 Май, 13 от Ris (280 баллов)

1 Ответ

00 голосов
такая же проблема, удалось вывести, но выводится у каждого товара одно и тоже, а как сделать что бы для каждого товара выводилось только свое?

Код
 <?foreach($arResult["SEARCH"] as $arItem):?>
<div class="search-preview">
<h2><a href="<?echo $arItem["URL_WO_PARAMS"]?>"><?echo $arItem["TITLE_FORMATED"]?></a></h2>
<p>
<?
if(CModule::IncludeModule("iblock")) {
$items = GetIBlockElementListEx("catalog", $arItem["PARAM2"], // в $arItem["PARAM2"] содержится id инфоблока 
Array(),
Array("NAME" => "ASC"),
0,
Array("ELEMENT_ID" => $arItem["ITEM_ID"]),
Array("PROPERTY_DOPSVED")); // DOPSVED - это и есть ключ поля, в котором содержится значение, которое и нужно вывести
while ($arItem = $items->GetNext()) {
$arrItemM[] = $arItem["PROPERTY_DOPSVED_VALUE"]; // // DOPSVED - это и есть ключ поля, в котором содержится значение, которое и нужно вывести
}
}
$arrItemM = array_unique($arrItemM); // избавляемся от повторений в массиве
foreach($arrItemM as $arSearchDopsved) {
echo $arSearchDopsved; // а вот тут хочу вывести свое описание, типа краткого, но немного другое. выводит, но для каждого товара одно и тоже.
}
?>
<?/*echo $arItem["BODY_FORMATED"]*/?> // вот тут выводит описание стандартное, которое вводится в поле краткое описание товара.
</p>
</div>
<?endforeach;?>
ответил 08 Май, 13 от Pika (340 баллов)

Похожие вопросы

+1 голос
1 ответ
0 голосов
0 ответов
спросил 18 Июль, 15 от аноним
0 голосов
2 ответов
0 голосов
3 ответов
0 голосов
7 ответов
спросил 18 Июль, 13 от Titan91 (1,120 баллов)