sitemap.php[spoiler]<?php
/*****************************************************************************
* *
* Shop-Script FREE *
* Copyright (c) 2005 Supme. All rights reserved. *
* *
****************************************************************************/
// auxiliary information page presentation
if (isset($_GET["sitemap"]))
{
$sitemap_categorys=All_Categories(0,0);
$smarty->assign("sitemap_categorys", $sitemap_categorys);
$smarty->assign("main_content_template", "sitemap.tpl.html");
}
?>[/spoiler]
search_simple.php[spoiler]<?php
/*****************************************************************************
* *
* Shop-Script FREE *
* Copyright (c) 2005 WebAsyst LLC. All rights reserved. *
* *
****************************************************************************/
function subcateg($categoryID,$out_c)
{
global $categ_id;
$sql="select categoryID from ".CATEGORIES_TABLE." where enabled=1 and parent=".$categoryID." and parent>0";
$q=db_query($sql) or die (db_error()); $out=$out_c;
while ($row = db_fetch_row($q))
{
$categ_id[]=$row[0];
subcateg($row[0],$categ_id);
}
return $categ_id;
}
// simple search
if (isset($_GET["search_expanded_ajax"]))
{
include("../cfg/ajax_connect.inc.php");
$word = mysql_real_escape_string($_POST['search']);
$q=db_query("select optionID,name from ".PRODUCT_OPTIONS_TABLE." ORDER BY `sort_order` ASC");
if (db_num_rows($q)>0)
{
$option=array();
while ($row = db_fetch_row($q))
{
$option[$row[0]]['name']=$row[1];
}
$out_a=array();
$out_a[]=$word; $categ_id=array();
if ($_POST['sub'])
{
$sub_cat=subcateg($word,$out_a);
if (count($sub_cat)>0)
{
foreach ($sub_cat as $sub)
$categ_in .=$sub.',';
$categ_in=substr($categ_in, 0, strlen($categ_in)-1);
}
else $categ_in='-1';
$categ_in=$word.','.$categ_in;
}
else $categ_in=$word;
$sql="SELECT POV.variantID,POV.optionID,POV.name FROM ".PRODUCTS_TABLE." as P LEFT JOIN ".PRODUCT_OPTIONS_V_TABLE." as OP USING(productID) LEFT JOIN ".PRODUCT_OPTIONS_VAL_TABLE." AS POV USING(variantID) where P.productID=OP.productID";
if ($categ_in!=0) $sql .=" and P.categoryID in (".$categ_in.")";
$q=db_query($sql);
if (db_num_rows($q)>0)
{
while ($row = db_fetch_row($q))
{
$option[$row[1]]['opt'][$row[0]]=$row[2];
}
foreach ($option as $key => $value)
if (!isset($value['opt'])) unset($option[$key]);
}
else $option=array();
$html='';
if (count($option))
foreach ($option as $key => $value)
{
$html.= '<p><b>'.$value['name'].'</b>';
if (isset($value['opt']))
{
$html .='<select name="variant['.$key.']">';
$html .='<option value="0">'.STRING_UNIMPORTANT.'</option>';
foreach ($value['opt'] as $key2 => $variant)
$html .='<option value="'.$key2.'">'.$variant.'</option>';
$html .='</select>';
}
$html .='</p>';
}
echo $html;
}
}
else
{
if (isset($_GET["inside"])) $smarty->assign("search_in_results", $_GET["inside"]);
if (isset($_GET["search_expanded"]))
{
$category=db_arAll("select categoryID, name from `".CATEGORIES_TABLE."` where `products_count`>0 and `enabled`=1");
$sql="select optionID,name from ".PRODUCT_OPTIONS_TABLE." order by sort_order";
$options = array();
$q=db_query($sql);
while ($row = db_fetch_row($q))
{
$options[$row[0]]['name'] = $row[1];
$options[$row[0]]['variant'] = db_arAll("select * from ".PRODUCT_OPTIONS_VAL_TABLE." where optionID=".$row[0]." order by sort_order");
}
$smarty->assign("options_search", $options);
if (isset($_POST['search']) || isset($_GET['day']))
{
$url="./index.php?search=yes&search_expanded=yes";
$sql="SELECT categoryID, ".PRODUCTS_TABLE.".name, brief_description, customers_rating, Price, ".PRODUCTS_TABLE.".picture, in_stock, thumbnail, customer_votes, big_picture, list_price, ".PRODUCTS_TABLE.".productID, product_code, ".PRODUCTS_TABLE.".hurl, items_sold, ".PRODUCTS_TABLE.".brandID, ".BRAND_TABLE.".name, ".BRAND_TABLE.".hurl FROM ".PRODUCTS_TABLE." LEFT JOIN ".BRAND_TABLE." USING(brandID) WHERE enabled='1'";
if ($_POST['categorySelect']>0 && is_numeric($_POST['categorySelect']))
{
$categ=db_r("select categoryID from `".CATEGORIES_TABLE."` where `products_count`>0 and `enabled`=1 and categoryID=".$_POST['categorySelect']);
$categ_in=$categ; $out_a=array();
if (isset($_POST["search_in_subcategory"]))
{
$out_a[]=$categ; $categ_in='';
$sub_cat=subcateg($categ,$out_a);
if (count($sub_cat)>0)
{
foreach ($sub_cat as $sub)
$categ_in .=$sub.',';
$categ_in=substr($categ_in, 0, strlen($categ_in)-1);
}
else $categ_in='-1';
}
$categ_in=$categ.','.$categ_in;
$sql .=" and categoryID in (".$categ_in.")";
}
$str=$_POST['keyword'];
if(get_magic_quotes_gpc()) $str=stripslashes($str);
$keyword=mysql_real_escape_string($str);
if ($keyword != STRING_SEARCH) $sql .=" and ".PRODUCTS_TABLE.".name like '%".$keyword."%'";
$options_v=''; $b1=array(); $search_param=false;
if (count($_POST['variant'])>0)
foreach ($_POST['variant'] as $variant)
if ($variant>0)
{
$a=array();
$search_param=true;
$q=db_query("select productID FROM SS_product_options_values as OV where `variantID`=".$variant);
while ($row = db_fetch_row($q))
$a[]=$row[0];
if (count($b1)>0 && (count($a)>0))
$b1=array_uintersect($a,$b1,"strcasecmp");
elseif (count($a)>0) $b1=$a;
else {$b1=array(); break;}
}
if (isset($_POST['variant_chek']))
{
$b2=array(); $search_param=true;
foreach ($_POST['variant_chek'] as $variant)
{
$a=array();
$q=db_query("select productID FROM SS_product_options_values as OV where `variantID`=".$variant);
if ($q)
while ($row = db_fetch_row($q))
$a[]=$row[0];
if (count($b2)>0 && (count($a)>0))
$b2=array_uintersect($a,$b2,"strcasecmp");
elseif (count($a)>0) $b2=$a;
else {$b2=array(); break;}
}
}
$R=array();
if (count($b1)>0 && count($b2)>0)
$R=array_uintersect($b1,$b2,"strcasecmp");
elseif (count($b1)>0) $R=$b1;
elseif (count($b2)>0) $R=$b2;
foreach ($R as $variant)
$options_v .=$variant.',';
if ($options_v)
{
$options_v=substr($options_v, 0, strlen($options_v)-1);
$sql .=' and productID in ('.$options_v.')';
}
elseif ($search_param) $sql .=' and productID in (-1)';
$price_from=str_replace(',','.',$_POST['search_price_from']);
if (is_numeric($price_from)) $sql .=" and ".PRODUCTS_TABLE.".Price>=".$price_from;
$price_to=str_replace(',','.',$_POST['search_price_to']);
if (is_numeric($price_to)) $sql .=" and ".PRODUCTS_TABLE.".Price<=".$price_to;
if (isset($_GET['day'])) $sql .=" and ".PRODUCTS_TABLE.".date='".$_GET['year'].'-'.$_GET['month'].'-'.$_GET['day']."'";
$q=db_query($sql);
if (!isset($_POST['page'])) $page=1;
else $page=$_POST['page'];
$products_count=db_num_rows($q);
$sql .=" LIMIT ".(CONF_PRODUCTS_PER_PAGE*($page-1)).",".CONF_PRODUCTS_PER_PAGE;
$q=db_query($sql);
$result = array();
$i=0; $idp=0;
if ($q)
{
while ($row = db_fetch_row($q))
{
#if (isset($_GET["show_all"]) || ($i>=$offset && $i<$offset+CONF_PRODUCTS_PER_PAGE))
{ //update several product fields
if (!file_exists("./products_pictures/".$row[9])) $row[9] = 0;
if (!file_exists("./products_pictures/".$row[7])) $row[7] = 0;
if (!file_exists("./products_pictures/".$row[5])) $row[5] = 0;
if ($row[17] != "") {$row[19] = REDIRECT_BRAND."/".$row[17]."about/";} else {$row[19] = "index.php?about&brands=".$row[15];}
if ($row[13] != "")
{
$row[14] = $row[13];
$row[13] = REDIRECT_PRODUCT."/".$row[13];
}
else {
$row[14] = $row[11];
$row[13] = "index.php?productID=".$row[11];
}
$row[4]=$row[4]/CURRENCY_val;
$row[10]=$row[10]/CURRENCY_val;
$row[24] = show_price($row[4]);
$row[25] = show_price($row[10]);
$row[26] = show_price($row[10]-$row[4]); //you save (value)
if ($row[10]) $row[27] = ceil(((($row[10]-$row[4])/$row[10])*100)); //you save (%)
if (($row[6] > 0) && (CONF_SHOW_ADD2CART > 0)) {$row[28]=1;}
else
if ((CONF_SHOW_ADD2CART_INSTOCK > 0) && (CONF_SHOW_ADD2CART > 0))
{$row[28]=1;}
else {$row[28]=0;}
if ($row[6] > 0)
$result[] = $row;
else
if (CONF_SHOW_PRODUCT_INSTOCK > 0) {$result[] = $row;}
$idp .=$row[11].',';
}
$i++;
}
$idp='('.substr($idp, 0, strlen($idp)-1).')';
}
else $idp='(0)';
$sql_p="SELECT pov.`productID` FROM `".PRODUCTS_TABLE."` as p,".PRODUCT_OPTIONS_V_TABLE." as pov where p.`productID`=pov.`productID` and p.`productID` in ".$idp." group by p.`productID`";
$q_p = db_query($sql_p); $pi=0;
$p=db_arAll($sql_p);
foreach ($p as $pvalue)
{
$sql2="SELECT po.* FROM ".PRODUCT_OPTIONS_TABLE." as po,".PRODUCT_OPTIONS_V_TABLE." as pov where po.`optionID`=pov.`optionID` and pov.productID=".$pvalue["productID"]." group by po.`optionID` order by po.sort_order";
$p2=db_arAll($sql2); $variant=array();
foreach ($p2 as $opions)
{
$sql_v= "select ovv.name,pov.* from ".PRODUCT_OPTIONS_VAL_TABLE." as ovv,".PRODUCT_OPTIONS_V_TABLE." as pov where ovv.variantID = pov.`variantID` and ovv.optionID =".$opions['optionID']." AND pov.productID =".$pvalue['productID']." GROUP BY ovv.`variantID` order by ovv.sort_order";
$variant[$opions['optionID']]['var']=db_arAll($sql_v);
$variant[$opions['optionID']]['name']=$opions["name"];
# $variant[$opions['optionID']]['name']=$opions['optionID'];
}
$rez[$pvalue['productID']]=$variant;
$sql_p="select picture from ".PRODUCT_OPTIONS_V_TABLE." where `default`=1 and `picture` is not NULL AND `picture` != '' and `productID`=".$pvalue["productID"].' LIMIT 1';
$rezult=db_query($sql_p);
$rezult=mysql_fetch_row($rezult);
$p_default[$pvalue['productID']]=$rezult[0];
unset($variant,$sql_v);
}
$smarty->assign("options", $rez);
$smarty->assign("p_default", $p_default);
$smarty->assign("post", $_POST);
$smarty->assign("products_to_show", $result);
$smarty->assign("products_to_show_count", $products_count);
$navigator = ""; //navigation links
}
$smarty->assign("search_categories", All_Categories(0,0));
$smarty->assign("category", $category);
$smarty->assign("main_content_template", "search_expanded.tpl.html");
}
elseif (isset($_GET["searchstring"])) //make a simple search
{
//prepare search string
$_GET["searchstring"] = trim($_GET["searchstring"]);
$_GET["searchstring"] = validate_search_string($_GET["searchstring"]);
$products_search = array();
$cats_search = array();
$g_search_count = 0;
//explode string to a set separate of words
$search = explode(" ",$_GET["searchstring"]);
$result=array();
$r = array();
$i = 0;
$k = 0;
if ($_GET["searchstring"])
{
//sort options
$sort_options['sort_values'] = Array(
"index.php?searchstring=".$_GET["searchstring"]." &sort=name&order=asc",
"index.php?searchstring=".$_GET["searchstring"]."&sort=name&order=desc",
"index.php?searchstring=".$_GET["searchstring"]."&sort=Price&order=asc",
"index.php?searchstring=".$_GET["searchstring"]."&sort=Price&order=desc",
"index.php?searchstring=".$_GET["searchstring"]."&sort=customers_rating&order=desc",
"index.php?searchstring=".$_GET["searchstring"]."&sort=in_stock&order=desc",
"index.php?searchstring=".$_GET["searchstring"]."&sort=product_code&order=asc"
);
$sort_options['sort_names'] = Array(ADMIN_SORT_BY_NAME_ASC, ADMIN_SORT_BY_NAME_DESC, ADMIN_SORT_BY_PRICE_ASC, ADMIN_SORT_BY_PRICE_DESC, ADMIN_SORT_BY_RATING, ADMIN_SORT_BY_IN_STOCK, ADMIN_SORT_BY_CODE);
$sort_options['sort_selected'] = "index.php?searchstring=".$_GET["searchstring"]."&sort=".$_SESSION["sort"]."&order=".$_SESSION["order"];
$smarty->assign("sort_options", $sort_options);
//searching for categories
$s = "SELECT categoryID, name FROM ".CATEGORIES_TABLE." WHERE enabled=1 and categoryID<>0 and name LIKE '%".$search[0]."%' ";
for ($i=1; $i<count($search); $i++)
{
$s .= "AND name LIKE '%".$search[$i]."%' ";
}
$s.="ORDER BY name";
$q = db_query($s);
while ($row = db_fetch_row($q)) $cats_search[] = $row;
//searching for products
$s_search = "SELECT count(*) FROM ".PRODUCTS_TABLE." LEFT JOIN ".BRAND_TABLE." USING(brandID) WHERE Enabled=1 and categoryID<>0 and ";
$s_search .= "((".PRODUCTS_TABLE.".name LIKE '%".$search[0]."%' OR ".PRODUCTS_TABLE.".description LIKE '%".$search[0]."%' OR brief_description LIKE '%".$search[0]."%'OR product_code LIKE '%".$search[0]."%') ";
for ($j=1; $j<count($search); $j++) $s_search .= "AND (".PRODUCTS_TABLE.".name LIKE '%".$search[$j]."%' OR ".PRODUCTS_TABLE.".description LIKE '%".$search[$j]."%' OR brief_description LIKE '%".$search[$j]."%' OR product_code LIKE '%".$search[$j]."%') ";
$s_search .= ") ";
$q = db_query($s_search) or die (db_error());
$g_search_count = db_fetch_row($q); $g_search_count = $g_search_count[0];
if ($offset>$g_search_count) $offset = 0;
$q = db_query(str_replace("SELECT count(*)", "SELECT categoryID, ".PRODUCTS_TABLE.".name, brief_description, customers_rating, Price, picture, in_stock, thumbnail, customer_votes, big_picture, list_price, productID, product_code, ".PRODUCTS_TABLE.".hurl, items_sold, ".PRODUCTS_TABLE.".brandID, ".BRAND_TABLE.".name, ".BRAND_TABLE.".hurl", $s_search)." GROUP BY ".PRODUCTS_TABLE.".productID ORDER BY ".PRODUCTS_TABLE.".".$_SESSION["sort"]." ".$_SESSION["order"]) or die (db_error());
$i = 0;
$k = 0;
$products_search = array();
while ($row = db_fetch_row($q))
{
if (isset($_GET["show_all"]) || ($i >= $offset && $i < $offset+CONF_PRODUCTS_PER_PAGE))
{
//add several fields
if (!file_exists("./products_pictures/".$row[5])) $row[5] = "";
if (!file_exists("./products_pictures/".$row[7])) $row[7] = "";
if (!file_exists("./products_pictures/".$row[9])) $row[9] = "";
if ($row[17] != "") {$row[19] = REDIRECT_BRAND."/".$row[17]."about/";} else {$row[19] = "index.php?about&brands=".$row[15];}
if ($row[13] != "")
{
$row[14] = $row[13];
$row[13] = REDIRECT_PRODUCT."/".$row[13];
}
else {
$row[14] = $row[11];
$row[13] = "index.php?productID=".$row[11];
}
$row[24] = show_price($row[4]);
$row[25] = show_price($row[10]);
$row[26] = show_price($row[10]-$row[4]); //you save (value)
if ($row[10]) $row[27] = ceil(((($row[10]-$row[4])/$row[10])*100)); //you save (%)
$row[29]= round($row[4]/CURR_USD); //usd
$row[30]= round($row[4]/CURR_EUR); //eur
if (($row[6] > 0) && (CONF_SHOW_ADD2CART > 0)) {$row[28]=1;}
else
if ((CONF_SHOW_ADD2CART_INSTOCK > 0) && (CONF_SHOW_ADD2CART > 0))
{$row[28]=1;}
else {$row[28]=0;}
if ($row[6] > 0)
$products_search[] = $row;
else
if (CONF_SHOW_PRODUCT_INSTOCK > 0) {$products_search[] = $row;}
$k++;
}
$i++;
}
//number of products to show on this page
if (isset($_GET["show_all"]))
{
$offset = "show_all";
}
//navigation
$search_navigator = "";
showNavigator($g_search_count, $offset, CONF_PRODUCTS_PER_PAGE, "index.php?searchstring=".$_GET["searchstring"]."&",$search_navigator);
$smarty->assign("search_navigator",$search_navigator);
$smarty->assign("products_to_show", $products_search);
}
$smarty->assign("products_to_show_count", $k);
$smarty->assign("products_found", $i);
$smarty->assign("searchstring", $_GET["searchstring"]);
$smarty->assign("main_content_template", "search_simple.tpl.html");
}
else
{
$smarty->assign("searchstring", "");
}
}
# $smarty->debugging = true;
?>[/spoiler]