Dynamically add sidebar items for programs
This adds sidebar items for programs as appropriate. From the docstring:
A menu item is generated for each program that is currently
running. The public page for each program is added as menu item,
as well as all public documents for that program.
Additionally, we allow access to a program's public page to everyone,
even if the user is not logged in.
Patch by: Sverre Rabbelier
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
<title>Google Summer of Code 2008</title>
</head>
<body>
<div id="login">
<a href="http://code.google.com/p/soc/issues/list">Report bugs</a> |
<a href="/">Sign in</a>
</div>
<div id="header">
<div id="logo">
<a href="/"><img src="/svn/trunk/mockups/content/images/GSOC.jpg" alt="Google Summer of Code"/></a>
<span title=" TODO: logo can change from year to year, program to program " class="popup">
<small>*</small>
</span>
</div>
<div id="title">
GSoC 2009 Community
</div>
<div id="breadcrumbs">
<span class="item">
<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
</span>
>
<span class="item">
<a href="/svn/trunk/mockups/programs/home/gsoc2009/gsoc2009home.html">Google Summer of Code 2009</a>
</span>
>
<span class="selected">
<a href="/svn/trunk/mockups/programs/community/gsoc2009/gsoc2009comm.html">Community</a>
</span>
</div>
</div>
<div id="side" dir="ltr">
<div id="menu">
<ul>
<li>
<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
<ul>
<li>
<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign In)</a>
</li>
</ul>
<ul>
<li>
<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
<ul>
<li>
<a class="selected" href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
</li>
<li>
<a href="/svn/trunk/mockups/program/docs/gsoc2009/faqs/faqs.html">Program FAQs</a>
</li>
<li>
<a href="/svn/trunk/mockups/program/docs/gsoc2009/tos/tos.html">Terms of Service</a>
</li>
</ul>
</li>
<li>
<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
<ul>
<li>
<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
</li>
<li>
<a href="/svn/trunk/mockups/program/docs/ghop2008/faqs/">Program FAQs</a>
</li>
<li>
<a href="/svn/trunk/mockups/program/docs/ghop2008/rules/rules.html">Contest Rules</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div id="search">
<form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
<input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
<input type="hidden" name="cof" value="FORID:0" />
<div class="header">
Search Google Open Source:
</div>
<input name="q" type="text" size="20" />
<input type="submit" name="sa" value="Search" />
<br/>
</form>
<script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
</script></form>
</div>
<div id="badge">
<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
<span title=" TODO: need a Melange logo " class="popup">
<small>*</small>
</span>
</div>
</div>
<div id="body">
<div style="line-height: 140%;">
<p>
This is generic HTML that can be configured via the site administration
interface.
</p>
<h2>Mentoring Organizations Participating in
<i>Google Summer of Code</i> 2009</h2>
<p class="todo">
TODO: tabbed control for browsing organizations who participated in
this historical program, by programming language, primary area of interest,
alphabetical, etc. (and definitely not as ugly as this quick mockup...)
</p>
<p>
<table class="tabletabs">
<tr>
<td class="selectedtab">Alphabetical</td>
<td class="tab">Area of Interest</td>
<td class="tab">Programming Language</td>
<td class="tab">License</td>
<td class="notab"></td>
</tr>
</table>
<table class="programorgs" style="position: relative">
<tr>
<td class="triangle">
<img src="/svn/trunk/mockups/content/images/opentriangle.gif" alt="A open"/>
</td>
<td class="letter">
A
</td>
<td></td>
</tr>
<tr>
<td colspan="2"></td>
<td>
<div>
<a rel=nofollow href="/org/about/gsoc2009/abisource/abisource.html">AbiSource</a>
</div>
<div>
<a rel=nofollow href="/org/about/gsoc2009/adium/">Adium</a>
</div>
<div>
<a rel=nofollow href="/org/about/gsoc2009/asf/">The Apache Software Foundation</a>
</div>
<div>
<a rel=nofollow href="/org/about/gsoc2009/argouml/">ArgoUML</a>
</div>
<div>
<a rel=nofollow href="/org/about/gsoc2009/atheme/">atheme.org</a>
</div>
<div>
<a rel=nofollow href="/org/about/gsoc2009/audacity/">Audacity</a>
</div>
</td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="B closed"/>
</td>
<td>
B
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
C
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
D
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
E
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
F
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
G
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
H
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
I
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
J
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
K
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
L
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
M
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
N
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
O
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
P
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
Q
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
R
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
S
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
T
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
U
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
V
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
W
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
X
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
Y
</td>
<td></td>
</tr>
<tr>
<td>
<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
</td>
<td>
Z
</td>
<td></td>
</tr>
</table>
</p>
</div>
<div id="footer" dir="ltr">
<div class="text">
©2008 Google -
<a href="http://www.google.com/">Google Home</a> -
<a href="http://www.google.com/privacy.html">Privacy Policy</a>
</div>
</div>
</div>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct="UA-4291635-1"; // code.google.com site-wide tracking
_uanchor=1;
_uff=0;
urchinTracker();
</script>
</body>
</html>