2

私は TYPO3 を初めて使用し、オンラインでいくつかのブログを読み、バックエンドのレイアウトとテンプレートの概念を理解しました。私の質問は本当に簡単で基本的なものかもしれません。

を使用してページのバックエンド レイアウトを作成しますleft, right and middle columns。このツリーの下のページも、3 列の同じバックエンド レイアウトを使用します。

ただし、列left and rightはすべてのページで同じままで、middle columnコンテンツが異なるだけです。

現在、すべてのページの左、右、および中央の列にコンテンツを追加していますが、これには非常に時間がかかります。

1 つのページにコンテンツを追加して、他のすべてのページで列のコンテンツleft and rightを上書きすることはできますか?middle

4

4 に答える 4

1

はい、これは簡単です。TypoScript プロパティ "slide" を使用する必要があります。

styles.content.getRight.slide = -1

TYPO3 は、右側の列が満たされているページが見つかるまでルートラインをたどることを意味します (左側の列には getLeft を使用します)。

そのため、ルート ページの左右の列のコンテンツを保持し、サブページのコンテンツを削除することができます。

次のキャッシュの問題に注意してください: ルート ページのコンテンツを変更しても、このコンテンツを継承するページのキャッシュが再構築されるわけではありません。ルートページのコンテンツを編集するときにキャッシュ全体 (!) をクリアしたい場合は、

TCEMAIN.clearCacheCmd = all

ルートページの Page TS Config へ。大規模なサイトでこれを行うことはお勧めしません。

特定のブランチのみのキャッシュクリアするのに役立つ拡張機能があります。ビュー/

コメントの質問への回答を編集します。デフォルトの列以外の列にスライド機能を使用する場合は、コンテンツ オブジェクトをコピーして変更できます。

lib.contentCol99 < styles.content.get # copies colPos = 0
lib.contentCol99.select.where = colPos=99 # uses the content from col 99
lib.contentCol99.slide = -1 # walk the rootline until content is found

編集 2: FLUIDTEMPLATE を使用している場合、コンテンツを使用する cObject ヘルパーを使用できます。

<f:cObject typoscriptObjectPath="lib.contentCol99">
   Lorem ipsum dummy 
</f:cObject>

従来のサブパーツおよびマーカー ベースのテンプレートを使用して、コンテンツをテンプレートに割り当てます。たとえば、次のようになります。

page = PAGE
page.10 = TEMPLATE
[...]
page.10.subparts.contentCol99 < lib.contentCol99

テンプレートのサブパーツとして使用します。

于 2013-09-05T08:46:51.850 に答える
0

私も@biesiorのソリューションを支持します。ただし、バックエンドで繰り返しコンテンツを処理する方法は異なります。

あなたの場合、BE レイアウトはページの中央の列のみを必要とします。

次に、「脇に」sysfolderを作成します。この sysfolder で、左側の列のコンテンツ用のページ (または sysfolder も) を作成し、右側の列のコンテンツ用に 1 つ作成します。

これで、Typoscript の CONTENT を介してこれらのページのすべてのコンテンツを引き出すことができ、設定は完了です。スライドも非表示も必要ありません。

于 2013-09-05T21:03:01.370 に答える
0

lorenzslideによって説明されているのは 1 つの可能性です。その他 (編集者が列を変更できないようにする場合) は、TypoScript を使用してこれらの列を埋め、BE で非表示にすることです。

隠しページのコンテンツを「宣言」し、それを他のページで使用するには、次のようにCONTENTcObject (123uidその隠しページの ) を使用する必要があります。

styles.content.getLeft < styles.content.get
styles.content.getLeft {
    select.where = colPos=1
    select.pidInList = 123
} 

(注: 頭のてっぺんから書いたもので、テストが必要です)

BE で必要な列のみを表示するには、このスニペットをPageTS

最後に、アプローチを組み合わせることができます - スライドを使用し、サブページで列を非表示にすると、メイン ページでのみ入力でき、上書きの可能性なしにすべてのレベルに継承されます。

于 2013-09-05T09:25:40.860 に答える