Передача содержимого из 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 в своем шаблоне. Это описано здесь.
Я не говорю, что мое решение лучшее. Но это единственный, кого я знаю. Ждем лучших решений;)