2012-08-03 4 views
3

저는 회사 전체를 재 설계하기 위해 노력하고 있으며 문제가 있습니다. 우리는 Cake Framework (1.2.0.7296 RC2)를 사용하지 않는 경우 구축 중이며 견고한 레이아웃 템플릿을 만드는 최상의 솔루션을 찾으려고합니다. 내가 만든 디자인은 각 페이지에 여러 래퍼가 있습니다. 다음은 간단한 코드 버전입니다.

<body style="background:url(somebackground.png);"> 
    <div class="page"> 
    <!--Page is used to constrain the content within a specific width--> 
     <div class="header"> 
     <div class="nav"> 

     </div><!--End Nav--> 
    </div><!--End Header--> 
    <div class="content"> 
     <!--This area contains a slideshow and other info that varies from page-to-page--> 
    </div><!--End Content--> 
</div><!--End Page--> 
<div class="wrapper" style="background:url(someotherbackground.png);"> 
    <div class="page"> 
    <div class="content"> 
     <!--Additional content--> 
    </div><!--End Content--> 
    </div><!--End Page--> 
</div><!--End Wrapper--> 
</body> 

문제는 케이크 레이아웃에서는 대부분의 웹 사이트에서 사용할 수있는 $ content_for_layout이 하나 뿐이라는 점입니다. 그러나 어떻게 구조화했는지에 따라 레이아웃 템플릿을 최대한 활용하기가 어렵습니다. 내가 생각한 유일한 해결책은 다음과 같습니다.

  • 상단 div 클래스 '페이지를 헤더 다음에 닫은 다음 다른 div 클래스'page '를 추가하십시오. 그렇게하면 요소에 머리글과 탐색을 배치하고 레이아웃 템플릿에만 유지할 수 있습니다. 그 문제는 템플릿을 최대한 활용하지 못한다는 것입니다. 왜냐하면 여전히 많은 html을 반복 할 것이기 때문입니다.

이상적으로는 2 $ content_for_layout을 갖고 싶습니다. 하나는 첫 번째 페이지 아래의 콘텐츠 용이고 다른 하나는 두 번째 페이지의 콘텐츠 용입니다. 그렇게하면 레이아웃 템플릿을 최대한 활용할 수 있습니다. 그런 다음 내 페이지에 관점 콘텐츠를 배치 할 수있는 섹션이 있습니다. 이 문제에 대한 연구에서 몇 가지 해결책을 발견했습니다.

나는 이러한 최상의 솔루션 또는 내가 찾던 나에게 줄려고하는 경우에 확실하지 않다. 필자는 디자이너이자 프론트 엔드 개발자이기 때문에 PHP 지식은 제한적입니다. 케이크에 대한 나의 지식은 훨씬 제한적입니다. 나는 가장 간단한 해결책을 찾고있다.

답변

2

가능하다면 (그러나 나는 그렇지 않다고 가정합니다.) 최신 버전의 Cake (2.2.1 stable)를 사용하십시오. 2.1 이후로, Cake는 View Blocks을 지원하는데, 당신이 가진 정확한 문제를 해결합니다.

가능하지 않은 경우 컨트롤러에서 일부 변수 (렌더링 된 요소 또는 레이아웃에서 렌더링 된 요소로 전달해야하는 변수)를 설정할 수 있습니다. 레이아웃을 원한다. Controller::set으로 Controller에서 View로 전달하는 모든 변수는 레이아웃에서도 사용할 수 있습니다.