Ameli 0 Опубликовано 14 июля, 2009 Жалоба Share Опубликовано 14 июля, 2009 Подскажите, кто знает. 1. Каким образом можно в расширенном поиске сделать чекбокс "выводить только товары в наличие". 2. В результатах поиска выводить производителя, найденных товаров. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 июля, 2009 Жалоба Share Опубликовано 14 июля, 2009 2. Открываете /includes/classes/product.php и после: 'PRODUCTS_DESCRIPTION' => $array['products_description'],[/code] Добавляете: [code] 'PRODUCTS_MANUFACTURER'=>$array['manufacturers_name'], Открываете /advanced_search_result.php и после: $from_str .= "LEFT OUTER JOIN ".TABLE_SPECIALS." AS s ON (p.products_id = s.products_id) AND s.status = '1'";[/code] Добавляете: [code] $from_str .= "LEFT OUTER JOIN ".TABLE_MANUFACTURERS." AS m ON (p.manufacturers_id = m.manufacturers_id)"; А также меняете: //build query $select_str = "SELECT distinct p.products_id,[/code] на: [code] //build query $select_str = "SELECT distinct p.products_id, m.manufacturers_name, Затем в шаблона списка товара /templates/шаблон/module/product_listing/ добавяете метку: {$module_data.PRODUCTS_MANUFACTURER}[/code] например после: [code]{$module_data.PRODUCTS_NAME} 1. Вот здесь подробно не напишу, не делал никогда. Добавить нужно сначала чекбокс в /templates/шаблон/module/advanced_search.html Затем править sql запрос в зависимости от чекбоска в /advanced_search_result.php, т.е. менять код: $listing_sql = $select_str.$from_str.$where_str;[/code] Примерно на: [code]if ($_POST['название-чек-бокса']) { $listing_sql = $select_str.$from_str.$where_str;} else { $listing_sql = $select_str.$from_str.$where_str.' and p.products_quantity > 0';} Как-то так примерно. Ссылка на сообщение Поделиться на другие сайты
Ameli 0 Опубликовано 14 июля, 2009 Автор Жалоба Share Опубликовано 14 июля, 2009 Большое спасибо Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 июля, 2009 Жалоба Share Опубликовано 14 июля, 2009 Не за что, надеюсь, что получится сделать. Ссылка на сообщение Поделиться на другие сайты
Ameli 0 Опубликовано 17 июля, 2009 Автор Жалоба Share Опубликовано 17 июля, 2009 Александр, спасибо за участие. Выкладываю решение, как сделать в расширенном поиске чекбокс "показывать только товары в наличие" в файл шаблон/module/advanced_seach.html я сделала чекбокс а в advanced_seach_result.php нужно было вставить такой код - if (isset($_GET['имя_чекбокса']) and $_GET['имя_чекбокса']==1) $where_str.= ' and p.products_quantity > 0'; З.Ы. данные с формы передаются по GET-методу Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 июля, 2009 Жалоба Share Опубликовано 17 июля, 2009 Не за что. Хорошо, что разобрались. Ссылка на сообщение Поделиться на другие сайты
SERG25 0 Опубликовано 23 марта, 2017 Жалоба Share Опубликовано 23 марта, 2017 Что-то никак не получается сделать вывод результатов поиска только с товарами с количеством больше 0 (без чекбокса). Не подскажете поточнее код и куда вставлять? Вроде получилось $where_str = " WHERE p.products_status = '1' "." AND c.categories_status=1 AND pd.language_id = '".(int) $_SESSION['languages_id']."'".$subcat_where.$fsk_lock.$manu_check.$group_check.$tax_where.$pfrom_check.$pto_check; заменил на $where_str = " WHERE p.products_status = '1' "." AND c.categories_status=1 AND p.products_quantity > 0 AND pd.language_id = '".(int) $_SESSION['languages_id']."'".$subcat_where.$fsk_lock.$manu_check.$group_check.$tax_where.$pfrom_check.$pto_check; Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 марта, 2017 Жалоба Share Опубликовано 23 марта, 2017 27 минуты назад, SERG25 сказал: Что-то никак не получается сделать вывод результатов поиска только с товарами с количеством больше 0 (без чекбокса). Не подскажете поточнее код и куда вставлять? Вроде получилось $where_str = " WHERE p.products_status = '1' "." AND c.categories_status=1 AND pd.language_id = '".(int) $_SESSION['languages_id']."'".$subcat_where.$fsk_lock.$manu_check.$group_check.$tax_where.$pfrom_check.$pto_check; заменил на $where_str = " WHERE p.products_status = '1' "." AND c.categories_status=1 AND p.products_quantity > 0 AND pd.language_id = '".(int) $_SESSION['languages_id']."'".$subcat_where.$fsk_lock.$manu_check.$group_check.$tax_where.$pfrom_check.$pto_check; Да, правильно. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения