如何在使用 flux:field.inline.fal 时获取 fal 对象而不是数组



在我的通量内容模板配置部分中,我定义了一个图像字段,如下所示:

<flux:field.inline.fal label="Image" name="images" maxItems="1" minItems="0" showThumbs="1"/>

在我的通量内容模板主要部分中,我调试了输出:

<f:for each="{v:resource.record.fal(table: 'tt_content',field: 'images', uid: '{record.uid}')}" as="image" iteration="iterator">
<f:debug>{image}</f:debug>
</f:for>

调试输出显示一个数组,但我需要的是我在后端添加的该图像的 FAL 对象。

我用谷歌搜索了很多,发现了2015年的一些旧帖子。所有人都说不可能让 fal 对象(!(在变化中。现在还是真的吗?你知道什么办法吗?

一种解决方案是创建自定义 ViewHelper:

<?php
namespace CmichaelTypo3projectproviderViewHelpersContent;
/* FalViewHelper
* To get fal object by image uid (respectivly in flux templates)
* Usage example: <cm:content.fal referenceUid="{image.uid}">
* */
class FalViewHelper extends TYPO3CMSFluidCoreViewHelperAbstractViewHelper {
/**
* @var bool
*/
protected $escapeOutput = false;
/**
* Initialize arguments.
*
*/
public function initializeArguments() {
$this->registerArgument('referenceUid', 'integer', 'File reference uid', true, 0);
}
/**
* Return file reference
*
* @return TYPO3CMSCoreResourceFileReference|null
*/
public function render() {
$referenceUid = $this->arguments['referenceUid'];
$fileReferenceData = $GLOBALS['TSFE']->sys_page->checkRecord('sys_file_reference', $referenceUid);
return $fileReferenceData ? TYPO3CMSCoreResourceResourceFactory::getInstance()->getFileReferenceObject($referenceUid) : $referenceUid;
}
}

最新更新