Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
если не нужен стандартный поиск то отредактировать запрос к базе. если нужен то продублировать фукцию поиска.всё равно как то туговато....
а вот он ищет в базе в столбце name...
а как сделать чтоб и из столбца product_code искал???
В Shop-Script есть функция расширенного поиска, однако, почему-то отсутствует шаблон.
Причем не только у меня (при том, что у меня лицензия), но и у половины Рунета.
Расширенный поиск вызывается запросом:
index.php?adv_search=yes
Например:
hxxp://www.triabc.ru/?adv_search=yes
Я отправил сообщение в службу поддержки с запросом данного шаблона, если пришлют - выложу здесь - возможно там сразу есть встроенные фильтры.
Алгоритма поиска может быть 2:
Вариант I. Простой (выборка на основе текста)
а) Для товара создается дополнительный параметром, на основе которого будет производиться выборка.Например, создаем параметр модель.
б) Далее осуществляется поиск в базе данных , всех товаров у которых дополнительный параметр модель = название модели.
Вариант II. Улучшенный (иерархия + индексы)
а) Создаем дополнительный параметр с числовыми индексами (Акура = 1, Хонда = 2 и т.д.)
б) Создаем и подключаем php-массив с номерами марок и названий
в) Далее можно делать гораздо более быстрые выборки по маркам.
Насколько я понял по коду файлов SS - все это уже реализовано, поэтому сначала необходимо дождаться шаблона.
MySQL:
alter table SS_product_options ADD topCategoryID INT(11) NOT NULL default 2
function update_Categories_Options_RootCat_Variants($CatID, $RootCatID, $OptionID, $variants){
$q = db_query("SELECT categoryID FROM ".CATEGORIES_TABLE.
" WHERE parent=$CatID AND categoryID<>1") or die (db_error());
// process subcategories
while( $row=db_fetch_row($q) ){
update_Categories_Options_RootCat_Variants( $row["categoryID"], $RootCatID, $OptionID, $variants );
}
$q = db_query("INSERT INTO ".CATEGORY_PRODUCT_OPTIONS_TABLE." (optionID, categoryID, set_arbitrarily) VALUES ('$OptionID', '$CatID', '0')") or die("error inserting options for category");
foreach($variants as $variant){
$q = db_query("INSERT INTO ".CATEGORY_PRODUCT_OPTION_VARIANTS." (optionID, categoryID, variantID) VALUES ('$OptionID', '$CatID', '$variant')") or die("error inserting variant for category");
}
return true;
}
function update_Categories_Options_Variants(){
$q = db_query("truncate table ".CATEGORY_PRODUCT_OPTIONS_TABLE )or die("cant truncate");
$q = db_query("truncate table ".CATEGORY_PRODUCT_OPTION_VARIANTS )or die("cant truncate");
$q = db_query("SELECT categoryID FROM ".CATEGORIES_TABLE.
" WHERE parent=1 AND categoryID<>1") or die (db_error());
// process all root categories
while( $row=db_fetch_row($q) ){
$q2 = db_query("SELECT optionID FROM ".PRODUCT_OPTIONS_TABLE." WHERE topCategoryID = '".$row["categoryID"]."' LIMIT 1");
$row2=db_fetch_row($q2);
$optionID = $row2["optionID"];
$q2 = db_query("SELECT variantID FROM ".PRODUCTS_OPTIONS_VALUES_VARIANTS_TABLE." WHERE optionID = '".$row2["optionID"]."' ORDER BY sort_order, variantID");
$variants = array();
while($row2=db_fetch_row($q2)){
$variants[] = $row2["variantID"];
}
update_Categories_Options_RootCat_Variants( $row["categoryID"], $row["categoryID"], $optionID, $variants);
}
return true;
}
function catGetCategoryById($categoryID)
{
$categoryID = (int)$categoryID;
$q = db_query("select categoryID, name, parent, products_count, description, picture, ".
" products_count_admin, sort_order, viewed_times".
", allow_products_comparison".
", allow_products_search".
", show_subcategories_products, meta_description, meta_keywords ".
" from ".CATEGORIES_TABLE.
" where categoryID=$categoryID");
$res = db_fetch_row($q);
$level = 1; #maybe main category
$parent = $res['parent'];
while($parent!=1){
$level ++;
$qtmp = db_query("select parent from ".CATEGORIES_TABLE.
" where categoryID=$parent");
$restmp = db_fetch_row($qtmp);
if($restmp['parent'] == 1){# calculating TOP directory ID
$res['topCategoryID'] = $parent;
}
$parent = $restmp['parent'];
}
$res['level'] = $level;
return $res;
}
SELECT optionID, name
SELECT optionID, name, topCategoryID