2017-03-14 6 views
0

내 웹 페이지에서 다중 레벨 메뉴를 만들려면 pdoMenu 매개 변수의 각 레벨에 대한 템플릿을 정의하는 방법이 궁금합니다.modx 혁명 pdomenu 각 레벨마다 다른 tamplate

예를 들어 메뉴의 구조는 다음과 같은 것입니다 :

<ul> 
    <li> 
    <div></div> 
    <img src="assets/img/1.png" /> 
    <a>Link 1</a> 
    <ul> 
     <li> 
     <a>Sub link 1</a> 
     </li> 
     <li> 
     <a>Sub link 2</a> 
     </li> 
    </ul> 
    </li> 
    <li> 
    <div></div> 
    <img src="assets/img/2.png" /> 
    <a>Link 2</a> 
    <ul> 
     <li> 
     <a>Sub link 1</a> 
     </li> 
     <li> 
     <a>Sub link 2</a> 
     </li> 
    </ul> 
    </li> 
</ul> 

당신이 메뉴의 첫 번째 수준을 볼 수있는이 사업부와 IMG 태그를 포함하지만 두 번째 않습니다. 그래서 pdoMenu를 통해 다른 템플릿을 정의해야합니다. 불행히도 pdoMenu 매개 변수에 대한 포괄적 인 예제가 없습니다. pdoMenu는 "& levelClass"매개 변수에 대해서만이 기능을 제공하는 것으로 보입니다.이 매개 변수는 각 레벨에 대해 CSS 클래스에 대한 증가를 제공합니다.

이 목적을 위해 다른 방법을 사용해야합니까? Pdoresources 또는 getresources?

답변

0

는 Wayfinder 당신이 탐험 수있는 몇 가지 메뉴 템플릿 옵션을 가지고있다 : 당분간, https://docs.modx.com/extras/evo/wayfinder#Wayfinder-TemplateParameters

을하지만,이 작업을 수행하는 내가 생각할 수있는 유일한 방법은의 GetResources을 사용하는 것입니다.

첫 번째 레벨에서는 깊이 레벨을 1 단계로 제한하는 간단한 getResources 호출을 사용하지만 .tpl에서는 두 번째 getResources 호출을 사용합니다.

[[!getResources? 
    &parents=`1` 
    &depth=`1` 
    &tpl=`firstLevel` 
]] 

그런 다음 firstLevel이 같이 보일 것입니다 : 예를 들어

<li> 
    <a href="[[~[[+id]]]]">[[+pagetitle]]</a> 
    [[!getResources? 
     &parents=`[[~[[+id]]]]` 
     &depth=`0` 
     &tplWrapper=`menuWrapper` 
     &tpl=`secondLevel` 
    ]] 
</li> 

menuWrapper 단지 secondLevel을 감싸고과 같습니다

<ul>[[+output]]</ul> 

secondLevel처럼 보일 것이다 :

<li> 
    <a href="[[~[[+id]]]]">[[+pagetitle]]</a> 
</li> 

이것은이 문제를 해결하는 한 가지 방법입니다. 위의 내용은 테스트되지 않았으므로이를 염두에 두시기 바랍니다. 보조 노트로

, 당신은 단지 당신이 CSS를 사용할 수있는 이미지, 예를 추가하려면 :

li ul li:first-child:before { 
    content: url('../images/image.png'); 
} 
+0

는 간단한 방법으로 ** Bruno17 **에 의해 해결되었다에 대한 reply.This 문제 주셔서 감사합니다. [여기서 볼 수 있습니다] (https://forums.modx.com/thread/101884/pdomenu-different-tamplates-for-each-level#dis-post-549481). –