2015-01-28 2 views
0

Module Core Controller에서 액션 이름을 얻는 방법을 알려주고 액션을 실행하는 대신 액션 이름을 변수로 사용하여 출력 할 컨텐츠를 결정하는 사람을 찾고 있습니다.SocialEngine 4 - get 액션 이름

기본적으로, 내 워드 프레스 대신 SocialEngine으로 전환하고 이전 페이지 구조를 유지하기 위해 페이지 출력을 끌어 오기위한 모듈을 설정하고 있습니다. 그래서 조각품을위한 컨트롤러를 설치 한 다음 각 조각 데이터를 데이터베이스 테이블에 저장합니다.

그래서 누군가가MYDOMAIN/조각에 갈 때 그들은 것 동적 물론, MYDOMAIN/scultures 것 개별 조각 페이지 ... 탐색에 대한 URL을 생성 할 데이터베이스에서 가져온 목록을/일반적으로 컨트롤러() 함수 공용 기능 sculpturenameAction 실행할 것이다

는, 그러나,이 작업 이름을 가로 기초하여 개별 조각 페이지에 대한 데이터를 제공하는 것이 다른 기능을 수행하고자 sculpturename 액션 이름에.

이것이 가능합니까? 나는 그것을 어떻게 할 것이냐?

답변

0
You can get the current module, controller and action name using below code: 

$front = Zend_Controller_Front::getInstance(); 
$module = $front->getRequest()->getModuleName(); 
$controller = $front->getRequest()->getControllerName(); 
$action = $front->getRequest()->getActionName(); 

If you want to divert the route or want to run some other code at some action than you can use the routeShutdown() method. Please see the below example for this: 

    class yourModuleName_Plugin_Core extends Zend_Controller_Plugin_Abstract { 

     public function routeShutdown(Zend_Controller_Request_Abstract $request) { 

      $module = $request->getModuleName(); 
      $controller = $request->getControllerName(); 
      $action = $request->getActionName(); 

      //ADD YOUR ACTION CONDITION 
      if ($module == 'core' && $controller == 'index' && $action == 'index') { 

       //SET SOME OTHER ACTIONS OR YOU CAN WRITE SOME OTHER CODE 
       $request->setModuleName('yourModuleName'); 
       $request->setControllerName('yourControllerName'); 
       $request->setActionName('yourActionName'); 
      } 
     } 
    } 

Hope this answer will helps you. Thank you !! 
+0

감사합니다 @ Jitendra Bansal이게 내가 찾고있는 것으로서 읽었지만 클래스 선언은 정확하게 내가 한 일이 아닙니다. 저는 플러그인을 만들지 않았습니다 ... 여기에 사용하고있는 것은 : class Core_SculpturesController extends Core_Controller_Action_Standard {' –

+0

예, 컨트롤러 클래스에서 아래 코드를 사용하여 액션 이름을 찾을 수 있습니다 : $ front = Zend_Controller_Front :: getInstance(); $ action = $ front-> getRequest() -> getActionName(); 그러나 routeShutdown() 메서드를 사용해야하는 것보다 경로를 다른 작업으로 돌리려는 경우. 질문이 있으면 알려주십시오. –

+0

감사합니다 Jitendra! –