Как вывести контент из бэкенда в шаблоны? - PullRequest
0 голосов
/ 24 сентября 2018

Я попытаюсь объяснить мою проблему как можно более конкретной.

Создал файл опечатки с именем Portal.ts в папке BackendLayouts, добавил несколько строк и столбцов.Добавил Portal.html в правильную папку и создал макет в папке Layouts, который использует для визуализации шаблона Portal.html.(Вот где я заставляю всю магию происходить)

Теперь я хочу добавить контент в бэкэнд.Итак, я создал страницу под названием Portal.Затем пошел к внешнему виду и выбрал макет портала.Сохранено, и похоже на работу.Большой!

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

Это мой Portal.ts:

backend_layout {
    colCount = 2
    rowCount = 2
    rows {
        1 {
            columns {
                1 {
                    name = Hoofdteksten
                    colspan = 2
                    colPos = 1
                }
             }
        }

        2 {
             columns {
                 1 {
                     name = Afbeeldingen
                     colspan = 3
                     colPos = 3
                }
            }
        }
    }
}

Это файл шаблона:

<f:layout name="Portal" />
<f:section name="content">

    <div id="portal"> RENDER HEADER FROM BACKEND HERE </div>

</f:section>

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Вам нужна глобальная конфигурация TypoScript для рендеринга контента.Это может выглядеть следующим образом:

lib.content {
    render = CONTENT
    render {
        table = tt_content
        select {
            orderBy = sorting
            where.cObject = COA
            where.cObject {
                10 = TEXT
                10 {
                    field = colPos
                    intval = 1
                    ifEmpty = 0
                    noTrimWrap = | AND colPos=||
                }
            }
        }
    }
}

Если у вас есть что-то подобное в вашем проекте, вы можете использовать его в своих шаблонах флюидов с помощью cObject VieHelper, например:

<div id="header">
  <f:cObject typoscriptObjectPath="lib.content.render" data="{colPos:1}" />
</div>

Я подробно описал это в сообщении в блоге на https://usetypo3.com/backend-layouts.html

0 голосов
/ 24 сентября 2018

Вы можете установить переменные в вашем FLUIDTEMPLATE объекте в TypoScript.Что-то вроде:

page = PAGE
page.1 = FLUIDTEMPLATE
page.1 {
    templateName = Basic2ColumnPage
    templateRootPaths.1 = fileadmin/sitedesign/Resources/Private/Layouts
    variables {
        contentNormal < styles.content.get
        contentRight < styles.content.get
        contentRight.select.where = colPos = 2
    }
}

styles.content.get используется для получения контента.По умолчанию он извлекает содержимое с текущей страницы с помощью colPos = 0, поэтому, если вы хотите извлечь из другого столбца, вы добавляете select.where = colPos = 2 (где 2 - это столбец, из которого вы хотите его извлечь).Затем вы можете использовать переменные в своем шаблоне.

Подробнее об этом см. https://docs.typo3.org/typo3cms/TemplatingTutorial/BasicFluidTemplates/Index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...