Как я могу визуализировать изображение, хранящееся на вкладке свойств пользовательской страницы?

Я создаю основную навигацию в 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. (Вы написали, что создали собственное поле для изображения навигации/меню)

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