2 つのフォールバックを使用して、レンダリングされた HTML に文字列を出力したいと考えています。
私のタイポスクリプトはトップ レベル ページ (私の Web サイトのルート ページ) で定義され、下位レベルのすべてのページに渡されます。
構造:
- ホームページ
- レベル 1 のページ
- レベル 2 のページ
- レベル 1 のページ
ファイルの通常の出力:
文字列は TemplaVoila フィールド (ページ / 編集 / 拡張 / マイフィールド) から取得されます: field_copyright_name
HTML 出力の目的のポイントに出力するために、lib.copyright_name という名前の templaVoila マッピング (タイプ: 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 で)、typscript は上のページから値を取得する必要があります (レベル 1 で、それも空の場合はホームページから取得する必要があります)。それを行う方法の手がかりはありません。手伝ってくれますか?
2 番目のフォールバック
最初のフォールバックでも空の文字列が返される場合 (フィールドがすべてのレベルで空だったため)、デフォルト値の "Copyright by me" にフォールバックする必要があります。
「最初のフォールバック」なしでこのフォールバックを有効にするのは簡単です:
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
しかし、成功しませんでした - 出力はありません。