简体   繁体   English

v:link:typolink与aditionalParams可以通过flux.field.select设置语言

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

I try to create a Content Element to create links to other languages. 我尝试创建一个内容元素来创建到其他语言的链接。 I think this is possible with just a content element and I do not need a own view helper for this. 我认为仅凭内容元素就可以实现,而我不需要自己的视图助手。

What I have so far: 到目前为止,我有:

{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>

This works but I have 2 problems I can't solve yet: 这可行,但我有2个尚无法解决的问题:

1. additionalParams 1. AdditionalParams

Right now the select items have the values like &L=1 . 现在,选择项的值类似于&L=1 I had to do it this way cause I was not able to add the &L= directly in the typolink configuration. 我必须这样做,因为我无法直接在typolink配置中添加&L= What I would like to have is something like that: 我想要的是这样的:

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

With this I could have just the ID in the select-items. 这样我可以在选择项中只有ID。 Is this possible and if so, how? 这可能吗?如果可以,怎么办?

2. select items Query 2.选择项目查询

The documentation says it is possible to fill the items of the flux:field.select with a query. 该文档说可以用查询填充flux:field.select的项目。 But I can not find any example. 但是我找不到任何例子。 What I would like to have is all the languages configured in typo3 in this select-box. 我想要的是在此选择框中在typo3中配置的所有语言。 Is this possible and if so, how? 这可能吗?如果可以,怎么办?

something correction in fluxform: 校正fluxform:

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

you can use fluid typolink instead of vhs viewhelper 您可以使用流畅的typolink代替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>

But as per your need, I suggest to you use fluid page 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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM