2016-04-12 3 views
0

Я пытаюсь создать элемент контента для создания ссылок на другие языки. Я думаю, что это возможно только с элементом контента, и для этого мне не нужен собственный помощник вида.v: link: typolink с 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. Я должен был сделать это так, потому что я не смог добавить &L= непосредственно в конфигурацию typolink. То, что я хотел бы иметь, есть примерно так:

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

С этим я мог бы иметь только идентификатор в элементах выбора. Возможно ли это, и если да, то как?

2. выберите пункты Запрос

В документации сказано, что можно заполнить пункты в flux:field.select с запросом. Но я не могу найти ни одного примера. Я хотел бы иметь все языки, настроенные в typo3 в этом select-box. Возможно ли это, и если да, то как?

ответ

2

что-то коррекция в fluxform:

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

вы можете использовать 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> 

Но согласно вашей потребности, то я предлагаю вам использовать ссылку жидкости страницы:

<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, я думаю, когда я использую его таким образом (который короче и приятнее), я не могу использовать строки как ключевое значение? Также у вас есть идея, как использовать настроенные языки в 'flux: field.select'? – nbar

+0

строки как ключевое значение - вы имели в виду «английский» и «немецкий»? и ваш вопрос, который я не понял ». Также у вас есть идея, как использовать настроенные языки в потоке: field.select?» –

+0

Я имею в виду что-то вроде 'de': 'German'. И мой вопрос - это второй вопрос «2. выберите элементы Query' в исходной теме. В основном я хочу использовать языки, настроенные в typo3 в этом поле выбора. – nbar