using System;
using System.IO;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using BlogEngine.Core.Providers;
using BlogEngine.Core;
public partial class admin_menu : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsCallback)
BindMenu();
}
private void BindMenu()
{
SiteMapNode root = SiteMap.Providers["SecuritySiteMap"].RootNode;
if (root != null)
{
foreach (SiteMapNode adminNode in root.ChildNodes)
{
if (adminNode.IsAccessibleToUser(HttpContext.Current))
{
if (!Request.RawUrl.ToUpperInvariant().Contains("/ADMIN/") && (adminNode.Url.Contains("xmanager") || adminNode.Url.Contains("PingServices")))
continue;
HtmlAnchor a = new HtmlAnchor();
a.HRef = adminNode.Url;
a.InnerHtml = "" + Utils.Translate(adminNode.Title, adminNode.Title) + "";//"" + Utils.Translate(info.Name.Replace(".aspx", string.Empty)) + "";
if (Request.RawUrl.IndexOf(adminNode.Url, StringComparison.OrdinalIgnoreCase) != -1)
a.Attributes["class"] = "current";
// if "page" has its own subfolder (comments, extensions) should
// select parent tab when navigating through child tabs
if (adminNode.Url.IndexOf("/admin/pages/", StringComparison.OrdinalIgnoreCase) == -1 && SubUrl(Request.RawUrl) == SubUrl(adminNode.Url))
a.Attributes["class"] = "current";
HtmlGenericControl li = new HtmlGenericControl("li");
li.Controls.Add(a);
ulMenu.Controls.Add(li);
}
}
}
if (!Request.RawUrl.ToUpperInvariant().Contains("/ADMIN/"))
AddItem(Resources.labels.changePassword, Utils.RelativeWebRoot + "login.aspx");
}
public void AddItem(string text, string url)
{
HtmlAnchor a = new HtmlAnchor();
a.InnerHtml = "" + text + "";
a.HRef = url;
HtmlGenericControl li = new HtmlGenericControl("li");
li.Controls.Add(a);
ulMenu.Controls.Add(li);
}
private string SubUrl(string url)
{
int i = url.LastIndexOf("/");
return (i > 0) ? url.Substring(0, i) : "";
}
}