nommo Posted April 14, 2013 Report Share Posted April 14, 2013 Кто может подсказать, как заставить "поиск" искать только в категории в которой находится покупатель? Quote Link to post Share on other sites
Kosjak76 Posted April 14, 2013 Report Share Posted April 14, 2013 Добавить в форму поиска скрытый инпут с айди категории Quote Link to post Share on other sites
osben Posted April 14, 2013 Report Share Posted April 14, 2013 <form action="products"> <input class="input_search" type="text" name="keyword" value="{$keyword|escape}" placeholder="Поиск товара"/> {if $category->url}<input type="hidden" name="category" value="{$category->url}">{/if} <input class="button_search" value="" type="submit" /> </form> {if $category->url}<input type="hidden" name="category" value="{$category->url}">{/if} ?Поиск также будет работать и в товаре по категории которой он принадлежит Quote Link to post Share on other sites
RodgerFox Posted April 14, 2013 Report Share Posted April 14, 2013 У меня тоже вопрос, а можно заставить смарти понимать чек бокс, на пример если активен выполняется условие, если нет то нет. Quote Link to post Share on other sites
osben Posted April 14, 2013 Report Share Posted April 14, 2013 чет вопрос мыльный, более конкретнее сформируйте, может что то подскажу Quote Link to post Share on other sites
nommo Posted April 15, 2013 Author Report Share Posted April 15, 2013 Спасибо, Osben и Kosjak76! Все работает. Есть еще вопрос. Как правильно отключить "умный поиск" (выпадающий список с подбором слов и картинками)? Quote Link to post Share on other sites
Kosjak76 Posted April 15, 2013 Report Share Posted April 15, 2013 Проще всего поменять класс у инпута Если правильно - нужно удалить из шапки шаблона функцию автозаполнения и подключение скрипта: {* Автозаполнитель поиска *} {literal} <script src="js/autocomplete/jquery.autocomplete-min.js" type="text/javascript"></script> <style> .autocomplete-w1 { position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; } .autocomplete { border:1px solid #999; background:#FFF; cursor:default; text-align:left; overflow-x:auto; overflow-y: auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; } .autocomplete .selected { background:#F0F0F0; } .autocomplete div { padding:2px 5px; white-space:nowrap; } .autocomplete strong { font-weight:normal; color:#3399FF; } </style> <script> $(function() { // Автозаполнитель поиска $(".input_search").autocomplete({ serviceUrl:'ajax/search_products.php', minChars:1, noCache: false, onSelect: function(value, data){ $(".input_search").closest('form').submit(); }, fnFormatResult: function(value, data, currentValue){ var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g'); var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')'; return (data.image?"<img align=absmiddle src='"+data.image+"'> ":'') + value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>'); } }); }); </script> {/literal} Quote Link to post Share on other sites
nommo Posted April 15, 2013 Author Report Share Posted April 15, 2013 Проще всего поменять класс у инпута Если правильно - нужно удалить из шапки шаблона функцию автозаполнения и подключение скрипта: {* Автозаполнитель поиска *} {literal} <script src="js/autocomplete/jquery.autocomplete-min.js" type="text/javascript"></script> <style> .autocomplete-w1 { position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; } .autocomplete { border:1px solid #999; background:#FFF; cursor:default; text-align:left; overflow-x:auto; overflow-y: auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; } .autocomplete .selected { background:#F0F0F0; } .autocomplete div { padding:2px 5px; white-space:nowrap; } .autocomplete strong { font-weight:normal; color:#3399FF; } </style> <script> $(function() { // Автозаполнитель поиска $(".input_search").autocomplete({ serviceUrl:'ajax/search_products.php', minChars:1, noCache: false, onSelect: function(value, data){ $(".input_search").closest('form').submit(); }, fnFormatResult: function(value, data, currentValue){ var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g'); var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')'; return (data.image?"<img align=absmiddle src='"+data.image+"'> ":'') + value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>'); } }); }); </script> {/literal} Спасибо! Так и делал. Теперь есть подтверждение, что делал правильно. Quote Link to post Share on other sites
Json Posted July 13, 2015 Report Share Posted July 13, 2015 Если кому то пригодиться пооиск в выбранной категории, если есть лучший вариант жду замечаний <select name="category" class="selectpicker"> <option value="">Select Categories</option> {function name=categories_tree_search} {foreach $categories as $c} <option value="{$c->url}">{$c->name}</option> {categories_tree_search categories=$c->subcategories} {/foreach} {/function} {categories_tree_search} categories=$categories} </select> вставляем в форму поиска Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.