2016-04-12 34 views
0

我嘗試創建一個內容元素來創建其他語言的鏈接。我認爲這是可能的只有一個內容元素,我不需要一個自己的視圖幫手。v:link:typolink with aditionalParams通過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 additionalParams

現在選擇的項目有值爲&L=1。我必須這樣做,因爲我無法直接在typolink配置中添加&L=。我想要的是這樣的:

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

有了這個,我可以在選擇項目中只有ID。 這是可能的,如果是這樣,怎麼樣?

2.選擇項目查詢

的文件說,這是可能的查詢,以填補flux:field.select的項目。但我找不到任何例子。我想要的是在此選擇框中的typo3中配置的所有語言。 這是可能的,如果是這樣,怎麼樣?

回答

2

東西校正fluxform:

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

可以用流體typolink替代VHS的視圖助手

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

但是根據自己的需要,我建議你用流體頁面鏈接:

<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> 
+0

感謝作品不錯。對於fluxform,我猜想當我用這種方式(這是更短,更好)我不能使用字符串作爲keyvalue?你也有一個想法如何在'flux:field.select'中使用配置的語言嗎? – nbar

+0

字符串作爲鍵值 - 你的意思是「英語」和「德語」?和你的問題我不明白「你也有一個想法如何使用flux:field.select中配置的語言? –

+0

我的意思是像'德':'德國'。而我的問題是第二個問題'2。在原始線程中選擇項目查詢。基本上,我想在此選擇字段中使用typo3中配置的語言。 – nbar