Freemarker szablon menu głównego.

0

Witam. Mam menu główne, które jest zasadniczo takie samo, dla każdej strony, z pewną drobną różnicą mianowicie jeśli wejdziemy na stronę o nas to podświetlany jest w menu głównym przycisk o nas. Mógłbym zrobić szablon z tym menu głównym dla wszystkich podstron i nie powielać już na tych podstronach kodu. Jednak nie wiem co zrobić z tym podświetleniem. Menu przedstawia się następująco:

	<header>
		<div class="container">
			<div class="navbar navbar-static-top">
				<div class="navigation">
					<nav>
						<ul class="nav topnav bold">
							<li class="dropdown active"><a href="<@spring.url '/' />">Strona
									główna</a></li>
							<li class="dropdown"><a href="<@spring.url '/about' />">O
									nas</a></li>
							<li class="dropdown"><a href="#">Nasza oferta <i
									class="icon-angle-down"></i></a>
								<ul class="dropdown-menu bold">
									<li><a href="<@spring.url '/accountoffer' />">Rachunki
											osobiste</a></li>
									<li><a href="<@spring.url '/investment' />">Oszczędności</a></li>
								</ul></li>
							<li class="dropdown"><a href="<@spring.url '/contact' />">Kontakt</a></li>
							<li class="dropdown"><a href="<@spring.url '/login' />">Zaloguj
							</a></li>
						</ul>
					</nav>
				</div>
			</div>
		</div>
	</header> 

I tutaj przykładowo jesteśmy na stronie "Strona główna" i ma on klasę w css active przez co jest podświetlony:

							<li class="dropdown active"><a href="<@spring.url '/' />">Strona
									główna</a></li> 

Wtedy pozostałe podstrony mają klasę zwykłą dropdown. Czy da się jakoś zrealizować, żebym miał szablon tego menu a na podstronach już jakoś ustawiał, który element na być podświetlony? Czy nie ma takiej możliwości?

1

Stwórz sobie macro z parametrem i potem używaj tego na wybranych stronach. Ewentualnie można zawsze stworzyć sobie skrypt w js, który ustawi Ci klasę active na podstawie adresu w przeglądarce.
Gdzieś kiedyś czytałem czy ktoś mi mówił, że informacja o aktywnym menu powinna iść z serwera.

 
<#macro menu active>
<#if active='main'>
<li class="dropdown active"><a href="<@spring.url '/' />">Strona
                                    główna</a></li>
<#else>
<li class="dropdown"><a href="<@spring.url '/' />">Strona
                                    główna</a></li>
</#if>
</#macro>

Użycie
<#import '....ftl' as m/>
<@m.menu 'main'/>

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.