@@ 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 |