Категории |
Продвинутый поиск для шаблона defaultСоздаешь два файла с такм названием box_search_top.html, advanced_search.php {config_load file="$language/lang.conf" section="advanced_search"} {$FORM_ACTION} <table width="100%" border="0" class="formArea"> <tr> <td> <table border="0" align="right"> <tr> <td>{$INPUT_KEYWORDS}</td><td></td> <td>{$SELECT_CATEGORIES}</td><td></td> <td>{$SELECT_MANUFACTURERS}</td> <td>{$BUTTON_SUBMIT}</td> </tr> </table> </td> </tr> </table> {$FORM_END} --------------------------------------------------------------------- advanced_search.php --------------------------------------------------------------------- <?php /* ##################################### # ShopOS: Скрипты интернет-магазина # Copyright (c) 2008-2009 # http://www.shopos.ru # Ver. 1.0.1 ##################################### */ $box = new osTemplate; $box->assign('tpl_path', _HTTP_THEMES_C); $box_content = ''; $box->assign('FORM_ACTION', os_draw_form('advanced_search', os_href_link(FILENAME_ADVANCED_SEARCH_RESULT, '', 'NONSSL', false), 'get', 'onsubmit="return check_form(this);"').os_hide_session_id()); $box->assign('INPUT_KEYWORDS', os_draw_input_field('keywords', '', '')); $box->assign('HELP_LINK', 'javascript:popupWindow(\''.os_href_link(FILENAME_POPUP_SEARCH_HELP).'\')'); $box->assign('BUTTON_SUBMIT', os_image_submit('button_add_quick.gif', IMAGE_BUTTON_SEARCH)); $box->assign('SELECT_CATEGORIES',os_draw_pull_down_menu('categories_id', os_get_categories(array (array ('id' => '', 'text' => TEXT_ALL_CATEGORIES))))); $box->assign('ENTRY_SUBCAT',os_draw_checkbox_field('inc_subcat', '1', true)); $box->assign('SELECT_MANUFACTURERS',os_draw_pull_down_menu('manufacturers_id', os_get_manufacturers(array (array ('id' => '', 'text' => TEXT_ALL_MANUFACTURERS))))); $error = ''; if (isset ($_GET)) { if (($_GET & 1) == 1) { $error .= str_replace('\n', '<br />', JS_AT_LEAST_ONE_INPUT); } if (($_GET & 10) == 10) { $error .= str_replace('\n', '<br />', JS_INVALID_FROM_DATE); } if (($_GET & 100) == 100) { $error .= str_replace('\n', '<br />', JS_INVALID_TO_DATE); } if (($_GET & 1000) == 1000) { $error .= str_replace('\n', '<br />', JS_TO_DATE_LESS_THAN_FROM_DATE); } if (($_GET & 10000) == 10000) { $error .= str_replace('\n', '<br />', JS_PRICE_FROM_MUST_BE_NUM); } if (($_GET & 100000) == 100000) { $error .= str_replace('\n', '<br />', JS_PRICE_TO_MUST_BE_NUM); } if (($_GET & 1000000) == 1000000) { $error .= str_replace('\n', '<br />', JS_PRICE_TO_LESS_THAN_PRICE_FROM); } if (($_GET & 10000000) == 10000000) { $error .= str_replace('\n', '<br />', JS_INVALID_KEYWORDS); } } $box->assign('error', $error); $box->assign('FORM_END', '</form>'); $box->assign('language', $_SESSION); // set cache ID if (!CacheCheck()) { $box->caching = 0; $box_searchtop = $box->fetch(CURRENT_TEMPLATE.'/boxes/box_search_top.html'); } else { $box->caching = 1; $box->cache_lifetime = CACHE_LIFETIME; $box->cache_modified_check = CACHE_CHECK; $cache_id = $_SESSION; $box_searchtop = $box->fetch(CURRENT_TEMPLATE.'/boxes/box_search_top.html', $cache_id); } $osTemplate->assign('box_SEARCHTOP', $box_searchtop); ?> --------------------------------------------------------------------------- 1 закидываешь в папку themes\default\boxes\box_search_top.html 2 закидываешь в папку themes\default\source\boxes\advanced_search.php Затем отрыть themes\default\source\boxes.php и вставь перед -------------------------------------------------- if (VIS_BOX_SEARCH == 'true') { require(DIR_WS_BOXES . 'search.php'); } -------------------------------------------------- такой код -------------------------------------------------- if (VIS_BOX_SEARCH == 'true') { require(DIR_WS_BOXES . 'advanced_search.php'); } -------------------------------------------------- и теперь вызываешь из файла themes\default\index.html таким макаром -------------------------------------------------- {$box_SEARCHTOP} -------------------------------------------------- это подойдет только для горизонтального расположения или же для вертикального тоже подойдет??? в смысле ? если я вас правильно понял то просто редактируете файл box_search_top.html под дизайн у вас на сайте поисковый блок стоит горизонтально в 3 поля ввода и выбора? Вертикальное отображение: {config_load file="$language/lang.conf" section="advanced_search"} {$FORM_ACTION} <table width="100%" border="0" class="formArea"> <tr> <td> <table border="0" align="right"> <tr> <td>{$INPUT_KEYWORDS}</td></tr><tr> <td>{$SELECT_CATEGORIES}</td></tr><tr> <td>{$SELECT_MANUFACTURERS}</td> <td>{$BUTTON_SUBMIT}</td> </tr> </table> </td> </tr> </table> {$FORM_END} блин ))) возник следующий вопрос ))) {config_load file="$language/lang.conf" section="advanced_search"} {$FORM_ACTION} <table width="190px" border="0" class="formArea"> <tr> <td> <table width="190px" border="0" align="left"> <tr> <td>{$INPUT_KEYWORDS}</td><td></td><tr> <td width="190px">{$SELECT_CATEGORIES}</td><td></td><tr> <td>{$SELECT_MANUFACTURERS}</td> <td>{$BUTTON_SUBMIT}</td> </tr> </table> </td> </tr> </table> {$FORM_END} таким макаром не получается это сделать, а в програмировании я немного туповат никак так как у вас название категорий слишком длинный жалко ))) Заметил, что функция error в поиске не работает, если кто больше разбирается в php по правте код ;) А как сделать фиксированный размер поля?! попробовать добавить в теге style="width:200px" этот код можно убрать, он итак не работает но и ошибок же не выдает :) нуда вводишь одну букву, нажимаешь поиск, должна быть ошибка или предупреждение, что запрос должен состоять из больше букв Подскажите, возможно ли в расширенном поиске ввести дополнительные поля (аналоги цены) по дополнительным полям товара? Пример: есть допустим база телевизоров у которых в доп. поле товара указана диагональ экрана и для этого доп. поля - диагональ экрана необходимо организовать поиск дополнительно к имеющимся - производитель, цена от и цена до. нет. там дописывать нужно. нет. там дописывать нужно. стоить будет 20-~$ или можно попробовать на free-lance.ru заказать Можете назвать конкретную сумму за которую Вы сделали бы данную доработку? лучше на free-lance.ru Даю наводку как это сделать, используйте GET, а именно keywords, так же добавляйте нужные поля в файлы отвечающее за вывод бокса. Реализовывал это для размеров на счет доп. полей сказать не могу если не получится то копайте в advanced_search_result.php. Снова не получится обращайтесь посмотрим что можно сделать. так сделать не сложно. Подскажите, возможно ли в расширенном поиске ввести дополнительные поля (аналоги цены) по дополнительным полям товара? Пример: есть допустим база телевизоров у которых в доп. поле товара указана диагональ экрана и для этого доп. поля - диагональ экрана необходимо организовать поиск дополнительно к имеющимся - производитель, цена от и цена до. Пару дней назад столкнулся с подобным желанием заказчика. Без проблем реализовал, и по пути починил вот это: этот код можно убрать, он итак не работает $error = ''; if (isset ($_GET)) { if (($_GET & 1) == 1) { $error .= str_replace('\n', '<br />', JS_AT_LEAST_ONE_INPUT); } if (($_GET & 10) == 10) { $error .= str_replace('\n', '<br />', JS_INVALID_FROM_DATE); } if (($_GET & 100) == 100) { $error .= str_replace('\n', '<br />', JS_INVALID_TO_DATE); } if (($_GET & 1000) == 1000) { $error .= str_replace('\n', '<br />', JS_TO_DATE_LESS_THAN_FROM_DATE); } if (($_GET & 10000) == 10000) { $error .= str_replace('\n', '<br />', JS_PRICE_FROM_MUST_BE_NUM); } if (($_GET & 100000) == 100000) { $error .= str_replace('\n', '<br />', JS_PRICE_TO_MUST_BE_NUM); } if (($_GET & 1000000) == 1000000) { $error .= str_replace('\n', '<br />', JS_PRICE_TO_LESS_THAN_PRICE_FROM); } if (($_GET & 10000000) == 10000000) { $error .= str_replace('\n', '<br />', JS_INVALID_KEYWORDS); } } $box->assign('error', $error); kdv1978, если вы ищете исполнителя, могу выполнить за вас эту работу. О цене договоримся в личке. Доброго времени суток! Подскажите плиз как добавить строку выпадающего списка Подкатегория? Есть такая строчка в файле advanced_search.php $box->assign('ENTRY_SUBCAT',os_draw_checkbox_field('inc_subcat', '1', true));как из неё сделать выпадающий список? возник следующий вопрос ))) как уменьшить размер поля в прикрепленном файле сами увидите какое {config_load file="$language/lang.conf" section="advanced_search"} {$FORM_ACTION} <table width="190px" border="0" class="formArea"> <tr> <td> <table width="190px" border="0" align="left"> <tr> <td>{$INPUT_KEYWORDS}</td><td></td><tr> <td width="190px">{$SELECT_CATEGORIES}</td><td></td><tr> <td>{$SELECT_MANUFACTURERS}</td> <td>{$BUTTON_SUBMIT}</td> </tr> </table> </td> </tr> </table> {$FORM_END} таким макаром не получается это сделать, а в програмировании я немного туповат А вот таким макаром: <style> /*<!]>*/ </style> Жаль, что вопрос с расширенным поиском по дополнительным параметрам так и не реализован. Я про общедоступный вариант как сделать зависимыми выпадающие списки от результата выбора значения в другом выпадающем списке? присоединяюсь, как сделать зависимость? в нете читал примеры - самый адекватный вроде как с использованием jquery, но я пока не осилил ... выпадающие списки чего? при выборе категории выводить товары или какие-то связи категорий->производителей? ну не только категории. у меня используется куча доп полей. допустим зависит от того, что нужно выводить. |
|