Commit 865abfaf1eef4a3d012e3965af926f864c6658e5
1 parent
3052fe2e
+ fix фильтров по полу и размеру
Showing
1 changed file
with
377 additions
and
201 deletions
Show diff stats
libs/catalogs.class.php
... | ... | @@ -1075,7 +1075,7 @@ function SaveProduct ($data, $upload) |
1075 | 1075 | //$search[] = sprintf("catalogs_keys_products_filters.filter_id='%d'", $params['filterID']); |
1076 | 1076 | $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$params['filterID']).")"; |
1077 | 1077 | }*/ |
1078 | - | |
1078 | + | |
1079 | 1079 | if(isset($filter['f']) && count($filter['f'])>0){ |
1080 | 1080 | $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; |
1081 | 1081 | } |
... | ... | @@ -1139,25 +1139,30 @@ function SaveProduct ($data, $upload) |
1139 | 1139 | 'spacesBeforeSeparator' => 1, |
1140 | 1140 | 'spacesAfterSeparator' => 1 |
1141 | 1141 | ); |
1142 | - //echo $sql; | |
1143 | - //$sql=""; | |
1144 | - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array()); | |
1145 | - | |
1146 | -//if($_GET['test']=='1') | |
1147 | -for($i=0;$i<count($res['data']);$i++){ | |
1148 | - $res['data'][$i]['mod'] = $this->db->getRow('select * from catalogs_modifications where product_id=? and active=1 Order By id Asc',array($res['data'][$i]['id']),DB_FETCHMODE_ASSOC); | |
1149 | - $res['data'][$i]['ph1'] = $this->getFilterPh1($res['data'][$i]['id'],$lang); | |
1150 | - | |
1151 | - $res['data'][$i]['rating2'] = $res['data'][$i]['rating']; | |
1152 | - if( @$res['data'][$i]['rating'] ) $res['data'][$i]['rating'] = round( (@$res['data'][$i]['rating'] / @$res['data'][$i]['vote_num']), 0 ); | |
1153 | - else $res['data'][$i]['rating'] = 0; | |
1154 | - $res['data'][$i]['rating'] = @$res['data'][$i]['rating'] * 17; | |
1155 | -} | |
1156 | - | |
1157 | -//if($_GET['test']=='1') print_r($res); | |
1158 | - | |
1159 | - $this->tpl->assign('productsData', $res); | |
1160 | - return $res; | |
1142 | + // echo $sql; | |
1143 | + // $sql=""; | |
1144 | + $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array ()); | |
1145 | + if (! empty ($res)) | |
1146 | + { | |
1147 | + // if($_GET['test']=='1') | |
1148 | + for ($i = 0; $i < count ($res['data']); $i ++) | |
1149 | + { | |
1150 | + $res['data'][$i]['mod'] = $this->db->getRow ('select * from catalogs_modifications where product_id=? and active=1 Order By id Asc', array ( | |
1151 | + $res['data'][$i]['id'] | |
1152 | + ), DB_FETCHMODE_ASSOC); | |
1153 | + $res['data'][$i]['ph1'] = $this->getFilterPh1 ($res['data'][$i]['id'], $lang); | |
1154 | + | |
1155 | + $res['data'][$i]['rating2'] = $res['data'][$i]['rating']; | |
1156 | + if (@$res['data'][$i]['rating']) | |
1157 | + $res['data'][$i]['rating'] = round ((@$res['data'][$i]['rating'] / @$res['data'][$i]['vote_num']), 0); | |
1158 | + else | |
1159 | + $res['data'][$i]['rating'] = 0; | |
1160 | + $res['data'][$i]['rating'] = @$res['data'][$i]['rating'] * 17; | |
1161 | + } | |
1162 | + } | |
1163 | + | |
1164 | + $this->tpl->assign ('productsData', $res); | |
1165 | + return $res; | |
1161 | 1166 | } |
1162 | 1167 | |
1163 | 1168 | function getFilterPh1($product_id,$lang = 'ru'){ |
... | ... | @@ -2158,54 +2163,96 @@ $row = $row2; |
2158 | 2163 | $this->tpl->assign('product_years',$row); |
2159 | 2164 | } |
2160 | 2165 | |
2161 | - function viewYears($rubric_id,$filters = null){ | |
2162 | - $search = array(); | |
2163 | - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); | |
2164 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
2165 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
2166 | - } | |
2167 | - if(isset($filter['s']) && count($filter['s'])>0){ | |
2168 | - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; | |
2169 | - } | |
2170 | - if(isset($filter['r']) && count($filter['r'])>0){ | |
2171 | - $search[] = "m2.rost in (".implode(",",$filter['r']).")"; | |
2172 | - } | |
2166 | +function viewYears ($rubric_id, $filters = null) | |
2167 | +{ | |
2168 | + $search = array (); | |
2173 | 2169 | |
2170 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
2171 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
2174 | 2172 | |
2175 | - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']); | |
2176 | - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']); | |
2177 | -if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0); | |
2178 | - | |
2179 | - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; | |
2180 | -/* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2181 | - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2182 | - $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2183 | - } */ | |
2184 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2185 | - $sex = $this->seralizeSex($_GET['sex']); | |
2186 | - $search[] = "s.sex IN (" . implode(",",$sex) . ")"; | |
2187 | - } | |
2173 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2174 | + { | |
2175 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
2176 | + } | |
2188 | 2177 | |
2189 | - if(strlen($filters)>0 && !isset($filter['f'])){ | |
2190 | - $search[] = "catalogs_keys_products_filters.filter_id in (".$filters.")"; | |
2191 | - } | |
2192 | - | |
2193 | - $sql = "select y.* from catalogs_products p, catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id "; | |
2194 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id "; | |
2195 | - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 ";} | |
2196 | - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 ";} | |
2197 | - if(strlen($filters)>0 && !isset($filter['f'])){ | |
2198 | - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id "; | |
2199 | - } | |
2200 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id ";} | |
2201 | - $sql .= "where p.id=k.product_id and p.count_modifications>0 "; | |
2202 | - if($filters==null)$sql .= " and p.rubric_id='".$rubric_id."' "; | |
2203 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
2204 | - $sql .= " GROUP BY k.year_id order by y.name desc"; | |
2205 | - // print $sql; | |
2206 | - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
2207 | - $this->tpl->assign('years', $row); | |
2208 | - } | |
2178 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2179 | + { | |
2180 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
2181 | + } | |
2182 | + | |
2183 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2184 | + { | |
2185 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
2186 | + } | |
2187 | + | |
2188 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
2189 | + $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
2190 | + | |
2191 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
2192 | + $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
2193 | + | |
2194 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
2195 | + $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
2196 | + | |
2197 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
2198 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
2199 | + | |
2200 | + /** | |
2201 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2202 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2203 | + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2204 | + * } | |
2205 | + */ | |
2206 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2207 | + { | |
2208 | + $sex = $this->seralizeSex ($_GET['sex']); | |
2209 | + $search[] = "s.sex IN (" . implode (",", $sex) . ")"; | |
2210 | + } | |
2211 | + | |
2212 | + if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
2213 | + { | |
2214 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")"; | |
2215 | + } | |
2216 | + | |
2217 | + $sql = "select y.* from catalogs_products p, catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id "; | |
2218 | + | |
2219 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2220 | + $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id "; | |
2221 | + | |
2222 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2223 | + { | |
2224 | + $sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 "; | |
2225 | + } | |
2226 | + | |
2227 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2228 | + { | |
2229 | + $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 "; | |
2230 | + } | |
2231 | + | |
2232 | + if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
2233 | + { | |
2234 | + $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id "; | |
2235 | + } | |
2236 | + | |
2237 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2238 | + { | |
2239 | + $sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id "; | |
2240 | + } | |
2241 | + | |
2242 | + $sql .= "where p.id=k.product_id and p.count_modifications>0 "; | |
2243 | + | |
2244 | + if ($filters == null) | |
2245 | + $sql .= " and p.rubric_id='" . $rubric_id . "' "; | |
2246 | + | |
2247 | + if (count ($search)) | |
2248 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
2249 | + | |
2250 | + $sql .= " GROUP BY k.year_id order by y.name desc"; | |
2251 | + | |
2252 | + // print $sql; | |
2253 | + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
2254 | + $this->tpl->assign ('years', $row); | |
2255 | +} | |
2209 | 2256 | |
2210 | 2257 | function viewYearsAll($rubric_id){ |
2211 | 2258 | $sql = "SELECT * FROM catalogs_years WHERE rubric_id=? ORDER BY id asc "; |
... | ... | @@ -2223,67 +2270,125 @@ if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id |
2223 | 2270 | $sql = "select sex from catalogs_keys_products_sex where product_id=?"; |
2224 | 2271 | $row = $this->db->getCol($sql,"sex",array($id)); |
2225 | 2272 | $this->tpl->assign('product_sex',$row); |
2226 | - } | |
2273 | + } | |
2227 | 2274 | |
2228 | - function viewSex($rubric_id,$filters = null,$lang = 'rus'){ | |
2229 | - $search = array(); | |
2230 | - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); | |
2231 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
2232 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
2233 | - } | |
2234 | - if(isset($filter['y']) && $filter['y']>0){ | |
2235 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
2236 | - } | |
2237 | - if(isset($filter['s']) && count($filter['s'])>0){ | |
2238 | - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; | |
2239 | - } | |
2240 | - if(isset($filter['r']) && count($filter['r'])>0){ | |
2241 | - $search[] = "m2.rost in (".implode(",",$filter['r']).")"; | |
2242 | - } | |
2243 | - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']); | |
2244 | - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']); | |
2245 | -if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0); | |
2246 | - | |
2247 | - if(strlen($filters)>0 && !isset($filter['f'])){ | |
2248 | - $search[] = "catalogs_keys_products_filters.filter_id in (".$filters.")"; | |
2249 | - } | |
2250 | - | |
2251 | - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; | |
2252 | - | |
2253 | - $sql = "select s.sex from catalogs_products p LEFT JOIN catalogs_keys_products_sex s ON s.product_id=p.id "; | |
2254 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2255 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; | |
2256 | - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=p.id and catalogs_modifications.active=1 ";} | |
2257 | - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 ";} | |
2258 | - if(strlen($filters)>0 && !isset($filter['f'])){ | |
2259 | - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2260 | - } | |
2261 | - $sql .= "where p.count_modifications>0 and s.sex<4 "; | |
2262 | - if($filters==null)$sql .= " and p.rubric_id='".$rubric_id."' "; | |
2263 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
2264 | - $sql .= " GROUP BY s.sex"; | |
2265 | - // print $sql; | |
2266 | - $res = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
2267 | - // print_r($res); | |
2268 | - $sex = array(); | |
2269 | - if($lang=='ukr') | |
2270 | - $arr = array(1=>array('name'=>"×îëîâ³÷èé",'link'=>'male'), | |
2271 | - 2=>array('name'=>"Ƴíî÷èé",'link'=>'female'), | |
2272 | - 3=>array('name'=>"Äèòÿ÷èé",'link'=>'child'), | |
2273 | - // 4=>array('name'=>"Óí³ñåêñ",'link'=>'unisex') | |
2274 | - ); | |
2275 | - else | |
2276 | - $arr = array(1=>array('name'=>"Ìóæñêîé",'link'=>'male'), | |
2277 | - 2=>array('name'=>"Æåíñêèé",'link'=>'female'), | |
2278 | - 3=>array('name'=>"Äåòñêèé",'link'=>'child'), | |
2279 | - // 4=>array('name'=>"Óíèñåêñ",'link'=>'unisex') | |
2280 | - ); | |
2281 | - foreach($res as $row){ | |
2282 | - $sex[] = $arr[$row['sex']]; | |
2283 | - } | |
2284 | - if(isset($_GET['s']))print_r($sex); | |
2285 | - $this->tpl->assign('sex', $sex); | |
2286 | - } | |
2275 | +function viewSex ($rubric_id, $filters = null, $lang = 'rus') | |
2276 | +{ | |
2277 | + $search = array (); | |
2278 | + | |
2279 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
2280 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
2281 | + | |
2282 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2283 | + { | |
2284 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
2285 | + } | |
2286 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
2287 | + { | |
2288 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
2289 | + } | |
2290 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2291 | + { | |
2292 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
2293 | + } | |
2294 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2295 | + { | |
2296 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
2297 | + } | |
2298 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
2299 | + $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
2300 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
2301 | + $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
2302 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
2303 | + $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
2304 | + | |
2305 | + if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
2306 | + { | |
2307 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")"; | |
2308 | + } | |
2309 | + | |
2310 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
2311 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
2312 | + | |
2313 | + $sql = "select s.sex from catalogs_products p LEFT JOIN catalogs_keys_products_sex s ON s.product_id=p.id "; | |
2314 | + | |
2315 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2316 | + $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2317 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
2318 | + $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; | |
2319 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2320 | + { | |
2321 | + $sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=p.id and catalogs_modifications.active=1 "; | |
2322 | + } | |
2323 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2324 | + { | |
2325 | + $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 "; | |
2326 | + } | |
2327 | + if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
2328 | + { | |
2329 | + $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2330 | + } | |
2331 | + | |
2332 | + $sql .= "where p.count_modifications>0 | |
2333 | + and s.sex < 4 | |
2334 | + and p.sex > 0 | |
2335 | + "; | |
2336 | + | |
2337 | + if ($filters == null) | |
2338 | + $sql .= " and p.rubric_id='" . $rubric_id . "' "; | |
2339 | + if (count ($search)) | |
2340 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
2341 | + | |
2342 | + $sql .= " GROUP BY s.sex"; | |
2343 | + // print $sql; | |
2344 | + $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
2345 | + // print_r($res); | |
2346 | + $sex = array (); | |
2347 | + if ($lang == 'ukr') | |
2348 | + $arr = array ( | |
2349 | + 1 => array ( | |
2350 | + 'name' => "×îëîâ³÷èé", | |
2351 | + 'link' => 'male' | |
2352 | + ), | |
2353 | + 2 => array ( | |
2354 | + 'name' => "Ƴíî÷èé", | |
2355 | + 'link' => 'female' | |
2356 | + ), | |
2357 | + 3 => array ( | |
2358 | + 'name' => "Äèòÿ÷èé", | |
2359 | + 'link' => 'child' | |
2360 | + ) | |
2361 | + ) | |
2362 | + // 4=>array('name'=>"Óí³ñåêñ",'link'=>'unisex') | |
2363 | + ; | |
2364 | + else | |
2365 | + $arr = array ( | |
2366 | + 1 => array ( | |
2367 | + 'name' => "Ìóæñêîé", | |
2368 | + 'link' => 'male' | |
2369 | + ), | |
2370 | + 2 => array ( | |
2371 | + 'name' => "Æåíñêèé", | |
2372 | + 'link' => 'female' | |
2373 | + ), | |
2374 | + 3 => array ( | |
2375 | + 'name' => "Äåòñêèé", | |
2376 | + 'link' => 'child' | |
2377 | + ) | |
2378 | + ) | |
2379 | + // 4=>array('name'=>"Óíèñåêñ",'link'=>'unisex') | |
2380 | + ; | |
2381 | + | |
2382 | + foreach ($res as $row) | |
2383 | + { | |
2384 | + $sex[] = $arr[$row['sex']]; | |
2385 | + } | |
2386 | + | |
2387 | + if (isset ($_GET['s'])) | |
2388 | + print_r ($sex); | |
2389 | + | |
2390 | + $this->tpl->assign ('sex', $sex); | |
2391 | +} | |
2287 | 2392 | |
2288 | 2393 | function getYearsName_IDs($ids){ |
2289 | 2394 | //$sql = "select name from catalogs_years where id in (".implode(",",$ids).") order by name"; |
... | ... | @@ -2535,83 +2640,154 @@ if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id |
2535 | 2640 | return implode(", ",$name); |
2536 | 2641 | } |
2537 | 2642 | |
2538 | - function viewFiltersMod($rubric_id){ | |
2539 | - $search = array(); | |
2540 | - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); | |
2541 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
2542 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
2543 | - } | |
2544 | - if(isset($filter['y']) && $filter['y']>0){ | |
2545 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
2546 | - } | |
2547 | - if(isset($filter['r']) && count($filter['r'])>0){ | |
2548 | - $search[] = "m2.rost in (".implode(",",$filter['r']).")"; | |
2549 | - } | |
2550 | - | |
2551 | - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; | |
2552 | -/* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2553 | - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2554 | - $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2555 | - } */ | |
2556 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2557 | - $sex = $this->seralizeSex($_GET['sex']); | |
2558 | - $search[] = "p.sex IN (" . implode(",",$sex) . ")"; | |
2559 | - } | |
2560 | - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']); | |
2561 | - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']); | |
2562 | -if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0); | |
2563 | - $sql = "select m.* from catalogs_modifications m,catalogs_products p "; | |
2564 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2565 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; | |
2566 | - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 ";} | |
2567 | - | |
2568 | - $sql .= "where m.size<>'' "; | |
2569 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
2570 | - $sql .= "and m.product_id=p.id and m.active=1 and p.rubric_id=? and p.count_modifications>0 GROUP BY m.size"; | |
2571 | - $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); | |
2572 | - if($_GET['t']==1){ | |
2573 | - print"<pre>"; | |
2574 | - print_r($row); | |
2575 | - print"</pre>"; | |
2576 | - } | |
2577 | - $this->tpl->assign('size', $row); | |
2578 | - } | |
2579 | - | |
2580 | - function viewFiltersRost($rubric_id){ | |
2581 | - $search = array(); | |
2582 | - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); | |
2583 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
2584 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
2585 | - } | |
2586 | - if(isset($filter['y']) && $filter['y']>0){ | |
2587 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
2588 | - } | |
2643 | + function viewFiltersMod ($rubric_id) | |
2644 | +{ | |
2645 | + $search = array (); | |
2646 | + | |
2647 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
2648 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
2649 | + | |
2650 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2651 | + { | |
2652 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
2653 | + } | |
2589 | 2654 | |
2590 | - | |
2591 | - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; | |
2592 | -/* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2593 | - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2594 | - $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2595 | - } */ | |
2596 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2597 | - $sex = $this->seralizeSex($_GET['sex']); | |
2598 | - $search[] = "p.sex IN (" . implode(",",$sex) . ")"; | |
2599 | - } | |
2600 | - $sql = "select m.* from catalogs_modifications m,catalogs_products p "; | |
2601 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2602 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; | |
2603 | - | |
2604 | - $sql .= "where m.rost<>'' "; | |
2605 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
2606 | - $sql .= "and m.product_id=p.id and m.active=1 and p.rubric_id=? and p.count_modifications>0 GROUP BY m.rost"; | |
2607 | - $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); | |
2608 | - if($_GET['t']==1){ | |
2609 | - print"<pre>"; | |
2610 | - print_r($row); | |
2611 | - print"</pre>"; | |
2612 | - } | |
2613 | - $this->tpl->assign('rost', $row); | |
2614 | - } | |
2655 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
2656 | + { | |
2657 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
2658 | + } | |
2659 | + | |
2660 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2661 | + { | |
2662 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
2663 | + } | |
2664 | + | |
2665 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
2666 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
2667 | + /* | |
2668 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2669 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2670 | + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2671 | + * } | |
2672 | + */ | |
2673 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2674 | + { | |
2675 | + $sex = $this->seralizeSex ($_GET['sex']); | |
2676 | + $search[] = "p.sex IN (" . implode (",", $sex) . ")"; | |
2677 | + } | |
2678 | + | |
2679 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
2680 | + $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
2681 | + | |
2682 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
2683 | + $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
2684 | + | |
2685 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
2686 | + $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
2687 | + | |
2688 | + $sql = "select m.* from catalogs_modifications m,catalogs_products p "; | |
2689 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2690 | + $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2691 | + | |
2692 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
2693 | + $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; | |
2694 | + | |
2695 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2696 | + { | |
2697 | + $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 "; | |
2698 | + } | |
2699 | + | |
2700 | + $sql .= "where m.size<>'' "; | |
2701 | + | |
2702 | + if (count ($search)) | |
2703 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
2704 | + | |
2705 | + $sql .= " | |
2706 | + and m.product_id=p.id | |
2707 | + and m.active=1 | |
2708 | + and p.rubric_id=? | |
2709 | + and p.count_modifications>0 | |
2710 | + and m.size > 0 | |
2711 | + GROUP BY m.size"; | |
2712 | + $row = $this->db->getAll ($sql, array ( | |
2713 | + $rubric_id | |
2714 | + ), DB_FETCHMODE_ASSOC); | |
2715 | + | |
2716 | + if ($_GET['t'] == 1) | |
2717 | + { | |
2718 | + print "<pre>"; | |
2719 | + print_r ($row); | |
2720 | + print "</pre>"; | |
2721 | + } | |
2722 | + | |
2723 | + $this->tpl->assign ('size', $row); | |
2724 | +} | |
2725 | + | |
2726 | +function viewFiltersRost ($rubric_id) | |
2727 | +{ | |
2728 | + $search = array (); | |
2729 | + | |
2730 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
2731 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
2732 | + | |
2733 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2734 | + { | |
2735 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
2736 | + } | |
2737 | + | |
2738 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
2739 | + { | |
2740 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
2741 | + } | |
2742 | + | |
2743 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
2744 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
2745 | + /* | |
2746 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2747 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2748 | + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2749 | + * } | |
2750 | + */ | |
2751 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2752 | + { | |
2753 | + $sex = $this->seralizeSex ($_GET['sex']); | |
2754 | + $search[] = "p.sex IN (" . implode (",", $sex) . ")"; | |
2755 | + } | |
2756 | + | |
2757 | + $sql = "select m.* from catalogs_modifications m, catalogs_products p "; | |
2758 | + | |
2759 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2760 | + $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2761 | + | |
2762 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
2763 | + $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; | |
2764 | + | |
2765 | + $sql .= "where m.rost<>'' "; | |
2766 | + | |
2767 | + if (count ($search)) | |
2768 | + { | |
2769 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
2770 | + } | |
2771 | + | |
2772 | + $sql .= " | |
2773 | + and m.product_id=p.id | |
2774 | + and m.active=1 | |
2775 | + and p.rubric_id=? | |
2776 | + and p.count_modifications>0 | |
2777 | + GROUP BY m.rost"; | |
2778 | + $row = $this->db->getAll ($sql, array ( | |
2779 | + $rubric_id | |
2780 | + ), DB_FETCHMODE_ASSOC); | |
2781 | + | |
2782 | + if ($_GET['t'] == 1) | |
2783 | + { | |
2784 | + print "<pre>"; | |
2785 | + print_r ($row); | |
2786 | + print "</pre>"; | |
2787 | + } | |
2788 | + | |
2789 | + $this->tpl->assign ('rost', $row); | |
2790 | +} | |
2615 | 2791 | |
2616 | 2792 | function viewRostProduct($id){ |
2617 | 2793 | $sql = "select m.* from catalogs_modifications m where m.product_id=? GROUP BY m.rost"; | ... | ... |