0

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

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

4

2 回答 2

2

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

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

于 2012-09-07T17:18:32.547 回答
0

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

<?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 回答