|  | @@ 634-665 (lines=32) @@ | 
                                                            
                                    | 631 |  |      * @internal param int $limit Nombre maximum d'enregistrements à renvoyer | 
                                                            
                                    | 632 |  |      * @internal param int $category Identifiant de la catégorie (évenutellement) | 
                                                            
                                    | 633 |  |      */ | 
                                                            
                                    | 634 |  |     public function getRecentRecommended(Oledrion_parameters $parameters) | 
                                                            
                                    | 635 |  |     { | 
                                                            
                                    | 636 |  |         $parameters = $parameters->extend(new Oledrion_parameters(array( | 
                                                            
                                    | 637 |  |                                                                       'start'    => 0, | 
                                                            
                                    | 638 |  |                                                                       'limit'    => 0, | 
                                                            
                                    | 639 |  |                                                                       'category' => 0, | 
                                                            
                                    | 640 |  |                                                                       'sort'     => 'product_recommended', | 
                                                            
                                    | 641 |  |                                                                       'order'    => 'DESC' | 
                                                            
                                    | 642 |  |                                                                   ))); | 
                                                            
                                    | 643 |  |         $data       = array(); | 
                                                            
                                    | 644 |  |         $criteria   = new CriteriaCompo(); | 
                                                            
                                    | 645 |  |         $criteria->add(new Criteria('product_online', 1, '=')); | 
                                                            
                                    | 646 |  |         $criteria->add(new Criteria('product_recommended', '0000-00-00', '<>')); | 
                                                            
                                    | 647 |  |         if (Oledrion_utils::getModuleOption('show_unpublished') == 0) { // Ne pas afficher les produits qui ne sont pas publiés | 
                                                            
                                    | 648 |  |             $criteria->add(new Criteria('product_submitted', time(), '<=')); | 
                                                            
                                    | 649 |  |         } | 
                                                            
                                    | 650 |  |         if (Oledrion_utils::getModuleOption('nostock_display') == 0) { // Se limiter aux seuls produits encore en stock | 
                                                            
                                    | 651 |  |             $criteria->add(new Criteria('product_stock', 0, '>')); | 
                                                            
                                    | 652 |  |         } | 
                                                            
                                    | 653 |  |         if (is_array($parameters['category'])) { | 
                                                            
                                    | 654 |  |             $criteria->add(new Criteria('product_cid', '(' . implode(',', $parameters['category']) . ')', 'IN')); | 
                                                            
                                    | 655 |  |         } elseif ($parameters['category'] != 0) { | 
                                                            
                                    | 656 |  |             $criteria->add(new Criteria('product_cid', (int)$parameters['category'], '=')); | 
                                                            
                                    | 657 |  |         } | 
                                                            
                                    | 658 |  |         $criteria->setLimit($parameters['limit']); | 
                                                            
                                    | 659 |  |         $criteria->setStart($parameters['start']); | 
                                                            
                                    | 660 |  |         $criteria->setSort($parameters['sort']); | 
                                                            
                                    | 661 |  |         $criteria->setOrder($parameters['order']); | 
                                                            
                                    | 662 |  |         $data = $this->getObjects($criteria, true); | 
                                                            
                                    | 663 |  |  | 
                                                            
                                    | 664 |  |         return $data; | 
                                                            
                                    | 665 |  |     } | 
                                                            
                                    | 666 |  |  | 
                                                            
                                    | 667 |  |     /** | 
                                                            
                                    | 668 |  |      * Retourne le nombre total de produits recommandés | 
                                                                                
                                |  | @@ 784-815 (lines=32) @@ | 
                                                            
                                    | 781 |  |      * @internal param int $start Position de départ | 
                                                            
                                    | 782 |  |      * @internal param int $limit Nombre d'enregistrements à retourner | 
                                                            
                                    | 783 |  |      */ | 
                                                            
                                    | 784 |  |     public function getProductsForNewsletter(Oledrion_parameters $parameters) | 
                                                            
                                    | 785 |  |     { | 
                                                            
                                    | 786 |  |         $parameters = $parameters->extend(new Oledrion_parameters(array( | 
                                                            
                                    | 787 |  |                                                                       'startingDate' => 0, | 
                                                            
                                    | 788 |  |                                                                       'endingDate'   => 0, | 
                                                            
                                    | 789 |  |                                                                       'category'     => 0, | 
                                                            
                                    | 790 |  |                                                                       'start'        => 0, | 
                                                            
                                    | 791 |  |                                                                       'limit'        => 0 | 
                                                            
                                    | 792 |  |                                                                   ))); | 
                                                            
                                    | 793 |  |         $data       = array(); | 
                                                            
                                    | 794 |  |         $criteria   = new CriteriaCompo(); | 
                                                            
                                    | 795 |  |         $criteria->add(new Criteria('product_online', 1, '=')); | 
                                                            
                                    | 796 |  |         $criteria->add(new Criteria('product_submitted', $parameters['startingDate'], '>=')); | 
                                                            
                                    | 797 |  |         $criteria->add(new Criteria('product_submitted', $parameters['endingDate'], '<=')); | 
                                                            
                                    | 798 |  |         if (Oledrion_utils::getModuleOption('show_unpublished') == 0) { // Ne pas afficher les produits qui ne sont pas publiés | 
                                                            
                                    | 799 |  |             $criteria->add(new Criteria('product_submitted', time(), '<=')); | 
                                                            
                                    | 800 |  |         } | 
                                                            
                                    | 801 |  |         if (Oledrion_utils::getModuleOption('nostock_display') == 0) { // Se limiter aux seuls produits encore en stock | 
                                                            
                                    | 802 |  |             $criteria->add(new Criteria('product_stock', 0, '>')); | 
                                                            
                                    | 803 |  |         } | 
                                                            
                                    | 804 |  |         if (is_array($parameters['category'])) { | 
                                                            
                                    | 805 |  |             $criteria->add(new Criteria('product_cid', '(' . implode(',', $parameters['category']) . ')', 'IN')); | 
                                                            
                                    | 806 |  |         } elseif ($parameters['category'] > 0) { | 
                                                            
                                    | 807 |  |             $criteria->add(new Criteria('product_cid', (int)$parameters['category'], '=')); | 
                                                            
                                    | 808 |  |         } | 
                                                            
                                    | 809 |  |         $criteria->setLimit($parameters['limit']); | 
                                                            
                                    | 810 |  |         $criteria->setStart($parameters['start']); | 
                                                            
                                    | 811 |  |         $criteria->setSort('product_title'); | 
                                                            
                                    | 812 |  |         $data = $this->getObjects($criteria, true); | 
                                                            
                                    | 813 |  |  | 
                                                            
                                    | 814 |  |         return $data; | 
                                                            
                                    | 815 |  |     } | 
                                                            
                                    | 816 |  |  | 
                                                            
                                    | 817 |  |     /** | 
                                                            
                                    | 818 |  |      * Retourne le nombre total de produits publiés dans la base en tenant compte des préférences du module | 
                                                                                
                                |  | @@ 927-963 (lines=37) @@ | 
                                                            
                                    | 924 |  |      * @internal param string $order Ordre de tri | 
                                                            
                                    | 925 |  |      * @internal param bool $thisMonthOnly Uniquement les produits du mois en cours ? | 
                                                            
                                    | 926 |  |      */ | 
                                                            
                                    | 927 |  |     public function getRandomProducts(Oledrion_parameters $parameters) | 
                                                            
                                    | 928 |  |     { | 
                                                            
                                    | 929 |  |         $parameters = $parameters->extend(new Oledrion_parameters(array( | 
                                                            
                                    | 930 |  |                                                                       'start'         => 0, | 
                                                            
                                    | 931 |  |                                                                       'limit'         => 0, | 
                                                            
                                    | 932 |  |                                                                       'category'      => 0, | 
                                                            
                                    | 933 |  |                                                                       'sort'          => 'RAND()', | 
                                                            
                                    | 934 |  |                                                                       'order'         => 'ASC', | 
                                                            
                                    | 935 |  |                                                                       'thisMonthOnly' => false | 
                                                            
                                    | 936 |  |                                                                   ))); | 
                                                            
                                    | 937 |  |         $data       = array(); | 
                                                            
                                    | 938 |  |         $criteria   = new CriteriaCompo(); | 
                                                            
                                    | 939 |  |         $criteria->add(new Criteria('product_online', 1, '=')); | 
                                                            
                                    | 940 |  |         if (Oledrion_utils::getModuleOption('show_unpublished') == 0) { // Ne pas afficher les produits qui ne sont pas publiés | 
                                                            
                                    | 941 |  |             $criteria->add(new Criteria('product_submitted', time(), '<=')); | 
                                                            
                                    | 942 |  |         } | 
                                                            
                                    | 943 |  |         if (Oledrion_utils::getModuleOption('nostock_display') == 0) { // Se limiter aux seuls produits encore en stock | 
                                                            
                                    | 944 |  |             $criteria->add(new Criteria('product_stock', 0, '>')); | 
                                                            
                                    | 945 |  |         } | 
                                                            
                                    | 946 |  |         if (is_array($parameters['category'])) { | 
                                                            
                                    | 947 |  |             $criteria->add(new Criteria('product_cid', '(' . implode(',', $parameters['category']) . ')', 'IN')); | 
                                                            
                                    | 948 |  |         } elseif ($parameters['category'] != 0) { | 
                                                            
                                    | 949 |  |             $criteria->add(new Criteria('product_cid', (int)$parameters['category'], '=')); | 
                                                            
                                    | 950 |  |         } | 
                                                            
                                    | 951 |  |  | 
                                                            
                                    | 952 |  |         if ($parameters['thisMonthOnly']) { | 
                                                            
                                    | 953 |  |             $criteria->add(Oledrion_utils::getThisMonthCriteria()); | 
                                                            
                                    | 954 |  |         } | 
                                                            
                                    | 955 |  |  | 
                                                            
                                    | 956 |  |         $criteria->setLimit($parameters['limit']); | 
                                                            
                                    | 957 |  |         $criteria->setStart($parameters['start']); | 
                                                            
                                    | 958 |  |         $criteria->setSort($parameters['sort']); | 
                                                            
                                    | 959 |  |         $criteria->setOrder($parameters['order']); | 
                                                            
                                    | 960 |  |         $data = $this->getObjects($criteria, true); | 
                                                            
                                    | 961 |  |  | 
                                                            
                                    | 962 |  |         return $data; | 
                                                            
                                    | 963 |  |     } | 
                                                            
                                    | 964 |  |  | 
                                                            
                                    | 965 |  |     /** | 
                                                            
                                    | 966 |  |      * Retourne x produits en promo | 
                                                                                
                                |  | @@ 974-1005 (lines=32) @@ | 
                                                            
                                    | 971 |  |      * @internal param int $limit Nombre maximum d'enregistrements à renvoyer | 
                                                            
                                    | 972 |  |      * @internal param int $category Identifiant de la catégorie (évenutellement) | 
                                                            
                                    | 973 |  |      */ | 
                                                            
                                    | 974 |  |     public function getPromotionalProducts(Oledrion_parameters $parameters) | 
                                                            
                                    | 975 |  |     { | 
                                                            
                                    | 976 |  |         $parameters = $parameters->extend(new Oledrion_parameters(array( | 
                                                            
                                    | 977 |  |                                                                       'start'    => 0, | 
                                                            
                                    | 978 |  |                                                                       'limit'    => 0, | 
                                                            
                                    | 979 |  |                                                                       'category' => 0, | 
                                                            
                                    | 980 |  |                                                                       'sort'     => 'product_title', | 
                                                            
                                    | 981 |  |                                                                       'order'    => 'DESC' | 
                                                            
                                    | 982 |  |                                                                   ))); | 
                                                            
                                    | 983 |  |         $data       = array(); | 
                                                            
                                    | 984 |  |         $criteria   = new CriteriaCompo(); | 
                                                            
                                    | 985 |  |         $criteria->add(new Criteria('product_online', 1, '=')); | 
                                                            
                                    | 986 |  |         if (Oledrion_utils::getModuleOption('show_unpublished') == 0) { // Ne pas afficher les produits qui ne sont pas publiés | 
                                                            
                                    | 987 |  |             $criteria->add(new Criteria('product_submitted', time(), '<=')); | 
                                                            
                                    | 988 |  |         } | 
                                                            
                                    | 989 |  |         if (Oledrion_utils::getModuleOption('nostock_display') == 0) { // Se limiter aux seuls produits encore en stock | 
                                                            
                                    | 990 |  |             $criteria->add(new Criteria('product_stock', 0, '>')); | 
                                                            
                                    | 991 |  |         } | 
                                                            
                                    | 992 |  |         if (is_array($parameters['category'])) { | 
                                                            
                                    | 993 |  |             $criteria->add(new Criteria('product_cid', '(' . implode(',', $parameters['category']) . ')', 'IN')); | 
                                                            
                                    | 994 |  |         } elseif ($parameters['category'] != 0) { | 
                                                            
                                    | 995 |  |             $criteria->add(new Criteria('product_cid', (int)$parameters['category'], '=')); | 
                                                            
                                    | 996 |  |         } | 
                                                            
                                    | 997 |  |         $criteria->add(new Criteria('product_discount_price', 0, '>')); | 
                                                            
                                    | 998 |  |         $criteria->setLimit($parameters['limit']); | 
                                                            
                                    | 999 |  |         $criteria->setStart($parameters['start']); | 
                                                            
                                    | 1000 |  |         $criteria->setSort($parameters['sort']); | 
                                                            
                                    | 1001 |  |         $criteria->setOrder($parameters['order']); | 
                                                            
                                    | 1002 |  |         $data = $this->getObjects($criteria, true); | 
                                                            
                                    | 1003 |  |  | 
                                                            
                                    | 1004 |  |         return $data; | 
                                                            
                                    | 1005 |  |     } | 
                                                            
                                    | 1006 |  |  | 
                                                            
                                    | 1007 |  |     /** | 
                                                            
                                    | 1008 |  |      * Retourne les produits dont les stocks sont bas |