Как я могу визуализировать изображение, хранящееся на вкладке свойств пользовательской страницы?
Я создаю основную навигацию в TYPO3 12 с раскрывающимися меню, содержащими изображения для каждой подстраницы. Я добавил в свойства страницы специальную вкладку «Навигация», куда загружаю это изображение. Чего я не понимаю, так это того, что мне нужно сделать в гибком шаблоне, чтобы вывести это изображение во внешний интерфейс.
Я настроил процессор данных меню и процессор изображений:
dataProcessing {
20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
20 {
levels = 2
includeSpacer = 1
as = mainnavigation
}
30 = files
30 {
as = images
references.fieldName = image
references.table = tt_content
sorting = title
sorting.direction = descending
}
}
В моем шаблоне Fluid я просматриваю массив, содержащий дочерние/подстраницы главного меню:
<ul class="dropdown__list">
<f:for each="{mainnavigationItem.children}" as="child">
<li class="{f:if(condition: child.active, then:'active')}">
<a href="{child.link}" target="{child.target}" title="{child.title}"> {child.title}
<img/> --- Here should be the image
</a>
</li>
</f:for>
</ul>
Доступ к массиву с помощью {child.data.navigation_image}, очевидно, просто возвращает 0 или 1. Как я могу сослаться на файл? Я читал о полезных расширениях, таких как адаптивные изображения VHS или SMS. Я знаю, как отображать изображения в галерее элементов контента, но это изображение хранится в свойствах страницы, и это оставляет меня в неведении. Наверное, мне нужно поработать с процессором данных, но как?
1 ответ
Вам необходимо обрабатывать изображения внутри элементов вашего процессора меню (поскольку изображения принадлежат пунктам меню).
Ваша попытка обрабатывает изображения помимо меню.
Попытка может быть такой:
dataProcessing {
20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
20 {
levels = 2
includeSpacer = 1
as = mainnavigation
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = myMenuImage
}
}
}
}
и внутри вашего цикла меню используйте<f:media file="{child.files.0}" />
или<f:image image="{child.files.0}" />
.
на основе документации , где изображение извлекается из поля сборкиmedia
. (Вы написали, что создали собственное поле для изображения навигации/меню)