Как создать шаблон typo3 для элемента контента? - PullRequest
0 голосов
/ 25 июня 2019

Я создал новый элемент контента для слайдера. Я добавил эти коды в мою настройку typo3

EXT:rapigo\Configuration\TsConfig\Page\Mod\WebLayout\mod.tsconfig

mod.wizards.newContentElement.wizardItems.common {
    elements {
        rapigo_home_slider {
            iconIdentifier = content-carousel-image
            title = Home Slider
            description = A content element to add one or more images
            tt_content_defValues.CType = rapigo_home_slider
        }
    }
    show := addToList(rapigo_home_slider)
}

EXT:rapigo\Configuration\TCA\Overrides\tt_content_my_extension_my_slider.php

enter image description here

Ext:rapigo\Configuration\TypoScript\myslider.typoscript

tt_content {
    my_extension_my_slider < lib.contentElement
    my_extension_my_slider {
        templateName = HomeSlider
        dataProcessing {
            10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
            10.references.fieldName = assets
        }
    }
}

Все эти коды включают раздел в бэкэнде, откуда я могу добавить содержимое слайдера. Но при рендеринге его на переднем конце возникает ошибка

ERROR: Content Element with uid "26" and type "rapigo_home_slider" has no rendering definition!

Я определенно что-то пропустил и понятия не имею, что мне делать. Я новичок в Typo3.

Итак, мой вопрос: 1) Как я могу определить шаблон для моего слайдера? Пожалуйста, также предложите путь, где я должен написать код. 2) После этого, как я могу получить данные из элемента содержимого, чтобы я мог взять их оттуда и вставить в свой HTML-дизайн.

1 Ответ

1 голос
/ 26 июня 2019

Вам необходимо добавить файл шаблона жидкости в набор файлов шаблонов, которые уже определены.

вероятно, есть определение типа

lib.contentElement.templateRootPaths.0 = EXT:fluid_styled_content/Resources/Private/Templates/

Поскольку вам никогда не нужно изменять само ядро ​​(даже не добавляйте файлы в эти папки), вам необходимо добавить дополнительные папки с указанием пути к папке, например:

lib.contentElement.templateRootPaths.5 = EXT:rapigo/Resources/Private/Templates/

там у вас есть файл шаблона HomeSlider.html. в этом файле вы можете сделать

<f:debug title="all data available in HomeSlider.html">{_all}</f:debug>

и посмотрите, с какими данными вы могли бы работать. Вы должны найти объект data, который содержит все поля из записи tt_content.

Помимо templateRootPaths вы также можете добавить значения для layoutRootPaths и partialRootpaths, чтобы расширить набор доступных шаблонов.

...