2017-10-23 1 views
0

grav에 페이지를 만들고 싶습니다. 컨텐츠 영역과 사이드 바 영역이 있습니다.grav 모듈 페이지 - 별도 컨텐츠 및 사이드 바

콘텐츠 및 사이드 바 모듈을 루프하고 표시하는 템플릿을 나타내는 modular.md 루트 템플릿에 사용하고 싶습니다.

내 문제는 : 콘텐츠와 사이드 바를 구분하는 방법입니다.

내 템플릿은 다음과 같습니다

{% block body %} 
    {% block content %} 
    <section id="info"> 
    <div class="container"> 
     <div class="row"> 
     <div class="col-sm-12"> 
      <div class="row"> 
      <div class="col-sm-8"> 
       <div id="content" class="site-content bg"> 
       <h2 class="heading">{{ page.title }}</h2> 
       {{ page.content }} 
       {% for module in page.collection() %} 
        {{ module.content }} 
       {% endfor %} 
       </div> 
      </div> 
      <div id="sidebar" class="col-sm-4 sidebar-inner"> 
       {% for module in page.collection() %} 
       {{ module.content }} 
       {% endfor %} 
      </div> 
      </div> 
     </div> 
     </div> 
    </div> 
    </div> 
    </section> 
{% endblock %} 
{% endblock %} 

이 무엇을 달성하려고하는 것은, 모두 page.collections에 필터를 사용하는 것입니다 그래서 한 경우에만 "내용"(taxonomy.tag 여기에 내 생각이었다) 것을 다른 경우에는 사이드 바 만 사용됩니다. 이름 지정 규칙 (사이드 바 모듈은 고정 된 접두사가 있음)을 사용할 수는 있지만 알아낼 수는 없습니다.

답변

0

괜찮습니다. 모듈의 폴더 이름에 '사이드 바'를 포함하고 module.folder 이름을 필터링합니다. 나는 더 나은 해결책이 있다고 확신한다! 당신이 (내 생각) 할 수있는 일

<section id="info"> 
    <div class="container"> 
    <div class="row"> 
     <div class="col-sm-12"> 
     <div class="row"> 
      <div class="col-sm-8"> 
      {% if page.content %} 
       <div id="content" class="site-content bg"> 
       <h2 class="heading">{{ page.title }}</h2> 
       {{ page.content }} 
       </div> 
      {% endif %} 

      {% for module in page.collection() %} 
       {% if 'sidebar' not in module.folder %} 
       {{ module.content }} 
       {% endif %} 
      {% endfor %} 
      </div> 
      <div id="sidebar" class="col-sm-4 sidebar-inner"> 
      {% for module in page.collection() %} 
       {% if 'sidebar' in module.folder %} 
       {{ module.content }} 
       {% endif %} 
      {% endfor %} 
      </div> 
     </div> 
     </div> 
    </div> 
    </div> 
0

sidebar: true 

그런 다음 당신이 후

{% for module in page.collection() %} 
    {% if page.header.sidebar %} 
     {{ module.content }} 
    {% endif %} 
{% endfor %} 
+0

같은 컬렉션에 그 값을 필터링 할 수 있습니다 모듈의 fromtmatter에 값을 설정 읽는 중 : https://learn.getgrav.org/content/collections#multiple-collections 메인 콘텐츠 및 별도의 C 컬렉션을 만들 수 있다고 생각합니다. 이 방법으로 사이드 바 콘텐츠를위한 ollection – user26432

관련 문제