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();
|
$self -> clear_error();
|
||||||
|
|
||||||
my $urls = { "signin" => $self -> build_url(block => "login",
|
my $urls = { "%(url-signin)s" => $self -> build_url(block => "login",
|
||||||
fullurl => 1,
|
fullurl => 1,
|
||||||
pathinfo => [],
|
pathinfo => [],
|
||||||
params => {},
|
params => {},
|
||||||
forcessl => 1),
|
forcessl => 1),
|
||||||
"signout" => $self -> build_url(block => "login",
|
"%(url-signout)s" => $self -> build_url(block => "login",
|
||||||
fullurl => 1,
|
fullurl => 1,
|
||||||
pathinfo => [ "signout" ],
|
pathinfo => [ "signout" ],
|
||||||
params => {},
|
params => {},
|
||||||
forcessl => 1),
|
forcessl => 1),
|
||||||
"signup" => $self -> build_url(block => "login",
|
"%(url-signup)s" => $self -> build_url(block => "login",
|
||||||
fullurl => 1,
|
fullurl => 1,
|
||||||
pathinfo => [ "signup" ],
|
pathinfo => [ "signup" ],
|
||||||
params => {},
|
params => {},
|
||||||
forcessl => 1),
|
forcessl => 1),
|
||||||
"setpass" => $self -> build_url(block => "login",
|
"%(url-setpass)s" => $self -> build_url(block => "login",
|
||||||
fullurl => 1,
|
fullurl => 1,
|
||||||
pathinfo => [ "passchange" ],
|
pathinfo => [ "passchange" ],
|
||||||
params => {},
|
params => {},
|
||||||
forcessl => 1),
|
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,
|
fullurl => 1,
|
||||||
pathinfo => [],
|
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?
|
# Is the user logged in?
|
||||||
if(!$self -> {"session"} -> anonymous_session()) {
|
if(!$self -> {"session"} -> anonymous_session()) {
|
||||||
@ -85,25 +105,36 @@ sub block_display {
|
|||||||
{ "%(realname)s" => $user -> {"fullname"},
|
{ "%(realname)s" => $user -> {"fullname"},
|
||||||
"%(username)s" => $user -> {"username"},
|
"%(username)s" => $user -> {"username"},
|
||||||
"%(gravhash)s" => $user -> {"gravatar_hash"},
|
"%(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 {
|
} else {
|
||||||
my $signup = $self -> {"template"} -> load_template("userbar/profile_signup.tem")
|
my ($topsignup, $sidesignup) = ("", "");
|
||||||
if($self -> {"settings"} -> {"config"} -> {"Login:allow_self_register"});
|
|
||||||
|
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",
|
$userprofile = $self -> {"template"} -> load_template("userbar/profile_signedout.tem",
|
||||||
{ "%(signup)s" => $signup,
|
{ "%(signup)s" => $topsignup });
|
||||||
"%(url-signin)s" => $urls -> {"signin"},
|
|
||||||
"%(url-signup)s" => $urls -> {"signup"},
|
$sidemenu = $self -> {"template"} -> load_template("sidemenu/signedout.tem",
|
||||||
});
|
{ "%(signup)s" => $sidesignup });
|
||||||
}
|
}
|
||||||
|
|
||||||
return $self -> {"template"} -> load_template("userbar/userbar.tem",
|
return ( $self -> {"template"} -> load_template("userbar/userbar.tem",
|
||||||
{ "%(pagename)s" => $title,
|
{ "%(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_FRONT = Aviary front page
|
||||||
|
|
||||||
USERBAR_IMPORT = Import schedule
|
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 $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"} // "",
|
return $self -> {"template"} -> load_template("page.tem", {"%(extrahead)s" => $args -> {"extrahead"} // "",
|
||||||
"%(extrajs)s" => $args -> {"extrajs"} // "",
|
"%(extrajs)s" => $args -> {"extrajs"} // "",
|
||||||
"%(title)s" => $args -> {"title"} // "",
|
"%(title)s" => $args -> {"title"} // "",
|
||||||
"%(leftmenu)s" => $args -> {"leftmenu"} // "",
|
"%(leftmenu)s" => $leftbar,
|
||||||
"%(userbar)s" => ($userbar ? $userbar -> block_display($args -> {"title"}, $args -> {"leftmenu"}, $self -> {"block"}, $args -> {"doclink"}) : "<!-- Userbar load failed: ".$self -> {"module"} -> errstr()." -->"),
|
"%(userbar)s" => $topbar,
|
||||||
"%(content)s" => $args -> {"content"}});
|
"%(content)s" => $args -> {"content"}});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,15 +301,9 @@ sub check_login {
|
|||||||
[ {"message" => $self -> {"template"} -> replace_langvar("SITE_CONTINUE"),
|
[ {"message" => $self -> {"template"} -> replace_langvar("SITE_CONTINUE"),
|
||||||
"colour" => "blue",
|
"colour" => "blue",
|
||||||
"action" => "location.href='{V_[scriptpath]}'"} ]);
|
"action" => "location.href='{V_[scriptpath]}'"} ]);
|
||||||
my $userbar = $self -> {"module"} -> load_module("ORB::Userbar");
|
|
||||||
|
|
||||||
# Build the error page...
|
return $self -> generate_orb_page(title => "{L_PERMISSION_FAILED_TITLE}",
|
||||||
return $self -> {"template"} -> load_template("error/general.tem",
|
content => $message);
|
||||||
{"%(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 undef;
|
return undef;
|
||||||
|
@ -22,6 +22,11 @@ div.top-bar-title {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* fix menu button pad */
|
||||||
|
#menubtn {
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
/* fix padding for menu text with image */
|
/* fix padding for menu text with image */
|
||||||
li.image {
|
li.image {
|
||||||
padding: 0 0 0 0.25rem;
|
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 {
|
.pagemenu {
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
border-bottom: 1px solid #bbb;
|
border-bottom: 1px solid #bbb;
|
||||||
|
@ -17,12 +17,12 @@
|
|||||||
<!-- canvas wrapper -->
|
<!-- canvas wrapper -->
|
||||||
<div class="off-canvas-wrapper">
|
<div class="off-canvas-wrapper">
|
||||||
%(leftmenu)s
|
%(leftmenu)s
|
||||||
|
|
||||||
<!-- content wrapper -->
|
<!-- content wrapper -->
|
||||||
<div class="off-canvas-content" data-off-canvas-content>
|
<div class="off-canvas-content" data-off-canvas-content>
|
||||||
<!-- Start top bar -->
|
<!-- Start top bar -->
|
||||||
%(userbar)s
|
%(userbar)s
|
||||||
<!-- End top bar -->
|
<!-- End top bar -->
|
||||||
|
<br />
|
||||||
<!-- Start content -->
|
<!-- Start content -->
|
||||||
<div class="row" id="content">
|
<div class="row" id="content">
|
||||||
%(content)s
|
%(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