0

サイトを閲覧している国に基づいて、(layout.phpで)異なるロゴ画像を表示する必要があります。preExecute()(または他のアクション)が呼び出される前にレイアウトがレンダリングされるため、アクションでの設定は機能しません。

レイアウトがレンダリングされる前にカルチャを設定してから、layout.phpでこの変数を呼び出すにはどうすればよいですか?

4

2 に答える 2

2

ドキュメントのユーザーカルチャーのセクションを読む必要があります。ユーザーカルチャを適切に設定する$sf_user->getCulture()と、テンプレートやレイアウトでも使用できます。

注:@glerendeguiは正しいです。レイアウトは、アクションの後、さらにはテンプレートの後でレンダリングされます。

于 2012-09-07T17:18:32.547 に答える
0

それは本当ではないと思います。アクションが呼び出された後、レイアウトがレンダリングされます。この例では、actions.classのレイアウトを$ this-> setLayout();で変更できます。とにかく、1つのスロットで問題を解決できると思います。レイアウト:

<?php if(!has_slot('logo_image')) { ?>
<img src="<?php ... default logo;?>" />
<?php else { include_slot('logo_image'); } ?>

次に、アクションテンプレート(fe indexSuccess)で

<?php
slot('logo_image');
?><img src="<?php .... l10n image ?>" />
<?php end_slot(); ?>
于 2012-09-06T19:27:10.167 に答える