b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / app / code / Mageplaza / DailyDeal1 / Plugin / Model /
Filename/home/dev2.destoffenstraat.com/app/code/Mageplaza/DailyDeal1/Plugin/Model/CustomCollection.php
Size3.93 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified06-Apr-2021 18:06
Last accessed23-Aug-2025 02:07
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Mageplaza
*
* NOTICE OF LICENSE
*
* This source file is subject to the Mageplaza.com license that is
* available through the world-wide-web at this URL:
* https://www.mageplaza.com/LICENSE.txt
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this extension to newer
* version in the future.
*
* @category Mageplaza
* @package Mageplaza_DailyDeal
* @copyright Copyright (c) Mageplaza (https://www.mageplaza.com/)
* @license https://www.mageplaza.com/LICENSE.txt
*/

namespace Mageplaza\DailyDeal\Plugin\Model;

use Magento\Catalog\Model\ResourceModel\Product\Collection;
use Magento\Framework\App\RequestInterface;
use Mageplaza\DailyDeal\Block\Widget\AllDeal;
use Mageplaza\DailyDeal\Block\Widget\FeatureDeal;
use Mageplaza\DailyDeal\Block\Widget\NewDeal;
use Mageplaza\DailyDeal\Block\Widget\TopSellingDeal;
use Mageplaza\DailyDeal\Helper\Data as HelperData;
use Zend_Db_Expr;

/**
* Class CustomLayer
* @package Mageplaza\DailyDeal\Plugin\Model
*/
class CustomCollection
{
/**
* @var HelperData
*/
protected $_helperData;

/**
* @var AllDeal
*/
protected $_all;

/**
* @var NewDeal
*/
protected $_new;

/**
* @var TopSellingDeal
*/
protected $_seller;

/**
* @var FeatureDeal
*/
protected $_feature;

/**
* @var RequestInterface
*/
protected $_request;

/**
* CustomCollection constructor.
*
* @param HelperData $helperData
* @param AllDeal $all
* @param NewDeal $new
* @param TopSellingDeal $seller
* @param FeatureDeal $feature
* @param RequestInterface $request
*/
public function __construct(
HelperData $helperData,
AllDeal $all,
NewDeal $new,
TopSellingDeal $seller,
FeatureDeal $feature,
RequestInterface $request
) {
$this->_helperData = $helperData;
$this->_all = $all;
$this->_new = $new;
$this->_seller = $seller;
$this->_feature = $feature;
$this->_request = $request;
}

/**
* @param $subject
* @param Collection $collection
*
* @return mixed
*/
public function afterGetProductCollection($subject, $collection)
{
if (!$this->_helperData->isEnabled()) {
return $collection;
}

$fullActionName = $this->_request->getFullActionName();
switch ($fullActionName) {
case 'dailydeal_pages_alldeals':
$productIds = $this->_helperData->getProductIdsParent($this->_all->getProductIdsRandomDeal());
break;
case 'dailydeal_pages_newdeals':
$productIds = $this->_helperData->getProductIdsParent($this->_new->getProductIds());
break;
case 'dailydeal_pages_bestsellerdeals':
$productIds = $this->_helperData->getProductIdsParent($this->_seller->getProductIdsSellingDeal());
break;
case 'dailydeal_pages_featureddeals':
$productIds = $this->_helperData->getProductIdsParent($this->_feature->getProductIds());
break;
default:
return $collection;
}

$collection->addAttributeToFilter('entity_id', ["in" => $productIds]);
if ($productIds) {
if ($fullActionName === 'dailydeal_pages_newdeals') {
$collection->getSelect()->order(new Zend_Db_Expr('FIELD(e.entity_id,' . implode(',', $productIds) . ')'));
}
if ($fullActionName === 'dailydeal_pages_bestsellerdeals') {
$collection->getSelect()->order(new Zend_Db_Expr('FIELD(e.entity_id,' . implode(',', $productIds) . ')'));
}
} else {
return $collection;
}

return $collection;
}
}