Текущий элемент меню с изображением из ресурсов страницы? - PullRequest
0 голосов
/ 15 октября 2019

Я создал новый элемент меню, и мне нужно, чтобы он отображал изображение для каждой страницы. Изображение хранится в ресурсах страницы.

Когда я отлаживаю шаблон, каждый пункт меню показывает data.media => 1, но носитель не может быть расширен. Как получить изображение для рендеринга в моем шаблоне?

TS:

ext_menu_image < lib.contentElement
ext_menu_image {
    templateName = MenuImage
    dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        10 {
           special = directory
           special.value.field = pages
           levels = 1
           as = menuItems
           expandAll = 1
           titleField = nav_title // title
        }
    }
}

Шаблон:

<f:for each="{menuItems}" as="page">
  {f:uri.image(image:page.data.media.???)}
</f:for>

1 Ответ

1 голос
/ 15 октября 2019

По умолчанию MenuProcessor просто помещает данные непосредственно из таблицы в массив в Fluid. Поле media в таблице страниц просто содержит количество отношений. Таким образом, вам нужен другой процессор данных, чтобы он был переведен в файл. Это должно сделать это:

ext_menu_image < lib.contentElement
ext_menu_image {
    templateName = MenuImage
    dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        10 {
           special = directory
           special.value.field = pages
           levels = 1
           as = menuItems
           expandAll = 1
           titleField = nav_title // title
           dataProcessing {
             10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
             10 {
               references.fieldName = media
             }
           }
        }
    }
}
...