2011-04-29 8 views
0

내 사이트에서 메타 태그 (메타 키워드, 메타 설명)를 데이터베이스에서 가져와 각 컨트롤러마다 다르게 설정해야합니다.전체 사이트에 메타 태그 기능을로드하는 방법

지금 내가하는에 컨트롤러가 그 순간

에서로드하는 메타 태그를 DB에서 관련 META 내용을 얻을 것이다 함수를 작성하고 설정하는 데 달려 필요하지만 난이 기능을 쓸 수 있습니다 어디에서 가져올 수 없습니다 그것을 위해.

helper 함수 headMeta()는 각 View 파일에서 동일하게 설정했지만 모든 컨트롤러 init() 함수에서 동일한 db 작업을 반복해야합니다.

는 하나

감사합니다 ..... 내가 컨트롤러와 뷰 파일하십시오에서 작성해야 코드를 함께 할 수 있습니다.

답변

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" 
관련 문제