<script type="text/javascript">
$(document).ready(function () {
SetHover();
});
function SetHover() {
var Title = window.location.toString().split("/");
Title = decodeURIComponent(Title[4].replace('%20', ''));
for (i = 0; i <= Title.length; i++) {
Title = Title.replace(' ', '');
Title = Title.replace('%20', '');
}
document.getElementById('Pages').removeAttribute("class");
document.getElementById(Title.replace('%20', '')).setAttribute("class", 'currenttab');
}
// initialise plugins
jQuery(function () {
jQuery('ul.sf-menu').superfish();
});
</script>
<script runat="server">
public StringBuilder MenuItems = new StringBuilder();
int ID = 0;
protected DataTable objdataTable = new DataTable();
private enum nodeSpecsEnum
{
Site = 1,
Page = 0
}
private nodeSpecsEnum nodeSpecs;
protected void GetMenu(DataTable MenuTable, string level, string Parent, string ParentLevel, string ID, string Title)
{
try
{
if (ParentLevel == (string)(int.Parse(level) - 1).ToString())
{
foreach (DataRow Drlevel2 in MenuTable.Rows)
{
if (Drlevel2["Level"].ToString() == level)
{
if (Drlevel2["Parent"].ToString() == Parent)
{
if (Drlevel2["IsPage"].ToString() == "True")
{
MenuItems.AppendLine("<li id='" + Drlevel2["ID"].ToString() + "'><a href='#'>" + Drlevel2["Title"].ToString() + "</a>");
MenuItems.AppendLine("<ul>");
GetMenu(MenuTable, (string)(int.Parse(level) + 1).ToString(), Drlevel2["Title"].ToString(), level, ID, Drlevel2["Title"].ToString());
MenuItems.AppendLine("</ul>");
MenuItems.AppendLine("</li>");
}
else if (Drlevel2["IsPage"].ToString() == "False")
{
//DataView dv = MenuTable.DefaultView;
//dv.RowFilter = "Key = '" + Drlevel2["ParentURL"].ToString().ToLower() + "'";
//DataTable dt = dv.ToTable();
//string Key = dt.Rows[0]["ParentURL"].ToString();
//foreach (DataRow Drlevel1 in MenuTable.Rows)
//{
//if (Title == Drlevel2["Key"].ToString().ToLower())
//{
MenuItems.AppendLine("<li ParentID='" + ID + "'><a href='" + Drlevel2["URL"].ToString() + "' >" + Drlevel2["Title"].ToString() + "</a>");
MenuItems.AppendLine("</li>");
//}
//}
}
}
}
}
}
}
catch
{
Response.Redirect((String)this.GetGlobalResourceObject("MIT", "ErrorPage"));
}
}
protected void Page_Load(object sender, EventArgs e)
{
try
{
objdataTable.Columns.Add("Title", typeof(string));
objdataTable.Columns.Add("URL", typeof(string));
objdataTable.Columns.Add("IsPage", typeof(string));
objdataTable.Columns.Add("Key", typeof(string));
objdataTable.Columns.Add("Level", typeof(int));
objdataTable.Columns.Add("IsVisible", typeof(bool));
objdataTable.Columns.Add("Parent", typeof(string));
objdataTable.Columns.Add("ID", typeof(int));
objdataTable.Columns.Add("ParentURL", typeof(string));
SPSiteMapProvider sitemapProvider = (SPSiteMapProvider)SiteMap.Providers["PortalSiteMapProvider"];
siteMap.Provider = sitemapProvider;
siteMap.ShowStartingNode = false;
tree.NodeIndent = 10;
tree.DataSource = siteMap;
tree.DataBind();
tree.Visible = false;
DataView objDataView = objdataTable.DefaultView;
objDataView.RowFilter = "URL like '%/pages/%' AND URL like '%" + (String)this.GetGlobalResourceObject("MIT", "URL") + "%' ";
objDataView.Sort = "ID DESC";
//if (BEAT.GeneralMethods.GetCulture().ToLower() == "en")
// objDataView.RowFilter = "URL like '%/english/%' and URL like '%/pages/%'";
//else
// objDataView.RowFilter = "URL like '%/arabic/%' and URL like '%/pages/%'";
MenuItems.AppendLine("<ul class='sf-menu'>");
foreach (DataRow Drlevel1 in objDataView.ToTable().Rows)
{
if (Drlevel1["Level"].ToString() == "1")
{
if (Drlevel1["IsPage"].ToString() == "True")
{
MenuItems.AppendLine("<li id='" + Drlevel1["Title"].ToString().Replace(" ", "") + "'><a href='#' >" + Drlevel1["Title"].ToString() + "</a>");
MenuItems.AppendLine("<ul>");
GetMenu(objDataView.ToTable(), "2", Drlevel1["Title"].ToString(), "1", Drlevel1["Title"].ToString(), Drlevel1["Title"].ToString());
MenuItems.AppendLine("</ul>");
MenuItems.AppendLine("</li>");
}
else
{
MenuItems.AppendLine("<li><a href='" + Drlevel1["URL"].ToString() + "'>" + Drlevel1["Title"].ToString() + "</a>");
MenuItems.AppendLine("<ul>");
GetMenu(objDataView.ToTable(), "2", Drlevel1["Title"].ToString(), "1", Drlevel1["Title"].ToString(), Drlevel1["Title"].ToString());
MenuItems.AppendLine("</ul>");
MenuItems.AppendLine("</li>");
}
}
}
MenuItems.AppendLine("<li class='currenttab' id='Pages' ><a href='" + (String)this.GetGlobalResourceObject("MIT", "Language") + "'>" + (String)this.GetGlobalResourceObject("MIT", "HomePage") + "</a></li>");
MenuItems.AppendLine("</ul>");
Menu.InnerHtml = MenuItems.ToString();
//GridView1.DataSource = objDataView;
//GridView1.DataBind();
tree.Visible = false;
}
catch
{
Response.Redirect((String)this.GetGlobalResourceObject("MIT", "ErrorPage"));
}
}
protected void TV_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
{
try
{
string[] stringSeparators = new string[] { "pages" };
SiteMapNode node = (SiteMapNode)e.Node.DataItem;
string _CurrentUrl = "http://sp2010v2/EN/";
if (_CurrentUrl.StartsWith(node.Url))
e.Node.Expand();
else
e.Node.Collapse();
if (_CurrentUrl == node.Url)
e.Node.Select();
ID = ID + 1;
DataRow dr = objdataTable.NewRow();
dr["ID"] = ID;
dr["Title"] = node.Title;
dr["Key"] = node.Key.ToLower().Split(stringSeparators,
StringSplitOptions.RemoveEmptyEntries)[0];
dr["URL"] = node.Url;
dr["IsPage"] = node.HasChildNodes.ToString();
dr["Level"] = e.Node.Depth;
dr["Parent"] = node.ParentNode;
dr["ParentURL"] = node.ParentNode.Url.ToLower().Split(stringSeparators,
StringSplitOptions.RemoveEmptyEntries)[0];
objdataTable.Rows.Add(dr);
objdataTable.AcceptChanges();
}
catch
{
Response.Redirect((String)this.GetGlobalResourceObject("MIT", "ErrorPage"));
}
}
private string IsPage(string Key, string URL)
{
try
{
if (Key.ToLower() == URL.ToLower())
return true.ToString();
else
return false.ToString();
}
catch
{
Response.Redirect((String)this.GetGlobalResourceObject("MIT", "ErrorPage"));
return false.ToString();
}
}
private int Level(string key)
{
try
{
string keystr = key;
if (key.ToLower().Contains("/pages/"))
{
int indexofString = keystr.ToLower().IndexOf("/pages/");
int KeyLength = keystr.Length;
string TrimmingString = keystr.Substring(indexofString, (KeyLength - indexofString));
keystr = keystr.Replace(TrimmingString, "");
}
else if (key.ToLower().Contains("/_layouts/"))
{
int indexofString = keystr.ToLower().IndexOf("/_layouts/");
int KeyLength = keystr.Length;
string TrimmingString = keystr.Substring(indexofString, (KeyLength - indexofString));
keystr = keystr.Replace(TrimmingString, "");
}
return keystr.Split(Convert.ToChar("/")).Length - 1;
}
catch
{
Response.Redirect((String)this.GetGlobalResourceObject("MIT", "ErrorPage"));
return 0;
}
}
</script>
<div>
<asp:SiteMapDataSource ID="siteMap" runat="server" EnableViewState="false" ShowStartingNode="False"
StartingNodeUrl="sid:1002" />
<asp:TreeView ID="tree" runat="server" EnableViewState="false" OnTreeNodeDataBound="TV_TreeNodeDataBound">
</asp:TreeView>
</div>
<div id="Menu" runat="server">
</div>
No comments:
Post a Comment