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