1 Отредактировано Sergey T. (20.04.2016 08:56:33)

Тема: Как добавить ссылку "показать все товары" ?

Подскажите пожалуйста как в результатах поиска вывести ссылку "показать все товары" ? Она по сути, делает то же самое, что нажатие на enter, но далеко не все посетители понимают, что нужно что-то нажимать а ориентируются исключительно на выпадающий список.

Я конечно могу выводить здесь 10-20 позиций, но согласитесь это будет крайне не эстетично.

http://s015.radikal.ru/i331/1604/76/0274bc814c97.jpg

Re: Как добавить ссылку "показать все товары" ?

Результаты поиска генерирует jquery autocomlete, который в ответ на запрос получает варианты ответа. У Вас он находится в файле theme.js. Что то типо:

/**
    * Автозаполнение в строке поиска
    */
    $( ".searchLine .query.autocomplete" ).each(function() {
        $(this).autocomplete({
            source: $(this).data('sourceUrl'),
            appendTo: '#queryBox',
            minLength: 3,
            select: function( event, ui ) {
                location.href=ui.item.url;
                return false;
            },
            messages: {
                noResults: '',
                results: function() {}
            }
        }).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
            ul.addClass('searchItems');
            var img = $('<img />').attr('src', item.image).css('visibility', 'hidden').load(function() {
                $(this).css('visibility', 'visible');
            });
            
            return $( "<li />" )
            .append($('<div class="image" />').append(img))
            .append( '<a><span class="label">' + item.label + 
                     '</span><span class="barcode">' + item.barcode + '</span><span class="price">' + item.price + '</span> </a>' )
            .appendTo( ul );
        };
    });  

Добавление элемента происходит на

.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
            ul.addClass('searchItems');
            var img = $('<img />').attr('src', item.image).css('visibility', 'hidden').load(function() {
                $(this).css('visibility', 'visible');
            });
            
            return $( "<li />" )
            .append($('<div class="image" />').append(img))
            .append( '<a><span class="label">' + item.label + 
                     '</span><span class="barcode">' + item.barcode + '</span><span class="price">' + item.price + '</span> </a>' )
            .appendTo( ul );
        };

Судя из документации к плагину  http://api.jqueryui.com/autocomplete/#m … renderMenu Вам нужно ещё использовать _renderMenu.
Т.к. оно рендерит все готовое меню. В нём можно добавить ещё одну <li> со ссылкой на поиск.
Ссылка в вашем случае будет /catalog/?query=Вашпоисковый запрос

Запрос можно взять из значения поля строки поиска.