|
@@ 253-270 (lines=18) @@
|
| 250 |
|
$selectOptions['where'][] = [Ecommerce\Item\Offer\Price::colPrefix() . 'price', (float) $filter['max'], '<=']; |
| 251 |
|
} |
| 252 |
|
break; |
| 253 |
|
case 'options': |
| 254 |
|
foreach ($filter as $optionId => $optionValue) { |
| 255 |
|
$optionId = (int) $optionId; |
| 256 |
|
if (is_array($optionValue)) { |
| 257 |
|
$optionValueArr = []; |
| 258 |
|
foreach ($optionValue as $val) { |
| 259 |
|
$optionValueArr[] = \App::$cur->db->connection->pdo->quote($val); |
| 260 |
|
} |
| 261 |
|
$qstr = 'IN (' . implode(',', $optionValueArr) . ')'; |
| 262 |
|
} else { |
| 263 |
|
$qstr = '= ' . \App::$cur->db->connection->pdo->quote($optionValue); |
| 264 |
|
} |
| 265 |
|
$selectOptions['join'][] = [Ecommerce\Item\Param::table(), Ecommerce\Item::index() . ' = ' . 'option' . $optionId . '.' . Ecommerce\Item\Param::colPrefix() . Ecommerce\Item::index() . ' AND ' . |
| 266 |
|
'option' . $optionId . '.' . Ecommerce\Item\Param::colPrefix() . Ecommerce\Item\Option::index() . ' = "' . (int) $optionId . '" AND ' . |
| 267 |
|
'option' . $optionId . '.' . Ecommerce\Item\Param::colPrefix() . 'value ' . $qstr . '', |
| 268 |
|
'inner', 'option' . $optionId]; |
| 269 |
|
} |
| 270 |
|
break; |
| 271 |
|
case 'offerOptions': |
| 272 |
|
//$selectOptions['join'][] = [Ecommerce\Item\Offer::table(), Ecommerce\Item::index() . ' = offer.' . Ecommerce\Item\Offer::colPrefix() . Ecommerce\Item::index(), 'left', 'offer']; |
| 273 |
|
foreach ($filter as $optionId => $optionValue) { |
|
@@ 271-289 (lines=19) @@
|
| 268 |
|
'inner', 'option' . $optionId]; |
| 269 |
|
} |
| 270 |
|
break; |
| 271 |
|
case 'offerOptions': |
| 272 |
|
//$selectOptions['join'][] = [Ecommerce\Item\Offer::table(), Ecommerce\Item::index() . ' = offer.' . Ecommerce\Item\Offer::colPrefix() . Ecommerce\Item::index(), 'left', 'offer']; |
| 273 |
|
foreach ($filter as $optionId => $optionValue) { |
| 274 |
|
$optionId = (int) $optionId; |
| 275 |
|
if (is_array($optionValue)) { |
| 276 |
|
$optionValueArr = []; |
| 277 |
|
foreach ($optionValue as $val) { |
| 278 |
|
$optionValueArr[] = \App::$cur->db->connection->pdo->quote($val); |
| 279 |
|
} |
| 280 |
|
$qstr = 'IN (' . implode(',', $optionValueArr) . ')'; |
| 281 |
|
} else { |
| 282 |
|
$qstr = '= ' . \App::$cur->db->connection->pdo->quote($optionValue); |
| 283 |
|
} |
| 284 |
|
$selectOptions['join'][] = [Ecommerce\Item\Offer\Param::table(), Ecommerce\Item\Offer::index() . ' = ' . 'offerOption' . $optionId . '.' . Ecommerce\Item\Offer\Param::colPrefix() . Ecommerce\Item\Offer::index() . ' AND ' . |
| 285 |
|
'offerOption' . $optionId . '.' . Ecommerce\Item\Offer\Param::colPrefix() . Ecommerce\Item\Offer\Option::index() . ' = "' . (int) $optionId . '" AND ' . |
| 286 |
|
'offerOption' . $optionId . '.' . Ecommerce\Item\Offer\Param::colPrefix() . 'value ' . $qstr, |
| 287 |
|
'inner', 'offerOption' . $optionId]; |
| 288 |
|
} |
| 289 |
|
break; |
| 290 |
|
} |
| 291 |
|
} |
| 292 |
|
} |