return $item;
}
+function get_current_page_helper($name, $p)
+{
+ if (isset($p["script"]))
+ {
+ if (($p["script"] != '') && str_ends_with($_SERVER['SCRIPT_FILENAME'],$p["script"]))
+ return $p;
+ return null;
+ }
+ foreach ($p as $k=>$v)
+ {
+ $ret = get_current_page_helper($k, $v);
+ if ($ret !== null)
+ return $ret;
+ }
+ return null;
+}
+
+function get_current_page()
+{
+ GLOBAL $pages;
+ foreach ($pages as $k=>$v)
+ {
+ $ret = get_current_page_helper($k, $v);
+ if ($ret !== null)
+ return $ret;
+ }
+}
+
function page_requires_no_config()
{
if (str_ends_with($_SERVER['SCRIPT_FILENAME'],"install.php") ||
}
$pages = [
- "Overview" => ["url"=>""],
- "Users" => ["url"=>"users"],
- "Channels" => ["url"=>"channels"],
- "Servers" => ["url"=>"servers"],
+ "Overview" => ["script"=>""],
+ "Users" => ["script"=>"users/index.php"],
+ "Channels" => ["script"=>"channels/index.php"],
+ "Servers" => ["script"=>"servers/index.php"],
"Server Bans" => [
- "Server Bans" => ["url" => "server-bans"],
- "Name Bans" => ["url" => "server-bans/name-bans.php"],
- "Ban Exceptions" => ["url" => "server-bans/ban-exceptions.php"],
+ "Server Bans" => ["script" => "server-bans/index.php"],
+ "Name Bans" => ["script" => "server-bans/name-bans.php"],
+ "Ban Exceptions" => ["script" => "server-bans/ban-exceptions.php"],
],
- "Spamfilter" => ["url" => "spamfilter.php"],
+ "Spamfilter" => ["script" => "spamfilter.php"],
"Tools" => [
- "IP WHOIS" => ["url" => "tools/ip-whois.php"],
+ "IP WHOIS" => ["script" => "tools/ip-whois.php","no_irc_server_required"=>true],
],
"Settings" => [
- "Plugins" => ["url" => "settings/plugins.php"],
- "RPC Servers" => ["url" => "settings/rpc-servers.php"],
+ "Plugins" => ["script" => "settings/plugins.php","no_irc_server_required"=>true],
+ "RPC Servers" => ["script" => "settings/rpc-servers.php","no_irc_server_required"=>true],
],
- "News" => ["url" => "news.php"],
+ "News" => ["script" => "news.php","no_irc_server_required"=>true],
];
if (!panel_start_session())
die;
}
} else {
- $pages["Settings"]["Accounts"] = ["url" => "settings"];
+ $pages["Settings"]["Accounts"] = [
+ "script" => "settings/index.php",
+ "no_irc_server_required"=>true
+ ];
if (current_user_can(PERMISSION_MANAGE_USERS))
- $pages["Settings"]["Role Editor"] = ["url"=>"settings/user-role-edit.php"];
+ {
+ $pages["Settings"]["Role Editor"] = [
+ "script"=>"settings/user-role-edit.php",
+ "no_irc_server_required"=>true
+ ];
+ }
$user = unreal_get_current_user();
if ($user)
{
/* Add logout page, if logged in */
- $pages["Logout"] = ["url"=>"login/?logout=true"];
+ $pages["Logout"] = [
+ "script"=>"login/?logout=true",
+ "no_irc_server_required"=>true
+ ];
}
}
* $pages[$page_name] = $page_link;
* }
* }
-*/
\ No newline at end of file
+*/
+
+$current_page = get_current_page();
//if (is_string($active_page) && $page == $active_page)
// $class .= " active";
- $is_link = isset($page["url"]) ? true : false;
+ $is_link = isset($page["script"]) ? true : false;
if ($nestlevel > 0)
{
{
$style = "padding-bottom: 0px;";
} else {
- echo "<a href=\"".get_config("base_url").$page["url"]."\" style=\"text-decoration: none\">\n";
+ $url = $page["script"];
+ if (str_ends_with($url, "/index.php"))
+ $url = str_replace('/index.php', '', $url);
+ echo "<a href=\"".get_config("base_url").$url."\" style=\"text-decoration: none\">\n";
}
echo "<div class=\"big-page-item d-flex justify-content-between align-items-center $class list-group-item-action\" style=\"$style\">$name
<div class=\"text-right padding-top\">
nav_resize_check();
});
</script>
+
+<?php
+ if ($current_page &&
+ !(isset($current_page["no_irc_server_required"]) &&
+ ($current_page["no_irc_server_required"] == true)))
+ {
+ Message::Fail("No RPC server configured. Go to Settings - RPC Servers.");
+ require_once('footer.php');
+ die;
+ }