Author: runa Date: 2011-03-31 11:33:20 +0000 (Thu, 31 Mar 2011) New Revision: 24517
Added: website/trunk/include/pl/head.wmi website/trunk/include/pl/side.wmi Log: add these files as well
Added: website/trunk/include/pl/head.wmi =================================================================== --- website/trunk/include/pl/head.wmi (rev 0) +++ website/trunk/include/pl/head.wmi 2011-03-31 11:33:20 UTC (rev 24517) @@ -0,0 +1,142 @@ +#! /usr/bin/wml +<: use strict; :> +<: use warnings; :> +#use "perl-globals.wmi" +#use "links.wmi" +#use "versions.wmi" +#use "navigation.wmi" + +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <title>$(TITLE)</title> + <link rel="shortcut icon" type="image/x-icon" href="$(IMGROOT)/favicon.ico"> + <ifneq "$(REDIRECT)" "" "<meta http-equiv="refresh" content="0;url=$(DOCROOT)/$(REDIRECT)">"> + <ifneq "$(REDIRECT_GLOBAL)" "" "<meta http-equiv="refresh" content="0;url=$(REDIRECT_GLOBAL)">"> + <ifeq "$(ANNOUNCE_RSS)" "yes" "<link rel="alternate" title="Tor Project OR-announce" href="http://rss.gmane.org/gmane.network.onion-routing.announce" +type="application/rss+xml">"> + + # begin WML to generate css/js paths + <ifneq "$(STYLESHEET)" "" "<link rel="stylesheet" type="text/css" href="$(DOCROOT)/$(STYLESHEET)">"> + <ifeq "$(STYLESHEET)" "" "<link rel="stylesheet" type="text/css" href="$(DOCROOT)/css/master.css">"> + + #<link href="css/master.css" rel="stylesheet" type="text/css"> + <!--[if lte IE 7]> + <link rel="stylesheet" type="text/css" href="$(DOCROOT)/css/ie7-and-down.css"> + <![endif]--> + <!--[if IE 6]> + <link rel="stylesheet" type="text/css" href="$(DOCROOT)/css/ie6.css"> + <![endif]--> +# <script language="javascript" type="text/javascript" src="$(DOCROOT)/global.js"></script> + # end WML to generate css/js paths + + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <meta name="author" content="The Tor Project, Inc."> + <meta name="keywords" content="anonymity online, tor, tor project, censorship circumvention, traffic analysis, anonymous communications research"> +</head> +<body> +<div id="wrap"> + <div id="header"> + <h1 id="logo"><a href="<page index>">Tor</a></h1> + # navigation menu generation + <div id="nav"> + <ul> + <:{ + # create a hash and maintain order of keys + my %navigation; + my @keys; + while (@navigation) { + my $key = shift @navigation; + my $val = shift @navigation; + push @keys, $key; + $navigation{$key} = $val; + } + + my $page = $WML_SRC_BASENAME; + my $lang = "$(LANG)"; + + for my $key (@keys) { + my ($dir, $base) = $key =~ m,^(?:(.*)/)?(.*?)$,; + + # in directory of active link, set class active + my $class; + if ((defined $dir) and ($WML_SRC_DIRNAME =~/$dir/) or ($WML_SRC_BASENAME eq $base)) { + $class = 'class="active"'; + } else { + $class = ''; + } + + $dir = '.' unless defined $dir; + + # translated version + if (-e "$(DOCROOT)/$dir/$lang/$base.wml") { + printf '<li><a '.$class.' href="%s">%s</a></li>'."\n", + stripDotSlashs("$(DOCROOT)/$dir/$base.html.$(LANG)"),$navigation{$key}; + } + # english version + elsif (-e "$(DOCROOT)/$dir/en/$base.wml") { + printf '<li><a '.$class.' href="%s">%s</a></li>'."\n", + stripDotSlashs("$(DOCROOT)/$dir/$base.html"), $navigation{$key}; + } + # full url + elsif ($key =~/^http/) { + printf '<li><a href="%s">%s</a></li>'."\n", $key, $navigation{$key}; + } else { + warn "$WML_SRC_FILENAME has a [page $key] (parses to +docdir: $(DOCROOT)/; dir: $dir; base: $base -> $(DOCROOT)/$dir/$lang/$base.wml), but that doesn't exist."; + } + } + }:> + </ul> + </div> + <!-- END NAV --> + # end navigation generation + <div id="calltoaction"> + <ul> + <:{ + my %calltoaction; + my @keys; + while (@calltoaction) { + my $key = shift @calltoaction; + my $val = shift @calltoaction; + push @keys, $key; + $calltoaction{$key} = $val; + } + + my $page = $WML_SRC_BASENAME; + my $lang = "$(LANG)"; + for my $key (@keys) { + my ($dir, $base) = $key =~ m,^(?:(.*)/)?(.*?)$,; + + # in directory, set active + my $class; + if ((defined $dir) and ($WML_SRC_DIRNAME =~/$dir/) or ($WML_SRC_BASENAME eq $base)) { + #if ($WML_SRC_BASENAME eq $base) { + $class = 'class="active"'; + } else { + $class = ''; + } + + $dir = '.' unless defined $dir; + # try to use a translated version + if (-e "$(DOCROOT)/$dir/$lang/$base.wml") { + printf '<li class="donate"><a '.$class.' href="%s">%s</a></li>'."\n", + stripDotSlashs("$(DOCROOT)/$dir/$base.html.$(LANG)"),$calltoaction{$key}; + } + # default to english version + elsif (-e "$(DOCROOT)/$dir/en/$base.wml") { + printf '<li class="donate"><a '.$class.' href="%s">%s</a></li>'."\n", + stripDotSlashs("$(DOCROOT)/$dir/$base.html"), $calltoaction{$key}; + } else { + warn "$WML_SRC_FILENAME has a [page $key] (parses to docdir: $(DOCROOT)/; dir: $dir; base: $base -> $(DOCROOT)/$dir/$lang/$base.wml), but that doesn't exist."; + } + } + }:> + </ul> + </div> + <!-- END CALLTOACTION --> + </div> + <!-- END HEADER --> + +#<ifneq "$(REDIRECT)" "" "Redirecting to <a href="$(DOCROOT)/$(REDIRECT)">$(DOCROOT)/$(REDIRECT)</a>."> +#<ifneq "$(REDIRECT_GLOBAL)" "" "Redirecting to <a href="$(REDIRECT_GLOBAL)">$(REDIRECT_GLOBAL)</a>.">
Added: website/trunk/include/pl/side.wmi =================================================================== --- website/trunk/include/pl/side.wmi (rev 0) +++ website/trunk/include/pl/side.wmi 2011-03-31 11:33:20 UTC (rev 24517) @@ -0,0 +1,91 @@ +#! /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 -->
tor-commits@lists.torproject.org