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.
This commit is contained in:
parent
9b86529bd5
commit
26c5da2d5b
@ -47,33 +47,53 @@ sub block_display {
|
||||
|
||||
$self -> clear_error();
|
||||
|
||||
my $urls = { "signin" => $self -> build_url(block => "login",
|
||||
my $urls = { "%(url-signin)s" => $self -> build_url(block => "login",
|
||||
fullurl => 1,
|
||||
pathinfo => [],
|
||||
params => {},
|
||||
forcessl => 1),
|
||||
"signout" => $self -> build_url(block => "login",
|
||||
"%(url-signout)s" => $self -> build_url(block => "login",
|
||||
fullurl => 1,
|
||||
pathinfo => [ "signout" ],
|
||||
params => {},
|
||||
forcessl => 1),
|
||||
"signup" => $self -> build_url(block => "login",
|
||||
"%(url-signup)s" => $self -> build_url(block => "login",
|
||||
fullurl => 1,
|
||||
pathinfo => [ "signup" ],
|
||||
params => {},
|
||||
forcessl => 1),
|
||||
"setpass" => $self -> build_url(block => "login",
|
||||
"%(url-setpass)s" => $self -> build_url(block => "login",
|
||||
fullurl => 1,
|
||||
pathinfo => [ "passchange" ],
|
||||
params => {},
|
||||
forcessl => 1),
|
||||
"front" => $self -> build_url(block => $self -> {"settings"} -> {"config"} -> {"default_block"},
|
||||
"%(url-front)s" => $self -> build_url(block => $self -> {"settings"} -> {"config"} -> {"default_block"},
|
||||
fullurl => 1,
|
||||
pathinfo => [],
|
||||
params => {})
|
||||
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) = ("", "");
|
||||
|
||||
$userprofile = $self -> {"template"} -> load_template("userbar/profile_signedout.tem",
|
||||
{ "%(signup)s" => $signup,
|
||||
"%(url-signin)s" => $urls -> {"signin"},
|
||||
"%(url-signup)s" => $urls -> {"signup"},
|
||||
});
|
||||
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");
|
||||
}
|
||||
|
||||
return $self -> {"template"} -> load_template("userbar/userbar.tem",
|
||||
$userprofile = $self -> {"template"} -> load_template("userbar/profile_signedout.tem",
|
||||
{ "%(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});
|
||||
"%(profile)s" => $userprofile,
|
||||
%{ $urls }
|
||||
}),
|
||||
$self -> {"template"} -> process_template($sidemenu, $urls)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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
|
@ -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"}) : "<!-- Userbar load failed: ".$self -> {"module"} -> errstr()." -->"),
|
||||
"%(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}") : "<!-- Userbar load failed: ".$self -> {"module"} -> errstr()." -->"),
|
||||
});
|
||||
return $self -> generate_orb_page(title => "{L_PERMISSION_FAILED_TITLE}",
|
||||
content => $message);
|
||||
}
|
||||
|
||||
return undef;
|
||||
|
@ -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;
|
||||
|
@ -17,12 +17,12 @@
|
||||
<!-- canvas wrapper -->
|
||||
<div class="off-canvas-wrapper">
|
||||
%(leftmenu)s
|
||||
|
||||
<!-- content wrapper -->
|
||||
<div class="off-canvas-content" data-off-canvas-content>
|
||||
<!-- Start top bar -->
|
||||
%(userbar)s
|
||||
<!-- End top bar -->
|
||||
<br />
|
||||
<!-- Start content -->
|
||||
<div class="row" id="content">
|
||||
%(content)s
|
||||
|
17
templates/default/sidemenu/signedin.tem
Normal file
17
templates/default/sidemenu/signedin.tem
Normal file
@ -0,0 +1,17 @@
|
||||
<div class="off-canvas position-left" id="offCanvas" data-off-canvas>
|
||||
<h5>{L_SIDE_TITLE}</h5>
|
||||
<hr class="nomargin"/>
|
||||
<ul class="vertical menu">
|
||||
<li><a href="%(url-front)s">{L_SIDE_SUMMARIES}</a></li>
|
||||
<li><a href="%(url-list)s" >{L_SIDE_RECIPES}</a></li>
|
||||
<li><a href="%(url-tags)s" >{L_SIDE_TAGS}</a></li>
|
||||
<li><a href="%(url-types)s">{L_SIDE_TYPES}</a></li>
|
||||
</ul>
|
||||
<hr class="nomargin"/>
|
||||
<div class="user"><img alt="" src="https://gravatar.com/avatar/%(gravhash)s?s=32&d=mm&r=g" class="avatar avatar-32" height="32" width="32" /> %(realname)s</a></div>
|
||||
<ul class="vertical menu">
|
||||
<li><a href="%(url-shop)s">{L_SIDE_SHOPPING}</a></li>
|
||||
<li><a href="%(url-setpass)s">{L_SIDE_SET_PASSWORD}</a></li>
|
||||
<li><a href="%(url-signout)s">{L_SIDE_SIGN_OUT}</a></li>
|
||||
</ul>
|
||||
</div>
|
15
templates/default/sidemenu/signedout.tem
Normal file
15
templates/default/sidemenu/signedout.tem
Normal file
@ -0,0 +1,15 @@
|
||||
<div class="off-canvas position-left" id="offCanvas" data-off-canvas>
|
||||
<h5>{L_SIDE_TITLE}</h5>
|
||||
<hr class="nomargin"/>
|
||||
<ul class="vertical menu">
|
||||
<li><a href="%(url-front)s">{L_SIDE_SUMMARIES}</a></li>
|
||||
<li><a href="%(url-list)s" >{L_SIDE_RECIPES}</a></li>
|
||||
<li><a href="%(url-tags)s" >{L_SIDE_TAGS}</a></li>
|
||||
<li><a href="%(url-types)s">{L_SIDE_TYPES}</a></li>
|
||||
</ul>
|
||||
<hr class="nomargin"/>
|
||||
<ul class="vertical menu">
|
||||
<li><a href="%(url-signin)s">{L_SIDE_SIGN_IN}</a></li>
|
||||
%(signup)s
|
||||
</ul>
|
||||
</div>
|
1
templates/default/sidemenu/signup.tem
Normal file
1
templates/default/sidemenu/signup.tem
Normal file
@ -0,0 +1 @@
|
||||
<li><a href="%(url-signup)s">{L_SIDE_SIGN_UP}</a></li>
|
Loading…
x
Reference in New Issue
Block a user