chiark / gitweb /
more template fiddling
[disorder] / templates / macros.tmpl
index 8714a08c00516683488ab939e763dbd44bfc64dd..11ba25ccf1b1f667bcf670160ed4f2545fd871ed 100644 (file)
@@ -1,7 +1,5 @@
-@discard{
-
 This file is part of DisOrder.
-Copyright (C) 2004-2008 Richard Kettlewell
+Copyright (C) 2008 Richard Kettlewell
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -18,21 +16,87 @@ along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 USA
 
-@# Expand to @yes for the Manage page and @no for the playing page
-@define {ifmanage} {yes no}
-         {@if {@eq {@arg{action}}{manage}}
-              {@yes}
-              {@no}}
 
-@# Expand to &back=manage or to nothing
-@define {back} {}
-        {@ifmanage{&back=manage}{}}
+------------------------------------------------------------------------
+Standard macros
+
+
+This file is read before any other template.  Its output is discarded
+but side effects (definitions of macros) are retained.  To override it,
+create /etc/disorder/macros.tmpl that includes this file by absolute path
+and then redefines macros as desired.
+------------------------------------------------------------------------
+
+
+@# Standard width and height of an image
+@define {width} {} {16}
+@define {height} {} {16}
+
+@# Standard <head> text
+@#  @name is the name of this page, for the <title> element
+@define {stdhead} {name}
+        {@quiethead
+<title>@label{@name.title}</title>}
+
+@# Non-displaying <head> text
+@define {quiethead} {}
+        {<link rel=stylesheet
+      type="text/css"
+      href="@label{url.static}/disorder.css">}
+
+@# Standard menu
+@#   @current is the name of the current page, e.g. choosealpha, login
+@define {stdmenu} {current}
+        {<p class=menubar>
+@menuitem{@current}{playing}{true}
+@menuitem{@current}{choose}{@right{play}}
+@menuitem{@current}{manage}{true}
+@menuitem{@current}{login}{true}
+@menuitem{@current}{help}{true}
+@menuitem{@current}{about}{true}
+</p>
+<hr>
+}
+
+@# Menu entry
+@#  Used by @stdmenu
+@#  @current is the name of the current page (not necessarily the action that
+@#           got there!)
+@#  @name is the name of the menu item
+@#  @available is true if the menu item is available, else false
+@#  
+@define {menuitem} {current name available}  
+        {@if{@available}
+            {  <a @if{@eq{@current}{@name}}
+                     {class=activemenu}
+                     {class=inactivemenu}
+                  @if{@eq{name}{playing}}
+                     {href="@url"}
+                     {href="@url?action=@name"}
+                  title="@label{menu.@q{@name}verbose}"
+                 @label{menu.@name}</a>}
+            {  <span class=invaldmenu title="@label{menu.@q{@name}verbose}">
+    @label{menu.@name}</span>}}
+
+
+@# Standard footer text
+@define {credits} {}
+        {<p class=credits>
+  <a href="http://www.greenend.org.uk/rjk/disorder/"
+     title="DisOrder web site">DisOrder
+     version @version</a>
+  &copy; 2003-2008 Richard Kettlewell et al
+</p>}
 
 @# Expand to the time that @id will be played
+@#  @what is the section
+@#  @id is the track ID
 @define {mwhen} {what id}
         {@when{@id}</td>}
 
 @# Expand to the 'who' field for @id
+@#  @what is the section
+@#  @id is the track ID
 @define {mwho} {what id}
         {@if{@eq{@who{@id}}{}}
             {@if{@eq{@state{@id}}{random}}
@@ -41,6 +105,8 @@ USA
             {@who{@id}}}
 
 @# Expand to the artist for @track
+@#  @what is the section
+@#  @track is the track name
 @define {martist} {what track}
         {@right{play}
                {<a class=directory
@@ -50,6 +116,8 @@ USA
                       title="@part{@track}{artist}@">@part{@track}{short}{artist}</span>}}
 
 @# Expand to the album for @track
+@#  @what is the section
+@#  @track is the track name
 @define {malbum} {what track}
         {@right{play}
                {<a class=directory
@@ -59,20 +127,52 @@ USA
                       title="@part{@track}{album}@">@part{@track}{short}{album}</span>}}
 
 @# Expand to the title for @track
+@#  @what is the section
+@#  @track is the track name
 @define {mtitle} {what track}
         {<span title="@part{@track}{title}">@part{@track}{short}{title}</span>}
 
 @# Expand to the remove/scratch entry for @id
+@#  @what is the section
+@#  @id is the track ID
 @define {mremove} {what id}
         {@if{@removable{@id}}
             {<a class=imgbutton
                 href="@url?action=remove&#38;id=@id@back">
                <img class=button src="@image{remove}"
+                    width=@width height=@height
                     title="@label{@what.removeverbose}"
                     alt="@label{@what.scratch}">
              </a>}
             {<img class=button src="@image{noremove}"
+                  width=@width height=@height
                   title="@label{@what.removeverbose}"
                   alt="@label{@what.scratch}">}}
 
-}@#
+@# Expand to a move button
+@#  @id is the track ID
+@#  @dir should be a direction: up, upall, down or downall
+@#  @delta should be the distance, +ve for up and -ve for down
+@# This macro calls @movable to check that the move is possible.
+@define {mmove} {id dir delta}
+        {@if{@movable{@id}{@delta}}
+            {<a class=imgbutton
+                href="@url?action=move&#38;id=@id&#38;delta=@delta@back">
+               <img class=button src="@image{@dir}"
+                    width=@width height=@height
+                    title="@label{playing.@q{@dir}verbose}"
+                    alt="@label{playing.@dir}">
+             </a>}
+            {<img class=button src="@image{no@dir}"
+                  width=@width height=@height
+                  title="@label{playing.@q{@dir}verbose}"
+                  alt="@label{playing.@dir}">}}
+
+Local variables:
+mode:sgml
+sgml-always-quote-attributes:nil
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+fill-column:79
+End: