我在布局文件中有一些自定义占位符,如[Region_Contents]现在我想在布局呈现时用我的自定义html替换这些占位符比如不是显示[Region_Contents]而是显示
Hello this is test block
有什么办法可以做到吗?您可以使用视图过滤器。首先,我们必须像这样实现Zend_Filter_Interface:
class My_View_Filter_PlaceholderReplacer implements Zend_Filter_Interface
{
public function filter($value)
{
return str_replace('[Region_Contents]', 'Hello this is test block', $value);
}
}
在上面的代码中,$value包含视图显示之前的字符串表示形式。ZF在呈现视图时将使用上述函数返回的任何内容。注意,出于性能原因,我们使用str_replace而不是preg_replace。
接下来,我们需要告诉ZF使用我们刚刚创建的过滤器。你可以在引导程序中这样做。
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initViewSettings()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->addFilterPath('My/View/Filter', 'My_View_Filter');
$view->setFilter('PlaceholderReplacer');
...
}
...
}
更多信息,请参考以下链接:
Zend手册
Zend框架与翻译
如果不需要保持上面描述的相同语法,您可以使用标准的Zend_View
占位符视图帮助程序:http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.placeholder
希望有帮助,