mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
269 lines
6.3 KiB
PHP
269 lines
6.3 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Downloadable\Model;
|
|
|
|
use Magento\Downloadable\Api\Data\SampleInterface;
|
|
|
|
/**
|
|
* Downloadable sample model
|
|
*
|
|
* @method int getProductId()
|
|
*
|
|
* @api
|
|
* @since 100.0.2
|
|
*/
|
|
class Sample extends \Magento\Framework\Model\AbstractExtensibleModel implements ComponentInterface, SampleInterface
|
|
{
|
|
const XML_PATH_SAMPLES_TITLE = 'catalog/downloadable/samples_title';
|
|
|
|
/**#@+
|
|
* Constants for field names
|
|
*/
|
|
const KEY_TITLE = 'title';
|
|
const KEY_SORT_ORDER = 'sort_order';
|
|
const KEY_SAMPLE_TYPE = 'sample_type';
|
|
const KEY_SAMPLE_FILE = 'sample_file';
|
|
const KEY_SAMPLE_FILE_CONTENT = 'sample_file_content';
|
|
const KEY_SAMPLE_URL = 'sample_url';
|
|
/**#@-*/
|
|
|
|
/**
|
|
* @param \Magento\Framework\Model\Context $context
|
|
* @param \Magento\Framework\Registry $registry
|
|
* @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory
|
|
* @param \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory
|
|
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
|
|
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
|
|
* @param array $data
|
|
*/
|
|
public function __construct(
|
|
\Magento\Framework\Model\Context $context,
|
|
\Magento\Framework\Registry $registry,
|
|
\Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
|
|
\Magento\Framework\Api\AttributeValueFactory $customAttributeFactory,
|
|
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
|
|
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
|
|
array $data = []
|
|
) {
|
|
parent::__construct(
|
|
$context,
|
|
$registry,
|
|
$extensionFactory,
|
|
$customAttributeFactory,
|
|
$resource,
|
|
$resourceCollection,
|
|
$data
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Initialize resource
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function _construct()
|
|
{
|
|
$this->_init(\Magento\Downloadable\Model\ResourceModel\Sample::class);
|
|
parent::_construct();
|
|
}
|
|
|
|
/**
|
|
* After save process
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function afterSave()
|
|
{
|
|
$this->getResource()->saveItemTitle($this);
|
|
return parent::afterSave();
|
|
}
|
|
|
|
/**
|
|
* Retrieve sample URL
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getUrl()
|
|
{
|
|
if ($this->getSampleUrl()) {
|
|
return $this->getSampleUrl();
|
|
} else {
|
|
return $this->getSampleFile();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Retrieve base tmp path
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getBaseTmpPath()
|
|
{
|
|
return 'downloadable/tmp/samples';
|
|
}
|
|
|
|
/**
|
|
* Retrieve sample files path
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getBasePath()
|
|
{
|
|
return 'downloadable/files/samples';
|
|
}
|
|
|
|
/**
|
|
* Retrieve links searchable data
|
|
*
|
|
* @param int $productId
|
|
* @param int $storeId
|
|
* @return array
|
|
*/
|
|
public function getSearchableData($productId, $storeId)
|
|
{
|
|
return $this->_getResource()->getSearchableData($productId, $storeId);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function getTitle()
|
|
{
|
|
return $this->getData(self::KEY_TITLE);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function getSortOrder()
|
|
{
|
|
return $this->getData(self::KEY_SORT_ORDER);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function getSampleType()
|
|
{
|
|
return $this->getData(self::KEY_SAMPLE_TYPE);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function getSampleFile()
|
|
{
|
|
return $this->getData(self::KEY_SAMPLE_FILE);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function getSampleFileContent()
|
|
{
|
|
return $this->getData(self::KEY_SAMPLE_FILE_CONTENT);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function getSampleUrl()
|
|
{
|
|
return $this->getData(self::KEY_SAMPLE_URL);
|
|
}
|
|
|
|
/**
|
|
* Set sample title
|
|
*
|
|
* @param string $title
|
|
* @return $this
|
|
*/
|
|
public function setTitle($title)
|
|
{
|
|
return $this->setData(self::KEY_TITLE, $title);
|
|
}
|
|
|
|
/**
|
|
* Set sort order index for sample
|
|
*
|
|
* @param int $sortOrder
|
|
* @return $this
|
|
*/
|
|
public function setSortOrder($sortOrder)
|
|
{
|
|
return $this->setData(self::KEY_SORT_ORDER, $sortOrder);
|
|
}
|
|
|
|
/**
|
|
* @param string $sampleType
|
|
* @return $this
|
|
*/
|
|
public function setSampleType($sampleType)
|
|
{
|
|
return $this->setData(self::KEY_SAMPLE_TYPE, $sampleType);
|
|
}
|
|
|
|
/**
|
|
* Set file path or null when type is 'url'
|
|
*
|
|
* @param string $sampleFile
|
|
* @return $this
|
|
*/
|
|
public function setSampleFile($sampleFile)
|
|
{
|
|
return $this->setData(self::KEY_SAMPLE_FILE, $sampleFile);
|
|
}
|
|
|
|
/**
|
|
* Set sample file content
|
|
*
|
|
* @param \Magento\Downloadable\Api\Data\File\ContentInterface $sampleFileContent
|
|
* @return $this
|
|
*/
|
|
public function setSampleFileContent(\Magento\Downloadable\Api\Data\File\ContentInterface $sampleFileContent = null)
|
|
{
|
|
return $this->setData(self::KEY_SAMPLE_FILE_CONTENT, $sampleFileContent);
|
|
}
|
|
|
|
/**
|
|
* Set sample URL
|
|
*
|
|
* @param string $sampleUrl
|
|
* @return $this
|
|
*/
|
|
public function setSampleUrl($sampleUrl)
|
|
{
|
|
return $this->setData(self::KEY_SAMPLE_URL, $sampleUrl);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*
|
|
* @return \Magento\Downloadable\Api\Data\SampleExtensionInterface|null
|
|
*/
|
|
public function getExtensionAttributes()
|
|
{
|
|
return $this->_getExtensionAttributes();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*
|
|
* @param \Magento\Downloadable\Api\Data\SampleExtensionInterface $extensionAttributes
|
|
* @return $this
|
|
*/
|
|
public function setExtensionAttributes(\Magento\Downloadable\Api\Data\SampleExtensionInterface $extensionAttributes)
|
|
{
|
|
return $this->_setExtensionAttributes($extensionAttributes);
|
|
}
|
|
}
|