Перейти к содержанию
Форум поддержки пользователей VamShop

Выводить в результатах поиска товар, который есть в на


Рекомендуемые сообщения

Подскажите, кто знает.

1. Каким образом можно в расширенном поиске сделать чекбокс "выводить только товары в наличие".

2. В результатах поиска выводить производителя, найденных товаров.

Ссылка на сообщение
Поделиться на другие сайты

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';
}

Как-то так примерно.

Ссылка на сообщение
Поделиться на другие сайты

Александр, спасибо за участие.

Выкладываю решение, как сделать в расширенном поиске чекбокс "показывать только товары в наличие"

в файл шаблон/module/advanced_seach.html я сделала чекбокс

а в advanced_seach_result.php

нужно было вставить такой код -

if (isset($_GET['имя_чекбокса']) and $_GET['имя_чекбокса']==1)

$where_str.= ' and p.products_quantity > 0';

З.Ы. данные с формы передаются по GET-методу

Ссылка на сообщение
Поделиться на другие сайты
  • 7 years later...

Что-то никак не получается сделать вывод результатов поиска только с товарами с количеством больше 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;

 

Ссылка на сообщение
Поделиться на другие сайты
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;

 

Да, правильно.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...