Fix login/logout/etc and misc other bits and pieces
[disorder] / templates / macros.tmpl
1 This file is part of DisOrder.
2 Copyright (C) 2008 Richard Kettlewell
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful, but
10 WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
17 USA
18
19
20 ------------------------------------------------------------------------
21 Standard macros
22
23
24 This file is read before any other template. Its output is discarded
25 but side effects (definitions of macros) are retained. To override it,
26 create /etc/disorder/macros.tmpl that includes this file by absolute path
27 and then redefines macros as desired.
28 ------------------------------------------------------------------------
29
30
31 @# Standard width and height of an image
32 @define {width} {} {16}
33 @define {height} {} {16}
34
35 @# Standard <head> text
36 @# @name is the name of this page, for the <title> element
37 @define {stdhead} {name}
38 {@quiethead
39 <title>@label{@name.title}</title>}
40
41 @# Non-displaying <head> text
42 @define {quiethead} {}
43 { <link rel=stylesheet
44 type="text/css"
45 href="@label{url.static}/disorder.css">}
46
47 @# Standard menu
48 @# @current is the name of the current page, e.g. choosealpha, login
49 @define {stdmenu} {current}
50 { <p class=menubar>
51 @menuitem{@current}{playing}{true}
52 @menuitem{@current}{recent}{true}
53 @menuitem{@current}{choose}{@right{play}}
54 @menuitem{@current}{manage}{true}
55 @menuitem{@current}{login}{true}
56 @menuitem{@current}{help}{true}
57 @menuitem{@current}{about}{true}
58 </p>
59 <hr>
60 }
61
62 @# Menu entry
63 @# Used by @stdmenu
64 @# @current is the name of the current page (not necessarily the action that
65 @# got there!)
66 @# @name is the name of the menu item
67 @# @available is true if the menu item is available, else false
68 @#
69 @define {menuitem} {current name available}
70 {@if{@available}
71 { <a @if{@eq{@current}{@name}}
72 {class=activemenu}
73 {class=inactivemenu}
74 @if{@eq{name}{playing}}
75 { href="@url"}
76 { href="@url?action=@name"}
77 title="@label{menu.@q{@name}verbose}">@label{menu.@name}</a>}
78 { <span class=invalidmenu
79 title="@label{menu.@q{@name}verbose}">@label{menu.@name}</span>}}
80
81
82 @# Standard footer text
83 @define {credits} {}
84 {<p class=credits>
85 <a href="http://www.greenend.org.uk/rjk/disorder/"
86 title="DisOrder web site">DisOrder
87 version @version</a>
88 &copy; 2003-2008 Richard Kettlewell et al
89 </p>}
90
91 @# Expand to the time that @id will be played
92 @# @what is the section
93 @# @id is the track ID
94 @define {mwhen} {what id}
95 {@when{@id}</td>}
96
97 @# Expand to the 'who' field for @id
98 @# @what is the section
99 @# @id is the track ID
100 @define {mwho} {what id}
101 {@if{@eq{@who{@id}}{}}
102 {@if{@eq{@state{@id}}{random}}
103 {@label{@what.randomtrack}}
104 {&nbsp;}}
105 {@who{@id}}}
106
107 @# Expand to the artist for @track
108 @# @what is the section
109 @# @track is the track name
110 @define {martist} {what track}
111 {@right{play}
112 {<a class=directory
113 href="@url?action=choose&amp;dir=@urlquote{@dirname{@dirname{@track}}}"
114 title="@label{playing.artistverbose}">@part{@track}{artist}{short}</a>}
115 {<span class=directory
116 title="@part{@track}{artist}">@part{@track}{artist}{short}</span>}}
117
118 @# Expand to the album for @track
119 @# @what is the section
120 @# @track is the track name
121 @define {malbum} {what track}
122 {@right{play}
123 {<a class=directory
124 href="@url?action=choose&amp;dir=@urlquote{@dirname{@track}}"
125 title="@label{playing.albumverbose}">@part{@track}{album}{short}</a>}
126 {<span class=directory
127 title="@part{@track}{album}">@part{@track}{album}{short}</span>}}
128
129 @# Expand to the title for @track
130 @# @what is the section
131 @# @track is the track name
132 @define {mtitle} {what track}
133 {<span title="@part{@track}{title}">@part{@track}{title}{short}</span>}
134
135 @# As @mtitle but make a link to play the track
136 @# @what is the section
137 @# @track is the track name
138 @define {mtitleplay} {what track}
139 {<a title="@part{@track}{title}" href="@url?action=play&#38;file=@urlquote{@track}&#38;back=@urlquote{@thisurl}">@part{@track}{title}{short}</a>}
140
141 @# Expand to the remove/scratch entry for @id
142 @# @what is the section
143 @# @id is the track ID
144 @define {mremove} {what id}
145 {@if{@removable{@id}}
146 {<a class=imgbutton
147 href="@url?action=remove&#38;id=@id@back">
148 <img class=button src="@image{remove}"
149 width=@width height=@height
150 title="@label{@what.removeverbose}"
151 alt="@label{@what.scratch}">
152 </a>}
153 {<img class=button src="@image{noremove}"
154 width=@width height=@height
155 title="@label{@what.removeverbose}"
156 alt="@label{@what.scratch}">}}
157
158 @# Expand to a move button
159 @# @id is the track ID
160 @# @dir should be a direction: up, upall, down or downall
161 @# @delta should be the distance, +ve for up and -ve for down
162 @# This macro calls @movable to check that the move is possible.
163 @define {mmove} {id dir delta}
164 {@if{@movable{@id}{@delta}}
165 {<a class=imgbutton
166 href="@url?action=move&#38;id=@id&#38;delta=@delta@back">
167 <img class=button src="@image{@dir}"
168 width=@width height=@height
169 title="@label{playing.@q{@dir}verbose}"
170 alt="@label{playing.@dir}">
171 </a>}
172 {<img class=button src="@image{no@dir}"
173 width=@width height=@height
174 title="@label{playing.@q{@dir}verbose}"
175 alt="@label{playing.@dir}">}}
176
177 Local variables:
178 mode:sgml
179 sgml-always-quote-attributes:nil
180 sgml-indent-step:1
181 sgml-indent-data:t
182 indent-tabs-mode:nil
183 fill-column:79
184 End: