TYPO3 / TypoScript: как создать запасной вариант?

#typo3 #fallback #typoscript #fallbackvalue

#typo3 #запасной вариант #typoscript #резервное значение

Вопрос:

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

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

Структура:

  • Домашняя страница
    • Страница на уровне 1
      • Страница на уровне 2

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

Строка берется из поля TemplaVoila (Страница / Редактировать / Расширенное / MyField): field_copyright_name

Для вывода его в нужную точку в выводе HTML существует сопоставление TemplaVoila (тип: Путь к объекту Typoscript) с именем: lib.имя_ авторского права

Следующий typoscript выполняет эту работу:

 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
  

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

Редактировать:

Я пытался:

 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. можете ли вы попробовать что-то подобное на своей корневой странице: lib.hint_copyright_name. 10 { data = {field:field_copyright_name}:0 // {field:field_copyright_name}:1 // {field:field_copyright_name}: 2 } или с помощью field: lib.hint_copyright_name. 10 { поле = имя_полевой копии: 0 // имя_полевой копии: 1 // имя_полевой копии: 2} Я не уверен, работает ли это.

2. Предложения Rito не работают (потому что я не хочу ограничивать уровни в общей сложности 3).

Ответ №1:

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

Предполагается, что это заставит ваш слайд работать. Просто установите: Установка > вся конфигурация > addRootLineFields

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