2010-06-04 4 views
0

원래 웹 사이트를 만들 때 하나의 인터페이스 만 처리했지만 지금은 많은 인터페이스를 처리해야합니다.하나의 컨트롤러에 여러보기가 표시되지 않습니다.

요청마다 보낼 사이트를 감지하고 각 사이트를 다른 사이트에서 격리 할 수 ​​있지만 모든 사이트는 동일한보기를 가지고 있습니다.

동일한 컨트롤러에서 다른보기를 렌더링 할 수있는 방법이 있습니까? 같은

내가 생각 해요 뭔가 :

application 
      controller 
      model 
      site_1_view 
      site_2_view 

이 가능합니까?

+0

이렇게하면 관리하기가 매우 어려워집니다. 사이트마다 다른 종류의 예를들 수 있습니까? –

답변

0

그것은 매우 간단했다 - 내가 내 생성자에서보기 기본 경로 설정 수 있음을 발견

$this->view->setBasePath("../application/site_1_view/views"); 

그래서 public/index.php에, 나는 URL을 감지을, 따라서 응용 프로그램의 구조가 지금

$this->view->setBasePath("../application/".$siteName."/views"); 

:

기본 경로를 설정하기 위해 이름을 사용 후, 세션에서 설정 내 DB에서 이름을 감지
0

또는 : 특정 사이트에 대한 스크립트를 사용하여 Zend_View에게 다음 현재보고있는 어떤 사이트 감지하고 :

public function myAction() 
{ 
    return $this->otherAction(); 
} 

public function otherAction() 
{ 

} 
+0

강철 나는 내 목표가 아닌 사이트 사이의 행동을 중복 할 것이다. – shereifhawary

0

이 LIFO 스택

0

그냥 아이디어를 볼 수있는 새로운 스크립트 경로를 추가 설정에 의해 $view->setScriptPath(/path/to/site1/scripts/);

편집 : 내가 틀릴지도 모르지만, 가장 좋은 장소는 preDispatch 방법으로 컨트롤러 플러그인이 될 것이므로, 그 당시에는 모듈/컨트롤러/actio n을 요청했지만 아직 전달되지되었습니다 http://framework.zend.com/manual/en/zend.controller.plugins.html

관련 문제