Для экспорта XML мне нужно вывести абсолютный путь из 2 изображений. Изображение1 находится в /typo3conf/ext/app/Resources/Public/Images/image1.png
и Image2 находится в /uploads/tx_extensionname/image2.png
За свою жизнь я не могу найти способ получить абсолютные пути изображений. Что я пробовал:
<f:uri.image absolute="1" src="EXT:app/Resources/Public/Images/image1.png"/>
Который возвращает следующую ошибку:
Argument "absolute" was not registered.
Я также попытался f: uri.resource, который работает для image1, но, конечно, не для image2, потому что нет extensionName.
Есть намеки?
absolute
аргумент в пользу f:uri.image
помощник вида был добавлен только недавно в TYPO3 7.6.0. Увидеть изменений:
Особенность: # 64286 — Добавлена опция абсолютного URL в uri.image и viewHelper для изображений.
ImageViewhelper и Uri / ImageViewHelper получили новую абсолютную опцию. С помощью этой опции вы можете заставить ViewHelpers выводить абсолютный URL.
Я бы предложил перейти на TYPO3 7.6.
Если это невозможно по какой-либо причине, вы можете продлить f:uri.image
посмотреть помощник. Код ниже не протестирован, но должен работать для 6.2 LTS (я позаимствовал части кода из TYPO3\CMS\Extbase\Service\ImageService
в 7.6):
namespace Vendor\ExtensionKey\ViewHelpers\Uri;
use TYPO3\CMS\Fluid\ViewHelpers\Uri\ImageViewHelper;
use TYPO3\CMS\Core\Utility\GeneralUtility;
class ImageViewHelper extends ImageViewHelper
{
public function render(
$src = null,
$image = null,
$width = null,
$height = null,
$minWidth = null,
$minHeight = null,
$maxWidth = null,
$maxHeight = null,
$treatIdAsReference = false,
$absolute = false
) {
$uri = parent::render($src, $image, $width, $height, $minWidth, $minHeight, $maxWidth, $maxHeight, $treatIdAsReference);
if ($absolute) {
$uriPrefix = $GLOBALS['TSFE']->absRefPrefix;
$uri = GeneralUtility::locationHeaderUrl($uriPrefix . $uri);
}
return $uri;
}
}
Других решений пока нет …