2011-04-29 59 views
0

在我的網站中,我需要從數據庫中爲每個控制器設置不同的元標記(元關鍵字,元描述)。如何加載整個網站的元標記功能

現在我需要編寫一個函數,從數據庫獲取相關的META內容,並設置Meta標籤取決於當前何種控制器裝在那一刻

,但我不能讓我在哪裏可以寫函數爲了它。

我發現輔助函數headMeta()從每個視圖文件設置相同,但我需要在所有控制器init()函數中重複相同的數據庫操作,我認爲。

任何一個能幫忙的代碼我在控制器和視圖文件請寫.....

謝謝。

回答

2

這應該工作,沒有測試。請將類名更改爲您的名稱空間:-)

//layout.phtml 
<?php echo $this->headMeta(); ?> 

//My_Controller_Plugin_HeadMeta.php 
class My_Controller_Plugin_HeadMeta extends Zend_Controller_Plugin_Abstract 
{ 
    public function preDispatch(Zend_Controller_Request_Abstract $request) 
    { 
     $controller = $this->getControllerName(); 
     $db = Zend_Db_Table_Abstract::getDefaultAdapter(); 
     $layout = Zend_Layout::getMvcInstance(); 
     $view = $layout->getView();   

     // do your db stuff here 
     // db results 
     $results = array(); 


     foreach ($results as $result) { 
      $view->headMeta()->appendName('keywords', $result); 
     } 
    } 
} 

//applications.ini 
resources.frontController.plugins.0 = "My_Controller_Plugin_HeadMeta"