git.schokokeks.org
Repositories
Help
Report an Issue
tor-webwml.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
0a06a05e3
Branches
Tags
bridges
docs-debian
jobs
master
press-clips
tor-webwml.git
include
fa
side.wmi
make the farsi translations include sidenav, header, footer, navigation so they can use the right to left css and even look correct.
Andrew Lewman
commited
0a06a05e3
at 2011-08-29 04:12:07
side.wmi
Blame
History
Raw
#! /usr/bin/wml <: use strict; :> <: use warnings; :> #use "perl-globals.wmi" #use "links.wmi" #use "versions.wmi" #use "sidenav.wmi" <div class="img-shadow"> <div id="sidenav"> <: # recursively search menu structure to see if it contains a given page sub containsSub($$); sub containsSub($$) { my ($elements, $page) = @_; for my $ele (@{$elements}) { if (containsSub($ele->{'subelements'},$page)){ return 1; } elsif ($page eq $ele->{'url'}) { return 1; } } return 0; } # generate navigation menu sub printNavMenu($$$); sub printNavMenu($$$) { my ($navmenu, $page, $lang) = @_; print '<ul>'."\n"; for my $navmenu (@{$navmenu}) { # this menu entry is the current (active) page if ($navmenu->{'url'} eq $page) { # the current page has nested menu elements if ($navmenu->{'subelements'}) { # menu has dropdown printf '<li class="dropdown active"><a class="active" href="%s">%s</a></li>'."\n", pageToURL($navmenu->{'url'}, $lang), $navmenu->{'txt'}; print '<li>'."\n"; printNavMenu($navmenu->{'subelements'},$page,$lang); print '</li>'."\n"; # the current (active) page does not have sub elements } else { printf '<li class="active"><a class="active" href="%s">%s</a></li>'."\n", pageToURL($navmenu->{'url'}, $lang), $navmenu->{'txt'}; } # a subelement of this menu item is the current (active) page } elsif (containsSub($navmenu->{'subelements'}, $page)) { printf '<li class="dropdown"><a class="active" href="%s">%s</a></li>'."\n", pageToURL($navmenu->{'url'}, $lang), $navmenu->{'txt'}; print '<li>'."\n"; #encapsulate subelements # recurse to generate the expanded menu printNavMenu($navmenu->{'subelements'},$page,$lang); print '</li>'."\n"; #encapsulate subelements # the menu entry is not active and does not enclose the active page } else { # if there are subelements, set collapsed style if ($navmenu->{'subelements'}) { printf '<li class="dropdown"><a href="%s">%s</a></li>'."\n", pageToURL($navmenu->{'url'}, $lang), $navmenu->{'txt'}; # regular menu entry } else { printf '<li><a href="%s">%s</a></li>'."\n", pageToURL($navmenu->{'url'}, $lang), $navmenu->{'txt'}; } } } print '</ul>'."\n"; } my $lang = "$(LANG)"; use Cwd; use Cwd 'abs_path'; use File::Spec; # get document path from site root my $path = File::Spec->abs2rel(getcwd(),abs_path("$(DOCROOT)")); my $page = $WML_SRC_BASENAME; printNavMenu($sidenav, $path.'/'.$page, $lang); :> </div> <!-- END SIDENAV --> </div> <!-- END IMG-SHADOW -->