Перейти к содержимому


Поиск товаров по варианту характеристики в списке товаров в админке


  • Вы не можете ответить в тему
В этой теме нет ответов

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 05 November 2015 - 05:45 PM

Дополнение позволяет в админке в списке товаров произвести поиск по варианту характеристики товара
Прикрепленный файл  1.jpg   72.9К   12 Количество загрузок:

1. в файле product_functions.php в функции prdSearchProductByTemplateAdmin

перед


$order_by_clause = "order by ".CONF_DEFAULT_SORT_ORDER;


вставляем


# BEGIN поиск товаров с заданным вариантом характеристики
if (isset($callBackParam['variantID']) && $callBackParam['variantID']>0)
$where_clause .= ($where_clause==''?' WHERE':' AND').' productID IN (
SELECT productID FROM '.PRODUCTS_TABLE.' WHERE productID IN (
SELECT productID FROM '.PRODUCTS_OPTIONS_SET_TABLE.' WHERE productID IN (
SELECT productID FROM '.PRODUCT_OPTIONS_VALUES_TABLE.' WHERE option_type=1 AND optionID IN (
SELECT optionID FROM '.PRODUCTS_OPTIONS_VALUES_VARIANTS_TABLE.' WHERE variantID='.$callBackParam['variantID'].')) AND variantID='.$callBackParam['variantID'].'))';
# END поиск товаров с заданным вариантом характеристики



2. в файле catalog_products_categories.php

2.1. в функции _getUrlToSubmit и _getUrlToNavigate

перед


return $res;


вставляем


# BEGIN поиск товаров с заданным вариантом характеристики
if (isset($_POST["variantID"])) $res .= "&variantID=".(int)$_POST["variantID"];
elseif (isset($_GET["variantID"])) $res .= "&variantID=".(int)$_GET["variantID"];
# END поиск товаров с заданным вариантом характеристики



2.2. перед


if (isset($_POST["search_value"])) //"Find" button pressed


вставляем


# BEGIN поиск товаров с заданным вариантом характеристики
if (isset($_POST["variantID"])) $callBackParam['variantID'] = (int)$_POST["variantID"];
elseif (isset($_GET["variantID"])) $callBackParam['variantID'] = (int)$_GET["variantID"];
$smarty->assign("variantID",$callBackParam['variantID']);
# END поиск товаров с заданным вариантом характеристики



2.1. перед


$smarty->assign("admin_sub_dpt", "catalog_products_categories.tpl.html");


вставляем


# BEGIN поиск товаров с заданным вариантом характеристики
$data = db_query(
'SELECT po.optionID, po.name, povv.variantID, povv.option_value
FROM '.PRODUCT_OPTIONS_TABLE.' AS po
JOIN '.PRODUCTS_OPTIONS_VALUES_VARIANTS_TABLE.' AS povv USING(optionID)
ORDER BY po.sort_order, po.name, povv.sort_order, povv.option_value;');
while ($row = db_fetch_assoc($data))
{
$res[(int)$row['optionID']]['name'] = $row['name'];
$res[(int)$row['optionID']]['variants'][(int)$row['variantID']] = $row['option_value'];
}
$smarty->assign("options",$res);
# END поиск товаров с заданным вариантом характеристики



3. в файле catalog_products_categories.tpl.html

перед


<td align="right" nowrap valign="middle"><a href="#" onclick="document.getElementById('search_form').submit(); return false"><img src="data/admin/srg.gif" alt="search"></a></td>


вставляем


{* BEGIN поиск товаров с заданным вариантом характеристики *}
<td>
<select name="variantID">
<option value="0"{if $variantID == 0} selected{/if}>Не выбрано</option>
{foreach from=$options item=option}
<optgroup label="{$option.name}">
{foreach from=$option.variants item=variant key=key}
<option value="{$key}"{if $variantID == $key} selected{/if}>{$variant}</option>
{/foreach}
{/foreach}
</select>
</td>
{* END поиск товаров с заданным вариантом характеристики *}

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)