2011-10-13 72 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