2017-03-07 6 views
0

필자는 10 월을 보았고, 기본 레이아웃을 만들고 필요한 부분을 조건부로 포함 할 수있었습니다. 차라리 레이아웃을 중첩시키고 싶습니다.템플릿을 10 월 CMS에 중첩 할 수 있습니까?

I.E. root 레이아웃은 다른 레이아웃에 의존하지 않지만 nav 레이아웃은 root 레이아웃을 참조합니다.

이것이 가능합니까?

편집 : ExpressionEngine를 교체 찾고 있어요 . EE에서 html>head+body 태그를 사용하여 root 레이아웃을 가질 수 있습니다. 그런 다음 탐색에 추가하지만 root 레이아웃을 ITS 레이아웃으로 참조하는 nav 레이아웃을 가질 수 있습니다. 따라서 nav에 의해 참조되는 root으로 끝나거나 [page]에 의해 직접 참조 될 수 있습니다 (탐색이 필요하지 않거나 필요하지 않은 경우). 중첩 된 레이아웃을 사용하면 부분적으로 layout 또는 page을 포함하여 조건부로 유지할 수 있습니다. 제 의견으로는 더 깨끗한 마크 업입니다. 또한 rootnav은 콘텐츠 배치를 나타 내기 위해 {% page %} 태그를 갖습니다.

그래서 이상적으로 ...

루트 레이아웃

<html> 
<head>[common tags]</head> 
<body> 
    {% page %} 
</body> 
</html> 

탐색 레이아웃

layout="root" 
== 
<nav>[markup]</nav> 
{% page %} 

그래서 때 페이지 참조가 root 전 탐색이 표시되지 않습니다. 그러나, nav{% page %}을 참조하는 페이지가 nav에 삽입되고 nav + {% page %}의 내용이 {% page %} 콘텐츠가 root으로 전달되는 경우.

정보가 도움이되기를 바랍니다.

+2

저는 '중첩 레이아웃'으로 무엇을 찾고 있는지 잘 모르시겠습니까? 더 깊이 설명하고 예제를 제공 할 수 있습니까? – LukeTowers

+0

@LukeTowers 질문 업데이트를 참조하십시오. – Jared

답변

1

중첩 된 레이아웃은 현재로서는 지원되지 않지만 placeholderspartials으로 수행 할 수 있습니다.

다음은 현재 내 탐색에 사용하는 예입니다.

레이아웃 /와-nav.htm :

description = "Layout with nav" 

[staticMenu nav] 
code = "header-nav" 
== 
{# Setup the navigation menus #} 
{% put headerNav %} 
    {% set hNavOptions = { 
     'submenus': true 
    } %} 
    {% partial "tmpl/nav-header" menu=nav options=hNavOptions %} 
{% endput %} 

{% partial "tmpl/header" %} 

    <!-- Content --> 
    <div id="layout-content"> 
     <div class="container"> 
      <div class="row"> 
       <div class="col-sm-12"> 
        {% page %} 
       </div> 
      </div> 
     </div> 
    </div> 

{% partial "tmpl/footer" %} 

레이아웃 /없이-nav.htm :

description = "Layout without nav" 
== 
{% partial "tmpl/header" %} 

    <!-- Content --> 
    <div id="layout-content"> 
     <div class="container"> 
      <div class="row"> 
       <div class="col-sm-12"> 
        {% page %} 
       </div> 
      </div> 
     </div> 
    </div> 

{% partial "tmpl/footer" %} 

파셜/tmpl/Header.htm으로 :

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <title>{% placeholder page_title default %}{{ this.page.title }}{% endplaceholder %} | {{ app_name }}</title> 

     {% partial "meta/icons" %} 
     {% partial "meta/seo" %} 

     {% partial "meta/styles" %} 
    </head> 
    <body class="page-{{ this.page.url | slugify }} layout-{{ this.layout.id }}"> 
     <!-- Header --> 
     <header id="home" class="header-area"> 
      {% placeholder headerNav default %} 
       <!-- headerNav not defined in page layout. --> 
      {% endplaceholder %} 
     </header>