私は TYPO3 6.1 と Fluid テンプレートを使用して、fedext.netツール セットを使用しています。メニューなどの自動生成されたコンテンツと、著作権などの管理者定義のコンテンツを含むヘッダーが必要です。TYPO3 バックエンドの共通の場所でこれを定義することは理にかなっています。
現在、次のようなページ レイアウトがあります。
{namespace v=Tx_Vhs_ViewHelpers}
<f:layout name="Page"/>
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:v="http://fedext.net/ns/vhs/ViewHelpers"
xmlns:f="http://fedext.net/ns/fluid/ViewHelpers">
<div class="grid-container">
<f:cObject typoscriptObjectPath="lib.my_custom_header" />
<f:render section="Content"/>
<f:cObject typoscriptObjectPath="lib.my_custom_footer" />
</div>
</div>
そしてTyposcriptでは、ヘッダーのコンテンツを取得してレンダリングするために次のことを行っています:
lib.my_custom_header = COA
lib.my_custom_header {
10 = CONTENT
10 {
table = tt_content
select.where = colPos = 0
select.languageField = sys_language_uid
select.orderBy = sorting
select.pidInList = {$config.my_site.header_page_id}
}
20 = CONTENT
20 {
table = tt_content
select.where = colPos = 1
select.languageField = sys_language_uid
select.orderBy = sorting
select.pidInList = {$config.my_site.header_page_id}
}
}
ここに私の FooterPage 流体テンプレートがあります
{namespace v=Tx_Vhs_ViewHelpers}
{namespace flux=Tx_Flux_ViewHelpers}
<f:layout name="Page"/>
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:v="http://fedext.net/ns/vhs/ViewHelpers"
xmlns:flux="http://fedext.net/ns/flux/ViewHelpers"
xmlns:f="http://fedext.net/ns/fluid/ViewHelpers">
<f:section name="Configuration">
<flux:flexform id="mypageheader" label="Page Header">
<!-- Grid displayed in the page module -->
<flux:flexform.grid>
<flux:flexform.grid.row>
<flux:flexform.grid.column colPos="0" name="Header Logo" />
<flux:flexform.grid.column colPos="1" name="Header Links" />
</flux:flexform.grid.row>
</flux:flexform.grid>
</flux:flexform>
</f:section>
<f:section name="Resources"></f:section>
<f:section name="Content">
<div class="grid-100 mobile-grid-100 grid-parent header">
<v:page.content.render column="0"/>
<v:page.content.render column="1"/>
</div>
</f:section>
</div>
フッターのコードはほとんど同じです (変数名を除く)。このアプローチは機能し、ヘッダーとフッターはページから取得されますが、私には少し醜く感じます. ページ全体ではなく、フッターページのコンテンツ要素のみをレンダリングできるためです。したがって、ヘッダー/フッター データのカスタム ラッパーを指定できません。
別の方法として、TypoScript 内でそのラッパーを定義することもできますが、これはヘッダー テンプレート コードを TypoScript コード全体に広げます。ページ レイアウト ファイル (上記を参照) で定義することもできますが、その場合でも、残りのヘッダー テンプレート コード (ヘッダー/フッターの流動的なページ テンプレート内に配置したい) から分離されます。
では、どうすれば一番うまくいくのでしょうか?
PS このサンプル プロジェクトhttp://bootstrap.typo3cms.demo.typo3.org/では、フッターはいくつかの共有バックエンド要素から移動するように構成されていますが、TYPO3 バックエンドでその要素を開くことができません。TYPO3 を開こうとすると空の画面が表示されます。それ。そのプロジェクトのローカル コピーでも同じことが起こります。