Code Duplication    Length = 32-33 lines in 2 locations

class/oledrion_products.php 2 locations

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