File::resolvePathPrefixes()
\nn\t3::File()->resolvePathPrefixes($file = NULL, $absolute = false);
EXT: Resolve prefix to relative path specification
\nn\t3::File()->resolvePathPrefixes('EXT:extname'); => /typo3conf/ext/extname/
\nn\t3::File()->resolvePathPrefixes('EXT:extname/'); => /typo3conf/ext/extname/
\nn\t3::File()->resolvePathPrefixes('EXT:extname/image.jpg'); => /typo3conf/ext/extname/image.jpg
\nn\t3::File()->resolvePathPrefixes('1:/uploads/image.jpg', true); => /var/www/website/fileadmin/uploads/image.jpg
Copied!
| @return string
Source Code
public function resolvePathPrefixes($file = null, $absolute = false)
{
// `1:/uploads`
if (preg_match('/^([0-9]*)(:\/)(.*)/i', $file, $matches)) {
$resourceFactory = GeneralUtility::makeInstance(ResourceFactory::class);
$storage = $resourceFactory->getStorageObject($matches[1]);
if (!$storage) return $file;
$basePath = $storage->getConfiguration()['basePath'];
$file = $basePath . $matches[3];
}
// `EXT:extname` => `EXT:extname/`
if (strpos($file, 'EXT:') == 0 && !pathinfo($file, PATHINFO_EXTENSION)) {
$file = rtrim($file, '/') . '/';
}
// `EXT:extname/` => `typo3conf/ext/extname/`
$absPathName = GeneralUtility::getFileAbsFileName($file);
if (!$absPathName) return $file;
if ($absolute) return $this->absPath($absPathName);
$pathSite = \nn\t3::Environment()->getPathSite();
return str_replace($pathSite, '', $absPathName);
}
Copied!