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/cartforge.co/vendor/magento/module-downloadable/Model/Sample/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/cartforge.co/vendor/magento/module-downloadable/Model/Sample/Builder.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

namespace Magento\Downloadable\Model\Sample;

use Magento\Downloadable\Api\Data\SampleInterface;
use Magento\Catalog\Model\Product;
use Magento\Downloadable\Helper\File;
use Magento\Downloadable\Model\Sample;
use Magento\Downloadable\Model\SampleFactory;
use Magento\Framework\Api\DataObjectHelper;
use Magento\Framework\DataObject\Copy;

/**
 * Builder download sample link model for downloadable product
 *
 * @api
 * @since 100.1.0
 */
class Builder
{
    /**
     * @var Sample
     */
    private $component;

    /**
     * @var File
     */
    private $downloadableFile;

    /**
     * @var Copy
     */
    private $objectCopyService;

    /**
     * @var DataObjectHelper
     */
    private $dataObjectHelper;

    /**
     * @var SampleFactory
     */
    private $componentFactory;

    /**
     * @var array
     */
    private $data = [];

    /**
     * Mapper constructor.
     *
     * @param File $downloadableFile
     * @param Copy $objectCopyService
     * @param DataObjectHelper $dataObjectHelper
     * @param SampleFactory $componentFactory
     */
    public function __construct(
        File $downloadableFile,
        Copy $objectCopyService,
        DataObjectHelper $dataObjectHelper,
        SampleFactory $componentFactory
    ) {
        $this->downloadableFile = $downloadableFile;
        $this->objectCopyService = $objectCopyService;
        $this->dataObjectHelper = $dataObjectHelper;
        $this->componentFactory = $componentFactory;
    }

    /**
     * Init data for builder
     *
     * @param array $data
     * @return $this
     * @since 100.1.0
     * @since 100.1.0
     */
    public function setData(array $data)
    {
        $this->data = $data;
        return $this;
    }

    /**
     * Build sample link
     *
     * @param SampleInterface $sample
     * @return SampleInterface
     * @throws \Magento\Framework\Exception\LocalizedException
     * @since 100.1.0
     */
    public function build(SampleInterface $sample)
    {
        $downloadableData = $this->objectCopyService->getDataFromFieldset(
            'downloadable_data',
            'to_sample',
            $this->data
        );
        $this->dataObjectHelper->populateWithArray(
            $sample,
            array_merge(
                $this->data,
                $downloadableData
            ),
            SampleInterface::class
        );
        if ($sample->getSampleType() === \Magento\Downloadable\Helper\Download::LINK_TYPE_FILE) {
            if (!isset($this->data['file'])) {
                throw new \Magento\Framework\Exception\LocalizedException(__('Sample file not provided'));
            }
            $fileName = $this->downloadableFile->moveFileFromTmp(
                $this->getComponent()->getBaseTmpPath(),
                $this->getComponent()->getBasePath(),
                $this->data['file']
            );
            $sample->setSampleFile($fileName);
        }
        if (!$sample->getSortOrder()) {
            $sample->setSortOrder(1);
        }

        $useDefaultTitle = $this->data['use_default_title'] ?? false;

        if ($useDefaultTitle) {
            $sample->setTitle(null);
        }
        $this->resetData();

        return $sample;
    }

    /**
     * Reset data
     *
     * @return void
     */
    private function resetData()
    {
        $this->data = [];
    }

    /**
     * Get component
     *
     * @return Sample
     */
    private function getComponent()
    {
        if (!$this->component) {
            $this->component = $this->componentFactory->create();
        }
        return $this->component;
    }
}

Spamworldpro Mini