Помните, была в Google когда-то такая кнопка "Мне повезет"? Та самая, которая сразу перенаправляла посетителя на первый в выдаче сайт? Самая пора испробовать ее работу на поиске «Битрикс» по сайту. Мы ведь с вами не Google, чем быстрее посетитель найдет нужный материал, тем лучше и ему и нам. Не так ли? Давайте посмотрим, как это сделать. Например, настроим поиск так, чтобы при нажатии Ctrl+Enter посетитель сразу получал первый релевантный запросу результат. Соответственно, запрос + Enter будет показывать ему стандартную выдачу поиска «Битрикс». И кнопку, естественно, тоже добавим.
1. Редактируем шаблон поиска в коде страницы
А именно, добавляем к строке ввода ID. Примерно такого вида
id=search-input
и вводим еще одно скрытое поле
<input type="hidden" value="n" id="search-lucky" name="lucky">
2. Добавляем код JS для обработки команды клавиатуры
В любом подходящем месте шаблона страницы
$(document).on('ready', function(){
$('#search-input').on('keypress', function(e){
if (e.ctrlKey && e.keyCode == 13 || e.keyCode==10) {
$('#search-lucky').val('y');
$(this).closest('form').submit();
} else {
$('#search-lucky').val('n');
}
});
});
3. Модифицируем шаблон поиска result_modifier.php
Добавляем в него код обработки запроса
if (array_key_exists('lucky', $_REQUEST) && $_REQUEST['lucky']=='y') {
if (count($arResult['SEARCH']) > 0) {
LocalRedirect($arResult['SEARCH'][0]['URL']);
}
}
4. А как добавить собственно кнопку "Мне повезет"?
Вопрос резонный. Далеко не всем посетителям сайта нравится запоминать клавиатурные команды. На этот случай добавим кнопку "Мне повезет" в файле .parameters.php.
$arTemplateParameters = array(
// тут оставляем существующие параметры
"SHOW_LUCK" => Array(
"NAME" => GetMessage("SHOW_LUCK"), // текст-заголовок
"TYPE" => "CHECKBOX", // тип параметра - флажок
"DEFAULT" => "Y", // по умолчанию отмечен
),
);
Готово!
Назад в раздел