From 26c5da2d5bc34354807a447ac6a5e01eba2569fe Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 9 Jan 2017 23:43:17 +0000 Subject: [PATCH] Piggyback left menu generation off userbar code They have so much in common there's little point in separating them and having to generate the same URLs in both. --- blocks/ORB/Userbar.pm | 105 ++++++++++++++-------- lang/en/userbar.lang | 11 +++ modules/ORB.pm | 15 ++-- templates/default/css/foundation.mods.css | 16 ++++ templates/default/page.tem | 2 +- templates/default/sidemenu/signedin.tem | 17 ++++ templates/default/sidemenu/signedout.tem | 15 ++++ templates/default/sidemenu/signup.tem | 1 + 8 files changed, 134 insertions(+), 48 deletions(-) create mode 100644 templates/default/sidemenu/signedin.tem create mode 100644 templates/default/sidemenu/signedout.tem create mode 100644 templates/default/sidemenu/signup.tem diff --git a/blocks/ORB/Userbar.pm b/blocks/ORB/Userbar.pm index 900843c..ea9a924 100644 --- a/blocks/ORB/Userbar.pm +++ b/blocks/ORB/Userbar.pm @@ -47,33 +47,53 @@ sub block_display { $self -> clear_error(); - my $urls = { "signin" => $self -> build_url(block => "login", - fullurl => 1, - pathinfo => [], - params => {}, - forcessl => 1), - "signout" => $self -> build_url(block => "login", - fullurl => 1, - pathinfo => [ "signout" ], - params => {}, - forcessl => 1), - "signup" => $self -> build_url(block => "login", - fullurl => 1, - pathinfo => [ "signup" ], - params => {}, - forcessl => 1), - "setpass" => $self -> build_url(block => "login", - fullurl => 1, - pathinfo => [ "passchange" ], - params => {}, - forcessl => 1), - "front" => $self -> build_url(block => $self -> {"settings"} -> {"config"} -> {"default_block"}, - fullurl => 1, - pathinfo => [], - params => {}) + my $urls = { "%(url-signin)s" => $self -> build_url(block => "login", + fullurl => 1, + pathinfo => [], + params => {}, + forcessl => 1), + "%(url-signout)s" => $self -> build_url(block => "login", + fullurl => 1, + pathinfo => [ "signout" ], + params => {}, + forcessl => 1), + "%(url-signup)s" => $self -> build_url(block => "login", + fullurl => 1, + pathinfo => [ "signup" ], + params => {}, + forcessl => 1), + "%(url-setpass)s" => $self -> build_url(block => "login", + fullurl => 1, + pathinfo => [ "passchange" ], + params => {}, + forcessl => 1), + "%(url-front)s" => $self -> build_url(block => $self -> {"settings"} -> {"config"} -> {"default_block"}, + fullurl => 1, + pathinfo => [], + params => {}), + "%(url-list)s" => $self -> build_url(block => "list", + fullurl => 1, + pathinfo => [ ], + params => {}, + forcessl => 1), + "%(url-tags)s" => $self -> build_url(block => "tags", + fullurl => 1, + pathinfo => [ ], + params => {}, + forcessl => 1), + "%(url-types)s" => $self -> build_url(block => "types", + fullurl => 1, + pathinfo => [ ], + params => {}, + forcessl => 1), + "%(url-shop)s" => $self -> build_url(block => "shop", + fullurl => 1, + pathinfo => [ ], + params => {}, + forcessl => 1), }; - my $userprofile; + my ($userprofile, $sidemenu); # Is the user logged in? if(!$self -> {"session"} -> anonymous_session()) { @@ -85,25 +105,36 @@ sub block_display { { "%(realname)s" => $user -> {"fullname"}, "%(username)s" => $user -> {"username"}, "%(gravhash)s" => $user -> {"gravatar_hash"}, - "%(url-signout)s" => $urls -> {"signout"}, - "%(url-setpass)s" => $urls -> {"setpass"}, }); + $sidemenu = $self -> {"template"} -> load_template("sidemenu/signedin.tem", + { "%(realname)s" => $user -> {"fullname"}, + "%(username)s" => $user -> {"username"}, + "%(gravhash)s" => $user -> {"gravatar_hash"}, + }); + } else { - my $signup = $self -> {"template"} -> load_template("userbar/profile_signup.tem") - if($self -> {"settings"} -> {"config"} -> {"Login:allow_self_register"}); + my ($topsignup, $sidesignup) = ("", ""); + + if($self -> {"settings"} -> {"config"} -> {"Login:allow_self_register"}) { + $topsignup = $self -> {"template"} -> load_template("userbar/profile_signup.tem"); + $sidesignup = $self -> {"template"} -> load_template("sidemenu/signup.tem"); + } $userprofile = $self -> {"template"} -> load_template("userbar/profile_signedout.tem", - { "%(signup)s" => $signup, - "%(url-signin)s" => $urls -> {"signin"}, - "%(url-signup)s" => $urls -> {"signup"}, - }); + { "%(signup)s" => $topsignup }); + + $sidemenu = $self -> {"template"} -> load_template("sidemenu/signedout.tem", + { "%(signup)s" => $sidesignup }); } - return $self -> {"template"} -> load_template("userbar/userbar.tem", - { "%(pagename)s" => $title, - "%(url-front)s" => $urls -> {"front"}, - "%(profile)s" => $userprofile}); + return ( $self -> {"template"} -> load_template("userbar/userbar.tem", + { "%(pagename)s" => $title, + "%(profile)s" => $userprofile, + %{ $urls } + }), + $self -> {"template"} -> process_template($sidemenu, $urls) + ); } diff --git a/lang/en/userbar.lang b/lang/en/userbar.lang index 55f4d1b..8e756b5 100644 --- a/lang/en/userbar.lang +++ b/lang/en/userbar.lang @@ -12,3 +12,14 @@ USERBAR_DOCLINK = Documentation (opens in new window) USERBAR_FRONT = Aviary front page USERBAR_IMPORT = Import schedule + +SIDE_TITLE = Online Recipe Book +SIDE_SUMMARIES = Summaries +SIDE_RECIPES = Recipes +SIDE_TAGS = Tags +SIDE_TYPES = Types +SIDE_SHOPPING = Shopping +SIDE_SET_PASSWORD = Set password +SIDE_SIGN_IN = Sign in +SIDE_SIGN_UP = Sign up +SIDE_SIGN_OUT = Sign out \ No newline at end of file diff --git a/modules/ORB.pm b/modules/ORB.pm index 1249c3d..b3832d6 100755 --- a/modules/ORB.pm +++ b/modules/ORB.pm @@ -124,11 +124,12 @@ sub generate_orb_page { my $userbar = $self -> {"module"} -> load_module("ORB::Userbar"); + my ($topbar, $leftbar) = $userbar -> block_display($args -> {"title"}, $self -> {"block"}, $args -> {"doclink"}); return $self -> {"template"} -> load_template("page.tem", {"%(extrahead)s" => $args -> {"extrahead"} // "", "%(extrajs)s" => $args -> {"extrajs"} // "", "%(title)s" => $args -> {"title"} // "", - "%(leftmenu)s" => $args -> {"leftmenu"} // "", - "%(userbar)s" => ($userbar ? $userbar -> block_display($args -> {"title"}, $args -> {"leftmenu"}, $self -> {"block"}, $args -> {"doclink"}) : ""), + "%(leftmenu)s" => $leftbar, + "%(userbar)s" => $topbar, "%(content)s" => $args -> {"content"}}); } @@ -300,15 +301,9 @@ sub check_login { [ {"message" => $self -> {"template"} -> replace_langvar("SITE_CONTINUE"), "colour" => "blue", "action" => "location.href='{V_[scriptpath]}'"} ]); - my $userbar = $self -> {"module"} -> load_module("ORB::Userbar"); - # Build the error page... - return $self -> {"template"} -> load_template("error/general.tem", - {"%(title)s" => "{L_PERMISSION_FAILED_TITLE}", - "%(message)s" => $message, - "%(extrahead)s" => "", - "%(userbar)s" => ($userbar ? $userbar -> block_display("{L_PERMISSION_FAILED_TITLE}") : ""), - }); + return $self -> generate_orb_page(title => "{L_PERMISSION_FAILED_TITLE}", + content => $message); } return undef; diff --git a/templates/default/css/foundation.mods.css b/templates/default/css/foundation.mods.css index c284338..6acc0d3 100755 --- a/templates/default/css/foundation.mods.css +++ b/templates/default/css/foundation.mods.css @@ -22,6 +22,11 @@ div.top-bar-title { font-weight: bold; } +/* fix menu button pad */ +#menubtn { + margin-right: 0.5rem; +} + /* fix padding for menu text with image */ li.image { padding: 0 0 0 0.25rem; @@ -32,6 +37,17 @@ li.image { } +/* title for off-canvas menu */ +div.off-canvas > h5 { + padding: 0.5rem 0 0 1rem; +} + +/* off-canvas menu user */ +div.off-canvas .user { + margin-left: 1rem; + margin-top: 0.5rem; +} + .pagemenu { list-style-type: none; border-bottom: 1px solid #bbb; diff --git a/templates/default/page.tem b/templates/default/page.tem index a2dc95d..910fb6b 100755 --- a/templates/default/page.tem +++ b/templates/default/page.tem @@ -17,12 +17,12 @@
%(leftmenu)s -
%(userbar)s +
%(content)s diff --git a/templates/default/sidemenu/signedin.tem b/templates/default/sidemenu/signedin.tem new file mode 100644 index 0000000..bc2efe1 --- /dev/null +++ b/templates/default/sidemenu/signedin.tem @@ -0,0 +1,17 @@ + \ No newline at end of file diff --git a/templates/default/sidemenu/signedout.tem b/templates/default/sidemenu/signedout.tem new file mode 100644 index 0000000..134e386 --- /dev/null +++ b/templates/default/sidemenu/signedout.tem @@ -0,0 +1,15 @@ +
+
{L_SIDE_TITLE}
+
+ +
+ +
\ No newline at end of file diff --git a/templates/default/sidemenu/signup.tem b/templates/default/sidemenu/signup.tem new file mode 100644 index 0000000..1e07601 --- /dev/null +++ b/templates/default/sidemenu/signup.tem @@ -0,0 +1 @@ +
  • {L_SIDE_SIGN_UP}