Передача содержимого из TypoScript в жидкий шаблон в TYPO3 7.6

Я хотел бы читать содержимое с помощью TypoScript и отображать его с помощью пользовательского шаблона Fluid. Без css_styled_content или liquid_styled_content.

temp.test = CONTENT
temp.test {
  table = tt_content
  select.languageField = 1
  select.selectFields = bodytext,image,header,header_link
  select.where = colPos = 1
  renderObj = FLUIDTEMPLATE
  renderObj {
    file = path/to/Teaser.html
  }
}

Это работает со строками, скажем

<f:debug>{data.header}</f:debug>

Но не с

<f:debug>{data.image}</f:debug>

возвращая только количество изображений.

Теперь, в классическом TypoScript RenderObj (может быть, COA), вы бы добавили что-то вроде

10 = FILES
10 {
  required = 1
  references {
    table = tt_content
    fieldName = image
  }
  renderObj = IMAGE
  renderObj {
    file.import.data = file:current:originalUid // file:current:uid
    file.width=654
    file.height = 327c
    //stdWrap.typolink.parameter.data = file:current:link
    altText.data = file:current:description // file:current:title // file:current:alternative
  }
}

Хотя в настоящее время мы хотим сделать это в шаблоне Fluid. Но как разрешить изображение FAL, чтобы передать его в шаблон жидкости?

2 ответа

Решение

Вы должны быть в состоянии использовать TYPO3\CMS\Frontend\DataProcessing\FilesProcessor процессор данных, который будет получать данные файла для вас, чтобы вы могли получить к нему доступ с {files} в вашем шаблоне.

renderObj = FLUIDTEMPLATE
renderObj {
  file = path/to/Teaser.html
  dataProcessing {
    10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
    10.references.fieldName = image
  }
}

Основная проблема заключается в том, что вся информация об изображении хранится в другой таблице с именем "sys_file_reference". Выбор "tt_content.image" не поможет вам здесь. Есть 2 способа решить эту проблему, ИМХО.

1) Создайте свой собственный видовой помощник. Этот VH может быть использован для запроса изображений, как это сделано здесь.

2) Создайте небольшую библиотеку TypoScript и используйте ее как f:cObject в своем шаблоне. Это описано здесь.

Я не говорю, что мое решение лучшее. Но это единственный, кого я знаю. Ждем лучших решений;)

Другие вопросы по тегам