2011-05-12 10 views
2

현재 Lift에서 현재 페이지를 확인할 수 있습니까? 장고현재 메뉴 항목 강조 표시

는, 예를 들어, 내 기본 템플릿에 나는이 같은 간단한 검사를했다 : 컨텍스트 변수 main_navigation로 설정되어 무엇을 결정하는 경우 여기를

<li {% ifequal main_navigation "home" %} class="selected"{%endifequal%}> <a href="{% url home %}">Home</a> </li> <li {% ifequal main_navigation "risk"%}class="selected"{%endifequal%}> <a href="{% url risk %}">Risk</a> </li> <li {% ifequal main_navigation "contact" %}class="selected"{%endifequal%}> <a href="{% url contact %}">Contact</a> </li> 

.

답변

5

귀하의 메뉴에 사이트 맵을 사용하고 있다고 가정합니다.

Menu.builder 스 니펫으로 메뉴를 렌더링 할 때 추가 매개 변수를 사용하여 메뉴를 추가 조정할 수 있습니다. 이 예제는 메뉴의 첫 번째 레벨 만 렌더링하고 현재 페이지 인 경우 class current를 메뉴 항목에 추가합니다.

디자이너 친화적 예 :

<div class="lift:Menu.builder?level=0;expand=false;li_item:class=current"></div> 

또는

<lift:Menu.builder li_item:class="selected" level="0" expand="false" /> 

자세한 내용은 리프트 위키 참조

: 0 모든 것을 보여줄 것 같다 http://www.assembla.com/wiki/show/liftweb/SiteMap

+0

수준 -뿐 아니라 최고 수준을 ... – drozzy

+0

필자는 예제를 약간 단순화 시켰다고 생각한다. expand = false도 사용한다. 나는 이것을 추가하기 위해 나의 anwser를 편집 할 것이다. 그런 다음 최상위 메뉴에 숨겨져 있지 않고 하위 메뉴가 아닌 사이트 맵의 모든 항목이 표시됩니다. 부 메뉴가있는 사이트 맵의 좋은 예는 https://github.com/lift/examples/blob/master/combo/example/src/main/scala/bootstrap/liftweb/Boot.scala를 참조하십시오. –

+0

expand = false는 도움이되지 않습니다. ,하지만 괜찮아요 내가 그것에 대한 또 다른 질문을 열어 : http://stackoverflow.com/questions/5993350/how-to-highlight-parent-of-the-current-page – drozzy

1

Lift의 SiteMap 및 메뉴 기능을 사용하는 경우이 기능은 자동으로 처리됩니다. 여기에서 그것에 대해 읽을 수 있습니다 : http://simply.liftweb.net/index-3.2.html#toc-Subsection-3.2

스 니핏 (템플릿 아님)에서 더 넓은 질문에 답하려면 경로 속성을 포함하는 HTTPContext를 반환하는 LiftRules.context를 사용할 수 있습니다.

관련 문제