![]() 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/vendor/magento/module-catalog/Model/View/Asset/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Model\View\Asset; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\View\Asset\ContextInterface; use Magento\Framework\View\Asset\File\NotFoundException; use Magento\Framework\View\Asset\LocalInterface; use Magento\Framework\View\Asset\Repository; /** * A locally available image placeholder file asset that can be referred with a file type */ class Placeholder implements LocalInterface { /** * Type of placeholder * * @var string */ private $type; /** * Filevpath of placeholder * * @var string */ private $filePath; /** * @var string */ private $contentType = 'image'; /** * @var ContextInterface */ private $context; /** * @var Repository */ private $assetRepo; /** * Core store config * * @var ScopeConfigInterface */ private $scopeConfig; /** * Placeholder constructor. * * @param ContextInterface $context * @param ScopeConfigInterface $scopeConfig * @param Repository $assetRepo * @param string $type */ public function __construct( ContextInterface $context, ScopeConfigInterface $scopeConfig, Repository $assetRepo, $type ) { $this->context = $context; $this->scopeConfig = $scopeConfig; $this->assetRepo = $assetRepo; $this->type = $type; } /** * {@inheritdoc} */ public function getUrl() { if ($this->getFilePath() !== null) { $result = $this->context->getBaseUrl() . '/' . $this->getModule() . '/' . $this->getFilePath(); } else { $result = $this->assetRepo->getUrl("Magento_Catalog::images/product/placeholder/{$this->type}.jpg"); } return $result; } /** * {@inheritdoc} */ public function getContentType() { return $this->contentType; } /** * {@inheritdoc} */ public function getPath() { if ($this->getFilePath() !== null) { $result = $this->getContext()->getPath() . DIRECTORY_SEPARATOR . $this->getModule() . DIRECTORY_SEPARATOR . $this->getFilePath(); } else { $defaultPlaceholder = $this->assetRepo->createAsset( "Magento_Catalog::images/product/placeholder/{$this->type}.jpg" ); try { $result = $defaultPlaceholder->getSourceFile(); } catch (NotFoundException $e) { $result = null; } } return $result; } /** * {@inheritdoc} */ public function getSourceFile() { return $this->getPath(); } /** * Get source content type * * @return string */ public function getSourceContentType() { return $this->contentType; } /** * {@inheritdoc} */ public function getContent() { return null; } /** * {@inheritdoc} */ public function getFilePath() { if ($this->filePath !== null) { return $this->filePath; } // check if placeholder defined in config $isConfigPlaceholder = $this->scopeConfig->getValue( "catalog/placeholder/{$this->type}_placeholder", \Magento\Store\Model\ScopeInterface::SCOPE_STORE ); $this->filePath = $isConfigPlaceholder; return $this->filePath; } /** * {@inheritdoc} * @return ContextInterface */ public function getContext() { return $this->context; } /** * {@inheritdoc} */ public function getModule() { return 'placeholder'; } }