私は Fluid 拡張スイート (flux、fluidcontent、fluidpages など) の作成者であり、もちろん、FluidContent を使用して FCE を作成する方法を学ぶ手助けをしたいと思っています。それは実際には、人が恐れているほど高度ではありません。少なくとも、上記の例よりもはるかにコンパクトです。以下は、FluidContent の例と同じ結果を達成します。
TypoScript (静的ロード: css_styled_content、fluid_content)
plugin.tx_fed.fce.yourname {
templateRootPath = fileadmin/Templates # if you don't want to use an extension (1)
# partial and layout root paths not defined (2)
}
(1) に関しては、あなたは本当に、本当にすべきです。拡張機能を使用すると、ユーザーがアップロードしたメディアなどをサイトのコンテンツから分離できます。代わりに、プライベート リソース フォルダーへの EXT:... パスを使用するだけです。(2)に関しては、これらのパスは、実際にパーシャルを使用したい場合にのみ必要です。
次に、テンプレート ファイル自体 (ファイルが配置されているパスが TS に追加されると自動検出されます):
{namespace flux=Tx_Flux_ViewHelpers}
<f:layout name="Content" />
<f:section name="Configuration">
<flux:flexform id="columns" label="Columns" icon="path/to/iconfile.jpg">
<flux:flexform.grid>
<flux:flexform.grid.row>
<flux:flexform.grid.column>
<flux:flexform.content name="left" label="Left content" />
</flux:flexform.grid.column>
<flux:flexform.grid.column>
<flux:flexform.content name="right" label="Right content" />
</flux:flexform.grid.column>
</flux:flexform.grid.row>
</flux:flexform.grid>
</flux:flexform>
</f:section>
<f:section name="Preview">
<flux:widget.grid />
</f:section>
<f:section name="Main">
<div class="row">
<div class="span6">
<flux:flexform.renderContent area="left" />
</div>
<div class="span6">
<flux:flexform.renderContent area="right" />
</div>
</div>
</f:section>
ご覧のとおり、必要な HTML を追加したり、任意の ViewHelper を使用したりできます (必要に応じて TS オブジェクトをレンダリングすることもできます)。コンテンツ要素を追加するには、新しいテンプレート ファイルを追加するだけで、自動的に認識されます。
ただし、IRRE とは異なる動作をします (Flux フィールドを使用して実現することもできます。そのデモを見たい場合はお知らせください): TYPO3 でネイティブのドラッグ アンド ドロップを使用して、子供を配置することができます。コンテンツ要素を実際のコンテンツ コンテナーに変換します。これは、テレビで行っていたようにです。
そのため、Fluid Content はおそらく TV に最も近いものです。
Flux がやり過ぎであるという点について、実際に何を実行するかについて説明したいと思います。
- パスを知るための TS のキャッシュ読み取り
- 検出されたテンプレートのキャッシュされたリスト
- Fluid はネイティブ PHP にキャッシュします。Flux は Fluid のみを使用して構成を保存します (つまり、すべてがネイティブ PHP であるということです)。
- Flux 自体は、保存されているコンテンツに反応するフック サブスクライバーを登録します。これにより、バックエンドが (気付かないうちに) 遅くなります。
- Flux 自体は、1 つの例外を除いて FE に負荷を作成しません: キャッシュされていないプラグイン (FluidContent がキャッシュされている!) の場合、Flux はネイティブの PHP キャッシュ コードを呼び出して構成を読み取る場合があります。
- FluidContent は非常に単純なコントローラーで構成されています。出力は完全にキャッシュされます。
- VHS ViewHelper コレクションを追加することをお勧めします。それ自体ではまったく負荷がかかりません。ViewHelper を使用するリソースのみを使用します。ViewHelpers のヒープが含まれているので、役に立つと思います。
最初は圧倒されるように見えるかもしれませんが、pibase、FlexForm XML、TS、またはネイティブ Extbase プラグインよりも、知ったり覚えたりすることが少ないことを保証します。さらに安全策が必要な場合は、エディターで XSD スキーマを使用することを強くお勧めします。これにより、特別な<flux:....>
タグなどのオートコンプリートが得られます。
ただし、Fluid のロジックについて少し学習する必要があります。レイアウトとパーシャルとは何か (ある時点でこれらを使用する可能性が高いでしょう)、特殊なタグを使用して変数を参照する方法 (他の使用例 - ただし、手元にあるものではなく、単純な ViewHelper タグのみが必要です)。
これが役立つことを願っています。そして、Flux はやり過ぎであり、学ぶことが多すぎるというあなたの恐れを軽減しました ;)
乾杯、
別名クラウス。NamelessCoder