2011-10-13 69 views
2

我在布局文件中的一些自定义的占位符,如[Region_Contents] 现在我想用我的自定义HTML来替换这些占位符的布局呈现 喜欢的,而不是显示[Region_Contents]它可能会显示Zend框架呈现自定义占位布局

你好,这是测试块

有没有办法做到这一点?

回答

1

您可以使用视图过滤器这一点。首先,我们必须实现像这样的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); 
    } 
} 

在上面的代码中,$值包含仅仅显示前视图的字符串表示。无论上面的函数返回什么,ZF在渲染视图时都会使用它。请注意,出于性能原因,我们使用str_replace而不是preg_replace。

接下来,我们需要告诉ZF使用我们刚制作的过滤器。你可以在bootstrap中做到这一点。

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 Manual

Zend Framework and Translation

+0

我只想过滤布局,我不想过滤视图。在上面的情况下,它正在过滤视图和布局,但我只需要过滤布局 – Tofeeq