|
@@ 549-581 (lines=33) @@
|
| 546 |
|
* @internal param string $sort Champ sur lequel trier |
| 547 |
|
* @internal param string $order Sens du tri |
| 548 |
|
*/ |
| 549 |
|
public function getMostViewedProducts(Oledrion_parameters $parameters) |
| 550 |
|
{ |
| 551 |
|
$parameters = $parameters->extend(new Oledrion_parameters(array( |
| 552 |
|
'start' => 0, |
| 553 |
|
'limit' => 0, |
| 554 |
|
'category' => 0, |
| 555 |
|
'sort' => 'product_hits', |
| 556 |
|
'order' => 'DESC' |
| 557 |
|
))); |
| 558 |
|
$data = array(); |
| 559 |
|
$criteria = new CriteriaCompo(); |
| 560 |
|
$criteria->add(new Criteria('product_online', 1, '=')); |
| 561 |
|
if (Oledrion_utils::getModuleOption('show_unpublished') == 0) { // Ne pas afficher les produits qui ne sont pas publiés |
| 562 |
|
$criteria->add(new Criteria('product_submitted', time(), '<=')); |
| 563 |
|
} |
| 564 |
|
if (Oledrion_utils::getModuleOption('nostock_display') == 0) { // Se limiter aux seuls produits encore en stock |
| 565 |
|
$criteria->add(new Criteria('product_stock', 0, '>')); |
| 566 |
|
} |
| 567 |
|
if (is_array($parameters['category']) && count($parameters['category']) > 0) { |
| 568 |
|
$criteria->add(new Criteria('product_cid', '(' . implode(',', $parameters['category']) . ')', 'IN')); |
| 569 |
|
} elseif ($parameters['category'] != 0) { |
| 570 |
|
$criteria->add(new Criteria('product_cid', (int)$parameters['category'], '=')); |
| 571 |
|
} |
| 572 |
|
$criteria->add(new Criteria('product_hits', 0, '>')); |
| 573 |
|
|
| 574 |
|
$criteria->setLimit($parameters['limit']); |
| 575 |
|
$criteria->setStart($parameters['start']); |
| 576 |
|
$criteria->setSort($parameters['sort']); |
| 577 |
|
$criteria->setOrder($parameters['order']); |
| 578 |
|
$data = $this->getObjects($criteria, true); |
| 579 |
|
|
| 580 |
|
return $data; |
| 581 |
|
} |
| 582 |
|
|
| 583 |
|
/** |
| 584 |
|
* Retourne la liste des x produits les mieux notés par les visiteurs |
|
@@ 592-623 (lines=32) @@
|
| 589 |
|
* @internal param int $limit Nombre maximum d'enregistrements à renvoyer |
| 590 |
|
* @internal param int $category Identifiant de la catégorie (évenutellement) |
| 591 |
|
*/ |
| 592 |
|
public function getBestRatedProducts(Oledrion_parameters $parameters) |
| 593 |
|
{ |
| 594 |
|
$parameters = $parameters->extend(new Oledrion_parameters(array( |
| 595 |
|
'start' => 0, |
| 596 |
|
'limit' => 0, |
| 597 |
|
'category' => 0, |
| 598 |
|
'sort' => 'product_rating', |
| 599 |
|
'order' => 'DESC' |
| 600 |
|
))); |
| 601 |
|
$data = array(); |
| 602 |
|
$criteria = new CriteriaCompo(); |
| 603 |
|
$criteria->add(new Criteria('product_online', 1, '=')); |
| 604 |
|
$criteria->add(new Criteria('product_rating', 0, '>')); // Se limiter aux seuls produits qui ont été vraiment notés |
| 605 |
|
if (Oledrion_utils::getModuleOption('show_unpublished') == 0) { // Ne pas afficher les produits qui ne sont pas publiés |
| 606 |
|
$criteria->add(new Criteria('product_submitted', time(), '<=')); |
| 607 |
|
} |
| 608 |
|
if (Oledrion_utils::getModuleOption('nostock_display') == 0) { // Se limiter aux seuls produits encore en stock |
| 609 |
|
$criteria->add(new Criteria('product_stock', 0, '>')); |
| 610 |
|
} |
| 611 |
|
if (is_array($parameters['category']) && count($parameters['category']) > 0) { |
| 612 |
|
$criteria->add(new Criteria('product_cid', '(' . implode(',', $parameters['category']) . ')', 'IN')); |
| 613 |
|
} elseif ($parameters['category'] != 0) { |
| 614 |
|
$criteria->add(new Criteria('product_cid', (int)$parameters['category'], '=')); |
| 615 |
|
} |
| 616 |
|
$criteria->setLimit($parameters['limit']); |
| 617 |
|
$criteria->setStart($parameters['start']); |
| 618 |
|
$criteria->setSort($parameters['sort']); |
| 619 |
|
$criteria->setOrder($parameters['order']); |
| 620 |
|
$data = $this->getObjects($criteria, true); |
| 621 |
|
|
| 622 |
|
return $data; |
| 623 |
|
} |
| 624 |
|
|
| 625 |
|
/** |
| 626 |
|
* Retourne la liste des x derniers produits recommandés |