2011-09-16 3 views
0

무엇 젠드 라우터해야하며, 마지막으로 내가 어떤 컨트롤러 플러그인을 사용할 수있는 다음과 같은도움말

http://domain.com/news/admin/edit/id/6 

로 라우팅 이것을하기 위해???

도와주세요 ...

답변

1

아무도 도움을받지 못했습니다. 그러나 마침내 나는 그것을 해결하기 위해 컨트롤러 플러그인을 만들 수 있었다. 나는 그것이 누군가를 도울지도 모르기 때문에 이것을 게시하고있다. ...

class Layzend_Controller_Plugin_AdminRouter extends Zend_Controller_Plugin_Abstract 
{ 
    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) 
    { 
     $module = $request->getModuleName(); 
     $controller = $request->getControllerName(); 
     $action = $request->getActionName(); 

     $bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap'); 
     $options = $bootstrap->getOption('custom'); 
     $adminDirectory = $options['adminDirectory']; 
     $adminDirectory = $adminDirectory ? $adminDirectory : 'admin'; 

     if($module == $adminDirectory) 
     { 
      $newModule = ($controller == 'index') ? 'default' : $controller; 
      $newController = 'admin'; 
      $newAction = $action; 

      $moduleDir = APPLICATION_PATH . "/modules/$newModule"; 
      if(!is_dir($moduleDir)) 
      { 
       Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH . "/layouts/scripts/admin/"); 
       throw new Zend_Controller_Action_Exception('Page not found.',404); 
      } 

      $request->setModuleName($newModule); 
      $request->setControllerName($newController); 
      $request->setActionName($newAction); 

     } 
     else if($module == 'admin') { 
      throw new Zend_Controller_Action_Exception('Page not found.',404); 
     } 
    } 
}