TYPO3 / TypoScript: как сделать запасной вариант? - PullRequest
3 голосов
/ 24 мая 2011

Я хочу вывести строку в отрендеренный HTML, используя два запасных варианта.

Мой опечатка определена на странице верхнего уровня (корневой странице моего сайта) и передается всем страницам на более низких уровнях.

Состав:

  • Главная
    • Страница на уровне 1
      • Страница на уровне 2

Обычный вывод файла:

Строка происходит из поля TemplaVoila (Page / Edit / Extended / MyField): field_copyright_name

Чтобы вывести его в нужную точку в выводе HTML, существует отображение templaVoila (Тип: Путь объекта Typoscript) с именем: lib.copyright_name

Следующая распечатка делает работу:

lib.hint_copyright_name = COA
lib.hint_copyright_name.10 = TEXT
lib.hint_copyright_name.10 {
    setCurrent.dataWrap = {field:field_copyright_name}
    current = 1
}

Это работает для всех страниц на всех уровнях, где поле (в свойствах страницы) не пустое.

Первый запасной вариант:

Если поле пустое (в свойствах этой страницы, например, на уровне 2), typoscript должен получить значение из страниц выше (на уровне 1, и если оно тоже пустое, оно должно получить его с домашней страницы). Понятия не имею, как это сделать. Вы можете помочь?

Второй запасной вариант

Если первый запасной вариант все еще возвращает пустую строку (поскольку поле было пустым на всех уровнях), он должен выполнить откат к значению по умолчанию «Авторские права от меня».

Включить этот запасной вариант без «первого отступления» легко:

switchdefault_copyright_name = TEXT
switchdefault_copyright_name {
    setCurrent.dataWrap = {field:field_copyright_name}
    current = 1
    override = "Copyright by me"
    override.if.isFalse.field = field_copyright_name
}


lib.hint_copyright_name = COA
lib.hint_copyright_name.10 < switchdefault_copyright_name

Но как интегрировать "первый запасной вариант"?

EDIT:

Я пытался:

setCurrent.data = {levelfield:-1, field_copyright_name, slide}

или

setCurrent.data = levelfield:-1, field_copyright_name, slide

или

setCurrent.dataWrap = {levelfield:-1, field_copyright_name, slide}

или

setCurrent.dataWrap = levelfield:-1, field_copyright_name, slide

но без успеха - без вывода.

1 Ответ

2 голосов
/ 25 мая 2011

Только что нашел это: http://lists.typo3.org/pipermail/typo3-english/2006-October/032764.html

Это должно заставить вас работать на слайде. Просто установите: Установка> Вся конфигурация> addRootLineFields

Не пробовал, но похоже на решение

...