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')),
25 ('/contribute/', _('Contribute')),
26 ('/developer/', _('Development')),
27 ('/privacy/', _('Privacy Policy')),
28 ('/online-help', _('Help')),
31 ('/directory/', _('Directory')),
32 ('/podcast/', _('Podcast')),
33 ('/search/', _('Search')),
34 ('/missing/', _('Missing Podcast')),
35 ('/lists/', _('Podcast Lists')),
36 ('/user/subscriptions/', _('User subscriptions')),
37 ('/suggestions/', _('Suggestions')),
39 ('/toplist/', _('Podcasts')),
40 ('/toplist/episodes', _('Episodes')),
42 (_('Subscriptions'), (
43 ('/subscriptions/', _('Subscriptions')),
44 ('/favorites/', _('Favorite Episodes')),
45 ('/tags/', _('My Tags')),
46 ('/devices/', _('Devices')),
47 ('/device/', _('Device')),
48 ('/history/', _('History')),
51 ('/share/', _('Overview')),
52 ('/share/favorites', _('Favorite Episodes')),
53 ('/share/me', _('My Userpage')),
54 ('/user/subscriptions/', _('Subscriptions')),
55 ('/share/lists/', _('Podcast Lists')),
58 ('/account/', _('Account')),
59 ('/account/privacy', _('Privacy')),
62 ('/publisher/', _('Home')),
63 ('/publisher/advertise', _('Advertise')),
64 ('/publisher/link/', _('Link to gpodder.net')),
65 ('/publisher/podcast/', _('Podcast')),
70 def main_menu(selected
):
73 for label
, items
in MENU_STRUCTURE
[1:]:
74 uris
= [uri
for uri
, caption
in items
]
77 links
.append((items
[0][0], label
, uris
))
80 for uri
, caption
, subpages
in links
:
81 if selected
in subpages
or ('/' in subpages
and not found_section
):
82 items
.append('<li class="active"><a href="%s">%s</a></li>' % \
83 (uri
, ugettext(caption
)))
85 items
.append('<li><a href="%s">%s</a></li>' % (uri
, ugettext(caption
)))
90 def get_section_items(selected
):
91 for label
, items
in MENU_STRUCTURE
:
92 if selected
in (uri
for uri
, caption
in items
):
95 # If we arrive here, we cannot find the page items, so return a faked one
96 return list(MENU_STRUCTURE
[0][1]) + [
101 def section_menu(selected
, title
=None):
104 for uri
, caption
in get_section_items(selected
):
106 if title
is not None:
108 title
= title
[:33] + '...'
110 if uri
in HIDDEN_URIS
:
111 items
.append('<li class="active">%s</li>' % ugettext(caption
))
113 items
.append('<li class="nav-header">%s</li>' % ugettext(caption
))
115 items
.append('<li class="active"><a href="%s">%s</a></li>' % \
116 (uri
, ugettext(caption
)))
118 if uri
in HIDDEN_URIS
:
122 items
.append('<li class="nav-header">%s</li>' % ugettext(caption
))
124 items
.append('<li><a href="%s">%s</a></li>' % (uri
, ugettext(caption
)))