如何在symfony 1.4中布局渲染之前设置文化?

时间:2012-09-06 16:00:22

标签: symfony1 internationalization symfony-1.4

我需要根据浏览网站的国家/地区显示不同的徽标图片(在layout.php中)。在动作中设置它并不起作用,因为在调用preExecute()(或任何其他动作)之前呈现布局。

如何在渲染布局之前设置文化,然后在layout.php中调用此变量?

2 个答案:

答案 0 :(得分:2)

您应该阅读文档的用户文化section。正确设置用户文化后,您还可以在模板和布局中使用$sf_user->getCulture()

注意:@glerendegui是正确的,布局在动作后呈现,甚至在模板之后呈现。

答案 1 :(得分:0)

我认为这不是真的。调用操作后呈现布局。例如,您可以使用$ this-> setLayout();更改actions.class中的de layout。 无论如何,我认为您可以使用一个插槽来解决您的问题。 在布局中:

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

然后,在你的动作模板(f.e.indexSuccess)

<?php
slot('logo_image');
?><img src="<?php .... l10n image ?>" />
<?php end_slot(); ?>