동적으로 컨텐츠를 내 모달에로드하고 종종 내 사이트에서 이미 일반적으로 액세스 할 수있는 페이지입니다.CakePHP - 모달 레이아웃을 갖는 방법
컨트롤러/액션을 재사용하고 모달로로드 할 수 있기를 원하지만 분명히 컨트롤러가 이미 레이아웃을 사용하고 있습니다. 따라서 모달에 페이지를로드 할 때 내 사이트의 머리글과 바닥 글은 모달에 다시 있습니다. 나는 원하지 않습니다.
하나 개의 솔루션 나는 그것이 작동 할 수 있습니다 생각하지만, 더러운 해결 방법처럼 보인다, 나의의 AppController에이 페이지에 대한 모달 호출 (아닌 일반 전화 말한다 URL 매개 변수에 대한 검사를하는 것입니다). 그런 다음 특수 모달 글꼴로 레이아웃을 재정의합니다. 그래서 난 내 일반 레이아웃의 CSS 모두를 다시 정의 할 필요는 없습니다
// modal_layout.css
@import url("normal_layout.css");
.header, .footer {display:none;}
하지만 난 그냥 부분을 숨길 수 :
//app_controller.php
public function beforeRender() {
if (isset($this->params['passed']['_modal'])) {
$this->layout = 'modal';
}
}
// In my jQuery call to open the modal:
myModal.load('users/view/5/_modal').dialog('open');
그런 다음
modal.ctp
레이아웃에 내가 좋아하는 뭔가를 보이는 스타일 시트를 포함 할 것 나는 보여주고 싶지 않아.
이 작업은 다소 어리석은 방법으로 보입니다. 작동하는지는 확실치 않지만, CakePHP를 사용하기 전에 반드시해야 할 일이 있습니다.
그런데보기가없는 Ajax 요청 일지라도 레이아웃,보기, CSS, JS 등을 요청하지 않겠습니까? – BadHorsie