public static PXSettings GetSettings(Page page) { PXSettings settings = new PXSettings { NamedLinks = false, EditLinkText = PXMessages.LocalizeNoPrefix(Messages.Edit), CloseLinkText = PXMessages.LocalizeNoPrefix(Messages.Close), DefaultStylesPath = page.ResolveUrl/**/ ("~/App_Themes/Wiki.css"), GetCSSUrl = page.ResolveUrl/**/ ("~/App_Themes/GetCSS.aspx"), ArticleShowUrl = page.ResolveUrl/**/ ("~/Wiki/ShowWiki.aspx"), GetFileUrl = page.ResolveUrl/**/ ("~/Frames/GetFile.ashx"), FileEditUrl = page.ResolveUrl/**/ ("~/Pages/SM/SM202510.aspx"), GetRSSUrl = page.ResolveUrl/**/ ("~/Frames/GetRSS.ashx"), HintImageUrl = PXImages.ResolveImageUrl("~/App_Themes/Default/Images/Wiki/info.png"), WarnImageUrl = PXImages.ResolveImageUrl("~/App_Themes/Default/Images/Wiki/Warn.png"), MagnifyImageUrl = PXImages.ResolveImageUrl("~/App_Themes/Default/Images/Wiki/magnify.png"), DefaultExtensionImage = PXImages.ResolveImageUrl("~/App_Themes/Default/Images/Wiki/binary.gif"), RSSImageUrl = PXImages.ResolveImageUrl("~/App_Themes/Default/Images/Wiki/rss.gif"), FilesDirectAccess = true }; foreach (UploadAllowedFileTypes ext in SitePolicy.AllowedFileTypes) { if (!string.IsNullOrEmpty(ext.IconUrl) && !settings.ExtensionsImages.ContainsKey(ext.FileExt.ToLower())) { settings.ExtensionsImages.Add(ext.FileExt.ToLower(), page.ResolveUrl/**/ (ext.IconUrl)); } } return(settings); }
/// <summary> /// Create the tree view control inside each band. /// </summary> protected void navPanel_BarItemDataBound(object sender, PXBarItemDataBoundEventArgs e) { if (bindComplete) { return; } INavigateUIData dataItem = e.BarItem.DataItem as INavigateUIData; PX.Data.PXSiteMapNode swNode = dataItem as PX.Data.PXSiteMapNode; int index = navPanel.Bars.IndexOf(e.BarItem); string req = this.Request.Params["__CALLBACKID"]; string trId = swNode.ScreenID == "FV000000" ? "favorites" : "tree" + swNode.Key.Replace('-', '_'); string descr = dataItem.Description; if (this.IsCallback && !req.Contains("sp" + index) && !req.Contains(trId)) { return; } if (!string.IsNullOrEmpty(descr)) { string[] im = descr.Split('|'); e.BarItem.ImageUrl = PXImages.ResolveImageUrl(im[0], this); if (im.Length > 1) { if (im[1].Contains(".") || im[1].Contains("@")) { e.BarItem.SmallImageUrl = PXImages.ResolveImageUrl(im[1], this); } else { e.BarItem.SmallText = im[1]; } } } e.BarItem.Tooltip = dataItem.Name; e.BarItem.ContentUrl = this.ResolveUrl/**/ (dataItem.NavigateUrl); e.BarItem.Target = "main"; PXSmartPanel panel = new PXSmartPanel(); panel.ID = "sp" + index.ToString(); panel.LoadOnDemand = index != 0; panel.AllowResize = panel.AllowMove = false; panel.RenderVisible = true; panel.Width = panel.Height = Unit.Percentage(100); e.BarItem.TemplateContainer.Controls.Add(panel); SiteMapDataSource ds = new SiteMapDataSource(); ds.ID = "ds" + index.ToString(); ds.StartingNodeUrl = dataItem.NavigateUrl; ds.ShowStartingNode = false; panel.Controls.Add(ds); Control content = null; if (PXSiteMap.WikiProvider.FindSiteMapNodeFromKey(swNode.NodeID) != null) { if (PXSiteMap.WikiProvider.GetWikiID(swNode.Title) != Guid.Empty || PXSiteMap.WikiProvider.GetWikiIDFromUrl(swNode.Url) != Guid.Empty) { content = CreateWikiTree(swNode, trId); } } else if (swNode.ScreenID == "FV000000") { ds.Provider = PXSiteMap.FavoritesProvider; ds.StartingNodeUrl = SiteMap.RootNode.Url; content = CreateTree(ds, trId); } else { content = CreateTree(ds, trId); } if (content == null) { return; } panel.Controls.Add(content); } protected void navPanel_OnDataBound(object sender, EventArgs e) { bindComplete = true; } #endregion #region Methods to work with sitemap tree private PXTreeView CreateTree(SiteMapDataSource ds, string controlName) { PXTreeView tree = new PXTreeView(); tree.DataSourceID = ds.ID; tree.ID = controlName; tree.Width = tree.Height = Unit.Percentage(100); tree.Style[HtmlTextWriterStyle.BorderWidth] = Unit.Pixel(0).ToString(); tree.ShowRootNode = false; tree.Target = "main"; tree.ApplyStyleSheetSkin(this); tree.Style[HtmlTextWriterStyle.Position] = "absolute"; tree.NodeDataBound += new PXTreeNodeEventHandler(tree_NodeDataBound); tree.ShowLines = false; tree.ClientEvents.NodeClick = "treeClick"; tree.Synchronize += new PXTreeSyncEventHandler(tree_Synchronize); return(tree); } private PXWikiTree CreateWikiTree(PX.Data.PXSiteMapNode node, string treeId) { PXWikiTree tree = new PXWikiTree(); string url = node.Url; Guid wikiId = PX.Data.PXSiteMap.WikiProvider.GetWikiIDFromUrl(node.Url); PX.SM.WikiReader reader = new PX.SM.WikiReader(); PX.SM.WikiDescriptor wiki = reader.wikis.SelectWindowed(0, 1, wikiId); tree.Provider = PX.Data.PXSiteMap.WikiProvider; url = PX.SM.Wiki.Url(wikiId); tree.ID = treeId; tree.WikiID = wikiId; tree.ShowRootNode = false; tree.Target = "main"; tree.StartingNodeUrl = this.ResolveUrl/**/ (url); tree.SearchUrl = this.ResolveUrl/**/ ("~/Search/Wiki.aspx") + "?query="; tree.NewArticleUrl = wiki == null || string.IsNullOrEmpty(wiki.UrlEdit) ? "" : this.ResolveUrl/**/ (wiki.UrlEdit) + "?wiki=" + wikiId; if (PXSiteMap.IsPortal) { tree.SearchUrl = this.ResolveUrl("~/Search/WikiSP.aspx") + "?adv=1&query="; } tree.Width = tree.Height = Unit.Percentage(100); tree.Style[HtmlTextWriterStyle.Position] = "absolute"; tree.ClientEvents.NodeClick = "treeClick"; tree.Synchronize += new PXTreeSyncEventHandler(wikiTree_Synchronize); return(tree); }