2017-08-12 13 views
0

カスタムコンテンツ要素を作成したい。私はこれが基本的にどのように機能するのか知っしかし、私は、適切なデータベーステーブルにこの要素の構成データを格納する方法があるかどうか、自分自身に尋ねてきます。TYPO3 - カスタムコンテンツ要素データを独自のデータベーステーブルに格納

tt_contentテーブルを拡張してそこにデータを格納する方法しか知りません。しかし、より多くの量の要素とフィールドでは、tt_contentも大きくなります。私はこれを防ぐつもりです。

あなたが質問する直前に、私はFluidTYPO3を使用したくありません。 ;)私はちょうど基本的なTYPO3の機能を使ってそれをやりたいと思います。

答えて

0

もっと良い方法があるかどうかわからないかもしれませんが、IRREとmin:1とmax:1のフィールド定義の要素を作成することはできますが、これは本当にいい方法ではありません。 より良い方法は、できるだけ頻繁にtt_contentに与えられたフィールドを再利用し、本当に必要な場合にのみフィールドを追加することです。 多分、EXT:maskとEXT:mask_exportを見てください。これらの2つは、カスタムコンテンツ要素(EXT:マスク)を作成して独自の拡張子(EXT:mask_export)としてエクスポートする非常に強力なツールですこれらの2つの拡張は、開発段階でのみ行われます。

0

コンテンツ要素を作成するときは、常にデータベーステーブルtt_contentを使用する必要があります。もちろん、カスタムレコードとの関係を使用することは理にかなっています。タブ、アコーディオンなどの要素を作成する場合...

あなたができることは、既存の列をそのまま再利用することです。だからheaderbodytextimageのような再利用フィールド... /sysext/frontend/Configuration/TCA/tt_content.phpを見てください。利点は、あなたがまた、フィールドを再利用することができ

すべての言語にパフォーマンスには本当に関係のない、ほとんどの時間で少し小さいテーブル翻訳whithラベルを含め

  • うまく設計されたフィールド

  • 0

    typo3の拡張子maskをご覧ください。カスタムコンテンツを作成し、既存のtt_contentフィールドを新しい要素にマッピングできます。バックエンドプレビューが自動的に採用されるため、header、bodytext、media、imageフィールドを再利用することは理にかなっています。

    私は最近それを使用しました。 Hereはジャンプするリソースです(ドイツ語のみ)

    新しいフィールドにインデックスを付ける必要がない場合、新しいフィールドでtt_contentを爆破するのは大きな問題ではありません。パフォーマンスにはあまり影響しません。

    新しい1持っている必要がある場合は、次のいくつかの子レコード(アコーディオン、チームのリストなど)へのコンテンツからNの関係を、単にinline elements(IRRE)としてそれらを追加し、types-stringにフィールドを追加します。

    フィルタリング可能、ソート可能などの新しい種類のデータが必要な場合は、独自のテーブル構造で新しいタイプのレコードを作成し、そのデータを表示するためにextbaseプラグインを使用する必要があります。

    カスタムコンテンツが必要な場合は、tt_contentを拡張/再マッピングしても問題ありません。

    関連する問題