ScrewTurn.Wiki.DefaultPage.AppendBreadcrumbDropDown C# (CSharp) Method

AppendBreadcrumbDropDown() private method

Appends the drop-down menu DIV with outgoing links for a page.
private AppendBreadcrumbDropDown ( StringBuilder sb, System.PageInfo page, string dbPrefix ) : string
sb StringBuilder The destination .
page System.PageInfo The page.
dbPrefix string The drop-down menu DIV ID prefix.
return string
        private string AppendBreadcrumbDropDown(StringBuilder sb, PageInfo page, string dbPrefix)
        {
            // Build outgoing links list
            // Generate list DIV
            // Return DIV's ID

            string[] outgoingLinks = Pages.GetPageOutgoingLinks(page);
            if(outgoingLinks == null || outgoingLinks.Length == 0) return null;

            string id = dbPrefix + Guid.NewGuid().ToString();

            StringBuilder buffer = new StringBuilder(300);

            buffer.AppendFormat(@"<div id=""{0}"" style=""display: none;"" class=""pageoutgoinglinksmenu"" onmouseover=""javascript:return __CancelHideTimer();"" onmouseout=""javascript:return __HideDropDown('{0}');"">", id);
            int count = 0;
            foreach(string link in outgoingLinks) {
                PageInfo target = Pages.FindPage(link);
                if(target != null) {
                    count++;
                    PageContent cont = Content.GetPageContent(target, true);

                    string title = FormattingPipeline.PrepareTitle(cont.Title, false, FormattingContext.PageContent, currentPage);

                    buffer.AppendFormat(@"<a href=""{0}{1}"" title=""{2}"">{2}</a>", link, Settings.PageExtension, title, title);
                }
                if(count >= 20) break;
            }
            buffer.Append("</div>");

            sb.Insert(0, buffer.ToString());

            if(count > 0) return id;
            else return null;
        }