|
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 / a / home / dev2.destoffenstraat.com / vendor / magento / framework / View / File / Collector / |
Filename | /home/a/home/dev2.destoffenstraat.com/vendor/magento/framework/View/File/Collector/ThemeModular.php |
Size | 2.92 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 21-Aug-2025 12:26 |
Last modified | 07-Jan-2021 21:08 |
Last accessed | 24-Aug-2025 07:12 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\View\File\Collector;
use Magento\Framework\Component\ComponentRegistrar;
use Magento\Framework\Component\ComponentRegistrarInterface;
use Magento\Framework\Filesystem\Directory\ReadFactory;
use Magento\Framework\View\Design\ThemeInterface;
use Magento\Framework\View\File\CollectorInterface;
use Magento\Framework\View\File\Factory as FileFactory;
use Magento\Framework\View\Helper\PathPattern;
/**
* Source of modular view files introduced by a theme
*/
class ThemeModular implements CollectorInterface
{
/**
* @var PathPattern
*/
private $pathPatternHelper;
/**
* @var FileFactory
*/
private $fileFactory;
/**
* @var ReadFactory
*/
private $readDirFactory;
/**
* @var ComponentRegistrarInterface
*/
private $componentRegistrar;
/**
* @var string
*/
private $subDir;
/**
* Constructor
*
* @param FileFactory $fileFactory
* @param ReadFactory $readDirFactory
* @param ComponentRegistrarInterface $componentRegistrar
* @param PathPattern $pathPatternHelper
* @param string $subDir
*/
public function __construct(
FileFactory $fileFactory,
ReadFactory $readDirFactory,
ComponentRegistrarInterface $componentRegistrar,
PathPattern $pathPatternHelper,
$subDir = ''
) {
$this->pathPatternHelper = $pathPatternHelper;
$this->fileFactory = $fileFactory;
$this->readDirFactory = $readDirFactory;
$this->componentRegistrar = $componentRegistrar;
$this->subDir = $subDir ? $subDir . '/' : '';
}
/**
* Retrieve files
*
* @param \Magento\Framework\View\Design\ThemeInterface $theme
* @param string $filePath
* @return \Magento\Framework\View\File[]
*/
public function getFiles(ThemeInterface $theme, $filePath)
{
$namespace = $module = '*';
$themePath = $theme->getFullPath();
if (empty($themePath)) {
return [];
}
$themeAbsolutePath = $this->componentRegistrar->getPath(ComponentRegistrar::THEME, $themePath);
if (!$themeAbsolutePath) {
return [];
}
$themeDir = $this->readDirFactory->create($themeAbsolutePath);
$files = $themeDir->search("{$namespace}_{$module}/{$this->subDir}$filePath");
$result = [];
$pattern = "#/(?<moduleName>[^/]+)/{$this->subDir}"
. $this->pathPatternHelper->translatePatternFromGlob($filePath) . "$#i";
foreach ($files as $file) {
$filename = $themeDir->getAbsolutePath($file);
if (!preg_match($pattern, $filename, $matches)) {
continue;
}
$result[] = $this->fileFactory->create($filename, $matches['moduleName'], $theme);
}
return $result;
}
}
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\View\File\Collector;
use Magento\Framework\Component\ComponentRegistrar;
use Magento\Framework\Component\ComponentRegistrarInterface;
use Magento\Framework\Filesystem\Directory\ReadFactory;
use Magento\Framework\View\Design\ThemeInterface;
use Magento\Framework\View\File\CollectorInterface;
use Magento\Framework\View\File\Factory as FileFactory;
use Magento\Framework\View\Helper\PathPattern;
/**
* Source of modular view files introduced by a theme
*/
class ThemeModular implements CollectorInterface
{
/**
* @var PathPattern
*/
private $pathPatternHelper;
/**
* @var FileFactory
*/
private $fileFactory;
/**
* @var ReadFactory
*/
private $readDirFactory;
/**
* @var ComponentRegistrarInterface
*/
private $componentRegistrar;
/**
* @var string
*/
private $subDir;
/**
* Constructor
*
* @param FileFactory $fileFactory
* @param ReadFactory $readDirFactory
* @param ComponentRegistrarInterface $componentRegistrar
* @param PathPattern $pathPatternHelper
* @param string $subDir
*/
public function __construct(
FileFactory $fileFactory,
ReadFactory $readDirFactory,
ComponentRegistrarInterface $componentRegistrar,
PathPattern $pathPatternHelper,
$subDir = ''
) {
$this->pathPatternHelper = $pathPatternHelper;
$this->fileFactory = $fileFactory;
$this->readDirFactory = $readDirFactory;
$this->componentRegistrar = $componentRegistrar;
$this->subDir = $subDir ? $subDir . '/' : '';
}
/**
* Retrieve files
*
* @param \Magento\Framework\View\Design\ThemeInterface $theme
* @param string $filePath
* @return \Magento\Framework\View\File[]
*/
public function getFiles(ThemeInterface $theme, $filePath)
{
$namespace = $module = '*';
$themePath = $theme->getFullPath();
if (empty($themePath)) {
return [];
}
$themeAbsolutePath = $this->componentRegistrar->getPath(ComponentRegistrar::THEME, $themePath);
if (!$themeAbsolutePath) {
return [];
}
$themeDir = $this->readDirFactory->create($themeAbsolutePath);
$files = $themeDir->search("{$namespace}_{$module}/{$this->subDir}$filePath");
$result = [];
$pattern = "#/(?<moduleName>[^/]+)/{$this->subDir}"
. $this->pathPatternHelper->translatePatternFromGlob($filePath) . "$#i";
foreach ($files as $file) {
$filename = $themeDir->getAbsolutePath($file);
if (!preg_match($pattern, $filename, $matches)) {
continue;
}
$result[] = $this->fileFactory->create($filename, $matches['moduleName'], $theme);
}
return $result;
}
}