私はSymfonyを使って簡単なアプリケーションを構築しています。ページレイアウトは、左右のサイドバーを持つ本体で構成されています。サイドバーには、ユーザーが設定できるいくつかのモジュールが含まれています。symfonyのレイアウトでサイドバーコンテンツを埋め込む方法は?
のlayout.php
<div id="left_sidebar">
<?php if (has_slot('left_sidebar')): ?>
<ul>
<?php include_slot('left_sidebar') ?>
</ul>
<?php else: ?>
<!-- default sidebar code -->
<?php endif; ?>
</div>
Iフィルタを使用してみましたスロットを埋めるために:
symfonyはサイドバーを充填するための正しい方法であると思われるスロットを提供します。問題は、サイドバーの一部のモジュールがアクション(カテゴリ更新など)で何が起こるかに依存することです。したがって、アクションが完了した後に生成される必要があります。
msBootstrapFilter
class msBootstrapFilter extends sfFilter
{
public function execute($filterChain)
{
// Generating the sidebars at this point is TOO early
// as the content of some sidebars depends on the actions
// Execute next filter
$filterChain->execute();
// Generate the sidebars after running through all the code
// This is TOO LATE, the layout has been rendered
$this->generateSidebars();
}
}
それは柔軟性に欠けるようだと私はそれぞれのアクションに「実行のサイドバー」呼び出しを追加する必要はありません。
サイドバーコンテンツを生成するためのSymfonyイベントフローのポイントは何ですか?私が接続できる適切なイベントはありますか?
ありがとうございました。私は部品を早期に解雇しましたが、私の目的にはあまり適していません。しかし、あなたのコメントは、私の戦略と追求する新しい道を再考することを余儀なくさせました。 – Tramov