Flux Field Inline Fal mit CropVariants

Posted

技术标签:

【中文标题】Flux Field Inline Fal mit CropVariants【英文标题】: 【发布时间】:2021-04-20 16:11:58 【问题描述】:

我目前正在使用 Flux 将 TYPO3 项目更新到 TYPO3 10,现在我想将所有字段迁移到 FieldViewhelper

几乎所有的 Fields 都很好,但带有 CropVariants 的 Inline Fal 元素有点棘手。我不知道如何在配置选项中正确实现这一点。

我的字段目前如下所示:

f:variable(name: '_allowedFileExtensions', value: 'allowedFileExtensions')
f:variable(name: '_disallowedFileExtensions', value: 'disallowedFileExtensions')
<f:variable name="config" value="
    type: 'inline',
    foreign_table: 'sys_file_reference',
    foreign_field: 'uid_foreign',
    foreign_sortby: 'sorting_foreign',
    foreign_table_field: 'tablenames',
    foreign_match_fields: 
        fieldname: name
    ,
    foreign_label: 'uid_local',
    foreign_selector: 'uid_local',
    maxitems: maxitems,
    minitems: minitems,
    multiple: multiple,
    overrideChildTca: 
        columns: 
            uid_local: 
                config: 
                    appearance: 
                        elementBrowserType: 'file',
                        elementBrowserAllowed: _allowedFileExtensions
                    
                
            
        ,
        types: 
            0: 
                showitem: '--palette--;;imageoverlayPalette, --palette--;;filePalette'
            ,
            1: 
                showitem: '--palette--;;imageoverlayPalette, --palette--;;filePalette'
            ,
            2: 
                showitem: '--palette--;;imageoverlayPalette, --palette--;;filePalette'
            ,
            3: 
                showitem: '--palette--;;audioOverlayPalette, --palette--;;filePalette'
            ,
            4: 
                showitem: '--palette--;;videoOverlayPalette, --palette--;;filePalette'
            ,
            5: 
                showitem: '--palette--;;imageoverlayPalette, --palette--;;filePalette'
            
        
    ,
    filter: 
        0: 
            userFunc: 'TYPO3\\CMS\\Core\\Resource\\Filter\\FileExtensionFilter->filterInlineChildren',
            parameters: 
                allowedFileExtensions: _allowedFileExtensions,
                disallowedFileExtensions: _disallowedFileExtensions
            
        
    ,
    appearance: 
        useSortable: 1,
        headerThumbnail: 
            field: 'uid_local',
            width: '45',
            height: '45c'
        ,
        showPossibleLocalizationRecords: 0,
        showRemovedLocalizationRecords: 0,
        showSynchronizationLink: 0,
        showAllLocalizationLink: 0,
        enabledControls: 
            info: 1,
            new: 0,
            dragdrop: 1,
            sort: 0,
            hide: 1,
            delete: 1,
            localize: 1
        
    
" />
<flux:field type="inline" name="name" label="label" config="config" exclude="0"/>

理论上我可以做这样的事情;这就是我在下面的 TCA 区域的方式overrideChildTca:

['columns']['crop']['config'] =>
'cropVariants' => [
  'heroimage' => [
     'title' => 'Hero Image',
     'allowedAspectRatios' => [
       '1504x846' => [
          'title' => '1504:846',
          'value' => 1504 / 846
        ],
     ],
  ],
],

我无法让它工作?有人对如何正确配置示例有任何想法吗?谢谢!

【问题讨论】:

请用英文写下您的问题! 您是否尝试简单地将cropVariants 添加到与appearance 处于同一级别的config 变量? 未声明的参数传递给 ViewHelper FluidTYPO3\Flux\ViewHelpers\FieldViewHelper:cropVariants。有效的参数是:类型、名称、标签、排除、配置、转换、onChange、displayCond、继承、继承空、扩展名 【参考方案1】:

我找到了为这个示例添加裁剪变体的正确书写方式。如果您将此部分添加到overrideChildTca -> columns -> crop -> config 那么它应该可以工作:)

    overrideChildTca: 
        columns: 
            crop: 
                config: 
                    type: 'imageManipulation',
                    cropVariants: 
                        tablet: 
                            title: 'Tablet',
                            allowedAspectRatios: 
                                NaN: 
                                    title: 'Free',
                                    value: 0.0
                                ,
                                '21-9': 
                                    title: '21:9',
                                    value: 2.3333333
                                
                            
                        
                    
                
            
        ,

【讨论】:

【参考方案2】:

至少对于 &lt;flux.field.inline.fal&gt; 和 TYPO3 9.5,您可以通过 XML 属性简单地设置 cropVariants

<flux:field.inline.fal name="myField"
                       showThumbs="true"
                       cropVariants="
                           default: 
                             title: 'Default',
                             allowedAspectRatios: 
                               default: 
                                 title: '1:1',
                                 value: '1'
                               
                             
                           
                         "/>

【讨论】:

是的,没错。我目前正在这样做。这很简单。这也适用于 TYPO3 10,但已弃用并将在 Flux 10.0 github.com/FluidTYPO3/flux/blob/development/Classes/ViewHelpers/… 中删除

以上是关于Flux Field Inline Fal mit CropVariants的主要内容,如果未能解决你的问题,请参考以下文章

TYPO3 Fluidcontent:如何在对象内使用 FAL

Flux/Fluid TYPO3 中是不是有 <flux:field.file /> 的替代方案

没有文件上传的flux:field.file

Typo3 Fluid:渲染flux:flexform.field.wizard.link的正确方法是啥?

Flux:field.text + CKEditor 在后端添加新的空 <p></p> 每次保存操作

从 Flexform 上传图像后出现 Fluid TYPO3 Flux 500 错误