v:link:typolink 使用 aditionalParams 通过 flux.field.select 设置语言

v:link:typolink with aditionalParams to set language via flux.field.select

我尝试创建一个内容元素来创建指向其他语言的链接。我认为这只需要一个内容元素就可以实现,我不需要自己的视图助手。

我目前拥有的:

{namespace flux=FluidTYPO3\Flux\ViewHelpers}
{namespace v=FluidTYPO3\Vhs\ViewHelpers}

    <f:layout name="Content" />

    <f:section name="Configuration">
        <flux:form id="landingpage-language" label="Landingpage Language" options="{icon: 'Icons/Content/Example.gif', group: 'My Ele'}">
            <flux:field.input name="title" label="Title"/>
        </flux:form>
        <flux:form.section name="languages" label="Languages">
            <flux:form.object name="language" label="Language">
                <flux:field.input name="languagename" label="Language Visible Name"/>
                <flux:field.select name="language" label="System Language" items="{
                           0:{0:'English',1:'&L=1'},
                           1:{0:'German',1:'&L=2'}
                           }" />
                <flux:field.input name="url" label="URL">
                    <flux:wizard.link/>
                </flux:field.input>
            </flux:form.object>
        </flux:form.section>
    </f:section>

    <f:section name="Preview">
        Preview
    </f:section>

    <f:section name="Main">
        <h2>{title}</h2>
        <ul  class="languages">
            <f:for each="{languages}" as="langele"> 
                <li><v:link.typolink configuration="{parameter: langele.language.url, additionalParams: langele.language.language}">{langele.language.languagename} {langele.language.language}</v:link.typolink></li>
            </f:for>
        </ul>
    </f:section>

这可行,但我还有 2 个问题无法解决:

1.附加参数

现在 select 项的值类似于 &L=1。我不得不这样做,因为我无法直接在 typolink 配置中添加 &L=。我想要的是这样的东西:

<v:link.typolink configuration="{parameter: langele.language.url, additionalParams: '&L='langele.language.language}">

有了这个我就可以在 select 项中得到 ID。 这可能吗?如果可能,怎么做?

2。 select 项查询

文档说可以用查询填充 flux:field.select 的项目。但我找不到任何例子。我想要的是这个 select-box 中 typo3 中配置的所有语言。 这可能吗?如果可能,怎么做?

fluxform 中的一些修正:

<flux:field.select name="language" label="System Language" 
items="{1:'English',2:'German'}" />

您可以使用流式错字link 而不是 vhs viewhelper

<f:for each="{languages}" as="langele"> 
     <li><f:link.typolink parameter="{langele.language.url}" additionalParams="&L={langele.language.language}">{langele.language.languagename} {langele.language.language}</f:link.typolink></li>
</f:for>

但根据您的需要,我建议您使用流体页面link:

<f:for each="{languages}" as="langele">
    <li><f:link.page pageUid="{langele.language.url}" additionalParams="{L:'{langele.language.language}'}">{langele.language.languagename} {langele.language.language}</f:link.page></li>
</f:for>