protected override MenuItem CreateMenuItem(string text, string key, string img) { string PID_SPACE_EXCHANGE_SERVER = "SpaceExchangeServer"; MenuItem item = new MenuItem(); item.Text = GetLocalizedString("Text." + text); item.NavigateUrl = PortalUtils.NavigatePageURL(PID_SPACE_EXCHANGE_SERVER, "ItemID", ItemID.ToString(), PortalUtils.SPACE_ID_PARAM + "=" + PackageId, DefaultPage.CONTROL_ID_PARAM + "=" + key, "moduleDefId=exchangeserver"); if (img == null) { item.ImageUrl = PortalUtils.GetThemedIcon("Icons/tool_48.png"); } else { item.ImageUrl = PortalUtils.GetThemedIcon(img); } return(item); }
private MenuItem CreateMenuItem(PackageContext cntx, XmlNode xmlNode) { string pageId = GetXmlAttribute(xmlNode, "pageID"); if (!PortalUtils.PageExists(pageId)) { return(null); } string url = GetXmlAttribute(xmlNode, "url"); string title = GetXmlAttribute(xmlNode, "title"); string imageUrl = GetXmlAttribute(xmlNode, "imageUrl"); string target = GetXmlAttribute(xmlNode, "target"); string resourceGroup = GetXmlAttribute(xmlNode, "resourceGroup"); string quota = GetXmlAttribute(xmlNode, "quota"); bool disabled = Utils.ParseBool(GetXmlAttribute(xmlNode, "disabled"), false); // get custom page parameters XmlNodeList xmlParameters = xmlNode.SelectNodes("Parameters/Add"); List <string> parameters = new List <string>(); foreach (XmlNode xmlParameter in xmlParameters) { parameters.Add(xmlParameter.Attributes["name"].Value + "=" + xmlParameter.Attributes["value"].Value); } // add menu item string pageUrl = !String.IsNullOrEmpty(url) ? url : PortalUtils.NavigatePageURL( pageId, PortalUtils.SPACE_ID_PARAM, cntx.Package.PackageId.ToString(), parameters.ToArray()); string pageName = !String.IsNullOrEmpty(title) ? title : PortalUtils.GetLocalizedPageName(pageId); MenuItem item = new MenuItem(pageName, "", "", disabled ? null : pageUrl); item.ImageUrl = PortalUtils.GetThemedIcon(imageUrl); if (!String.IsNullOrEmpty(target)) { item.Target = target; } item.Selectable = !disabled; // check groups/quotas bool display = true; if (cntx != null) { display = (String.IsNullOrEmpty(resourceGroup) || cntx.Groups.ContainsKey(resourceGroup)) && (String.IsNullOrEmpty(quota) || (cntx.Quotas.ContainsKey(quota) && cntx.Quotas[quota].QuotaAllocatedValue != 0)); } // process nested menu items XmlNodeList xmlMenuNodes = xmlNode.SelectNodes("MenuItems/MenuItem"); foreach (XmlNode xmlMenuNode in xmlMenuNodes) { MenuItem menuItem = CreateMenuItem(cntx, xmlMenuNode); if (menuItem != null) { item.ChildItems.Add(menuItem); } } if (display && !(disabled && item.ChildItems.Count == 0)) { return(item); } return(null); }