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>
我尝试创建一个内容元素来创建指向其他语言的链接。我认为这只需要一个内容元素就可以实现,我不需要自己的视图助手。
我目前拥有的:
{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>