1 from django
import template
2 from django
.utils
.safestring
import mark_safe
3 from django
.utils
.translation
import ugettext
4 from django
.utils
.translation
import ugettext_lazy
as _
8 register
= template
.Library()
15 '/user/subscriptions/',
16 '/publisher/podcast/',
23 ('/login/', _('Login')),
24 ('/register/', _('Register')),
26 ('/contribute/', _('Contribute')),
27 ('/developer/', _('Development')),
28 ('/privacy/', _('Privacy Policy')),
29 ('/online-help', _('Help')),
32 ('/directory/', _('Directory')),
33 ('/podcast/', _('Podcast')),
34 ('/search/', _('Search')),
35 ('/missing/', _('Missing Podcast')),
36 ('/lists/', _('Podcast Lists')),
37 ('/user/subscriptions/', _('User subscriptions')),
38 ('/suggestions/', _('Suggestions')),
40 ('/directory/+flattr', _('Flattr')),
41 ('/directory/+license', _('License')),
43 ('/toplist/', _('Podcasts')),
44 ('/toplist/episodes', _('Episodes')),
46 (_('Subscriptions'), (
47 ('/subscriptions/', _('Subscriptions')),
48 ('/favorites/', _('Favorite Episodes')),
49 ('/tags/', _('My Tags')),
50 ('/devices/', _('Devices')),
51 ('/device/', _('Device')),
52 ('/history/', _('History')),
55 ('/share/', _('Overview')),
56 ('/share/favorites', _('Favorite Episodes')),
57 ('/share/me', _('My Userpage')),
58 ('/user/subscriptions/', _('Subscriptions')),
59 ('/share/lists/', _('Podcast Lists')),
62 ('/account/', _('Account')),
63 ('/account/privacy', _('Privacy')),
66 ('/publisher/', _('Home')),
67 ('/publisher/advertise', _('Advertise')),
68 ('/publisher/link/', _('Link to gpodder.net')),
69 ('/publisher/podcast/', _('Podcast')),
74 def main_menu(selected
):
77 for label
, items
in MENU_STRUCTURE
[1:]:
78 uris
= [uri
for uri
, caption
in items
]
81 links
.append((items
[0][0], label
, uris
))
84 for uri
, caption
, subpages
in links
:
85 if selected
in subpages
or ('/' in subpages
and not found_section
):
86 items
.append('<li class="active"><a href="%s">%s</a></li>' % \
87 (uri
, ugettext(caption
)))
89 items
.append('<li><a href="%s">%s</a></li>' % (uri
, ugettext(caption
)))
94 def get_section_items(selected
):
95 for label
, items
in MENU_STRUCTURE
:
96 if selected
in (uri
for uri
, caption
in items
):
99 # If we arrive here, we cannot find the page items, so return a faked one
100 return list(MENU_STRUCTURE
[0][1]) + [
101 (selected
, selected
),
105 def section_menu(selected
, title
=None):
108 for uri
, caption
in get_section_items(selected
):
110 if title
is not None:
112 title
= title
[:33] + '...'
114 if uri
in HIDDEN_URIS
:
115 items
.append('<li class="active">%s</li>' % ugettext(caption
))
117 items
.append('<li class="nav-header">%s</li>' % ugettext(caption
))
119 items
.append('<li class="active"><a href="%s">%s</a></li>' % \
120 (uri
, ugettext(caption
)))
122 if uri
in HIDDEN_URIS
:
126 items
.append('<li class="nav-header">%s</li>' % ugettext(caption
))
128 items
.append('<li><a href="%s">%s</a></li>' % (uri
, ugettext(caption
)))