image image


Worknote: Next-Prev-Links

Für die Navigation auf die nächsten und vorherigen Seiten werden vier Bilder verwendet. Jeweils die schwarzen Pfeile, die die Navigation auf die vorherige resp. nächste Seite anzeigen und eine angegraute Version, die bedeuten soll, daß es (noch) keine vorherige oder nächste Seite gibt:

image image image image

Ursprünglich hatte ich die grauen Pfeile weggelassen, dann aber sprang auf der jeweils ersten und letzten Seite der aktive Pfeil auf eine andere Position und erschwerte so die Navigation.

Das Ruby-Skript, das die Navigation erzeugt, ist ziemlich simpel:

def nextprevlinks()
  p, n = html.getNextPrev(adrObject)
  ntitle, npath = html.getTitleAndPaths(n) if n
  ptitle, ppath = html.getTitleAndPaths(p) if p
  rel_to_top = adrsiteroottable.relative_uri_from(adrobject)
  s = ""
  if p
    s << "<a href=" + rel_to_top + ppath + ">" + imageref("arrow-left") + "</a>"
  else
    s << imageref("arrow-left-grey")
  end
  s << " &nbsp; "
  if n
    s << "<a href=" + rel_to_top + npath + ">" + imageref("arrow-right") + "</a>"
  else
    s << imageref("arrow-right-grey")
  end
  "<p>#{s}</p>\n"
end

Erst wird mit html.getNextPrev(adrObject) abgefragt, ob vorherige und nächste Seiten existieren, wenn ja werden Pfad und Titel in entsprechende Variablen abgelegt und dann wird schlicht und einfach abgefragt, d.h. wenn sie existieren wird der Link mit dem schwarzen Pfeil gesetzt, wenn nicht kommt der angegraute Pfeil zum Einsatz.

[Update]: Nach dem Update auf RubyFrontier 1.1.2 waren ein paar kleine Änderungen an dem Makro notwendig, die ich hier dokumentiert habe.

comments powered by Disqus