From ede2bfd2d7460399162cf76fcbfa12e781b60c6e Mon Sep 17 00:00:00 2001 From: Chris Date: Sun, 8 Jan 2017 17:33:10 +0000 Subject: [PATCH] Generate recipe page list --- modules/ORB.pm | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/modules/ORB.pm b/modules/ORB.pm index 81a7fd8..dc7d6ed 100755 --- a/modules/ORB.pm +++ b/modules/ORB.pm @@ -31,7 +31,7 @@ use Webperl::Utils qw(join_complex path_join hash_or_hashref); use XML::Simple; use DateTime; use JSON; - +use Data::Dumper; # Hack the DateTime object to include the TO_JSON function needed to support # JSON output of datetime objects. Outputs as ISO8601 sub DateTime::TO_JSON { @@ -221,6 +221,31 @@ sub message_box { } +## @method $ pagemenu($active) +# Create a page menu to include at the top of pages that need menu listing pages +# +# @param active The active page letter, or undef if none are active. +# @return A string containing the page menu +sub pagemenu { + my $self = shift; + my $active = shift // "all"; + + my $pages = ""; + foreach my $page ("0", "A" ... "Z", "All") { + my $url = $self -> build_url(block => "list", + pathinfo => [ $page ]); + + $pages .= $self -> {"template"} -> load_template("navigation/pagemenu-page.tem", + { "%(active)s" => (lc($active) eq lc($page) ? "active" : ""), + "%(page)s" => $page, + "%(url)s" => $url }); + } + + return $self -> {"template"} -> load_template("navigation/pagemenu.tem", + { "%(pages)s" => $pages }); +} + + # ============================================================================ # Permissions/Roles related.