Пример #1
0
        protected override void OnLoad(EventArgs e)
        {
            EnsureChildControls();

            // Cached menus are already Loaded
            if (_cached)
            {
                return;
            }

            DbContentCatalog rootCatalog;

//			CssInfo rootCssInfo;

            // Load the catalog to start building a menu from
            rootCatalog = new DbContentCatalog(_catalogID);

            DbContentCatalogCollection catalogs = rootCatalog.GetCatalogs();;

            catalogs.Sort(ContentCompareKey.MenuOrder);

            for (int catalogIndex = 0; catalogIndex < catalogs.Count; catalogIndex++)
            {
                addCatalogToSiteMap(_siteMap.Nodes, rootCatalog, catalogs[catalogIndex]);
            }

            DbContentClipCollection clips = rootCatalog.GetClips();

            clips.Sort(ContentCompareKey.MenuOrder);

            addClipsToSiteMap(_siteMap.Nodes, rootCatalog, rootCatalog, clips);

            _siteMap.Width = _width;

            SiteMapCacheControl.SetSiteMap(_catalogID, _linkFormat, _siteMap);
        }
Пример #2
0
        private void renderCatalog(DbContentCatalog catalog, HtmlTextWriter output)
        {
            float calcSize;                                                                             // Calculated size of objects
            bool  openCatalog   = catalogIsOpen(catalog.ID);
            bool  catalogSelect = Page.User.IsInRole("CMS/Administrator") || Page.User.IsInRole(catalog.EditorRole.Name);
            bool  clipSelect;

            output.WriteFullBeginTag("tr");
            output.WriteLine();
            output.Indent++;

            output.WriteBeginTag("td");
            output.WriteAttribute("style", "padding-left:" + (indent * indentMultiplier + CellPadding.Value).ToString() + "px;");
            output.WriteAttribute("valign", "middle");
            output.WriteAttribute("width", "100%");
            output.Write(HtmlTextWriter.TagRightChar);

            //			if(catalogSelect)
            //			{
            output.WriteBeginTag("a");
            output.WriteAttribute("href", "javascript:" + Page.ClientScript.GetPostBackEventReference(this, "tog_" + catalog.ID.ToString()));
            output.Write(HtmlTextWriter.TagRightChar);
            //			}

            if (openCatalog)
            {
                output.WriteBeginTag("img");
                output.WriteAttribute("src", Page.ResolveUrl(minusIcon));
                output.WriteAttribute("align", "absmiddle");
                output.WriteAttribute("border", "0");
                output.Write(HtmlTextWriter.TagRightChar);
            }
            else
            {
                output.WriteBeginTag("img");
                output.WriteAttribute("src", Page.ResolveUrl(plusIcon));
                output.WriteAttribute("align", "absmiddle");
                output.WriteAttribute("border", "0");
                output.Write(HtmlTextWriter.TagRightChar);
            }

            //			if(catalogSelect)
            output.WriteEndTag("a");

            //			if(catalogSelect)
            //			{
            output.WriteBeginTag("a");
            output.WriteAttribute("href", "javascript:" + GetSelectReference(catalog.ID));
            output.Write(HtmlTextWriter.TagRightChar);
            //			}

            output.WriteBeginTag("img");
            output.WriteAttribute("src", Page.ResolveUrl(catalogIcon));
            output.WriteAttribute("align", "absmiddle");
            output.WriteAttribute("border", "0");
            output.Write(HtmlTextWriter.TagRightChar);

            if (catalog.ID == selectedID & isCatalogSelected)
            {
                output.Write("<strong>");
            }
            output.Write(catalog.ToString());
            if (catalog.ID == selectedID & isCatalogSelected)
            {
                output.Write("</strong>");
            }

            //			if(catalogSelect)
            output.WriteEndTag("a");

            output.WriteEndTag("td");
            output.WriteLine();

            output.WriteBeginTag("td");
            output.WriteAttribute("valign", "top");
            output.Write(HtmlTextWriter.TagRightChar);
            output.Write("&nbsp;");
            output.WriteEndTag("td");

            // Menu Tag
            output.WriteBeginTag("td");
            output.WriteAttribute("valign", "top");
            output.Write(HtmlTextWriter.TagRightChar);
            if (catalog.MenuEnabled)
            {
                output.Write("Menu");
            }
            else
            {
                output.Write("&nbsp;");
            }
            output.WriteEndTag("td");

            output.WriteBeginTag("td");
            output.WriteAttribute("valign", "top");
            output.Write(HtmlTextWriter.TagRightChar);
            output.Write("Catalog");
            output.WriteEndTag("td");

            output.WriteBeginTag("td");
            output.WriteAttribute("valign", "top");
            output.Write(HtmlTextWriter.TagRightChar);
            output.Write(catalog.ModifyDate.ToShortDateString());
            output.WriteEndTag("td");

            //			output.WriteFullBeginTag("td");
            //			output.Write("&nbsp;");
            //			output.WriteEndTag("td");
            //
            //			output.WriteFullBeginTag("td");
            //			output.Write("&nbsp;");
            //			output.WriteEndTag("td");

            output.Indent--;
            output.WriteEndTag("tr");
            output.WriteLine();

            indent++;

            if (openCatalog)
            {
                for (int x = 0; x < catalogs.Count; x++)
                {
                    DbContentCatalog childCatalog = catalogs[x];
                    if (childCatalog.ParentCatalog != null && childCatalog.ParentCatalog.ID == catalog.ID)
                    {
                        renderCatalog(childCatalog, output);
                    }
                }

                DbContentClipCollection clips = catalog.GetClips();
                clips.Sort(ContentCompareKey.MenuEnabled, ContentCompareKey.MenuOrder);

                foreach (DbContentClip clip in clips)
                {
                    // Do not display expired clips unless expire checkbox is selected
                    if (!cbExpired.Checked && DateTime.Now > clip.ExpirationDate)
                    {
                        continue;
                    }

                    // All clips to be selected ONLY if editor, author
                    clipSelect = Page.User.IsInRole(catalog.EditorRole.Name);

                    output.WriteFullBeginTag("tr");
                    output.WriteBeginTag("td");
                    output.WriteAttribute("style", "padding-left:" + (indent * indentMultiplier + CellPadding.Value).ToString() + "px;");
                    output.WriteAttribute("valign", "middle");
                    output.WriteAttribute("width", "100%");
                    output.Write(HtmlTextWriter.TagRightChar);

                    #region Prefix Icon Output - Should Be Empty For All Clips

                    output.WriteBeginTag("div");
                    output.WriteAttribute("style", "float:left;");
                    output.Write(HtmlTextWriter.TagRightChar);

                    output.WriteBeginTag("img");
                    output.WriteAttribute("src", Page.ResolveUrl(blankIcon));
                    output.WriteAttribute("align", "absmiddle");
                    output.WriteAttribute("border", "0");
                    output.Write(HtmlTextWriter.TagRightChar);

                    output.WriteEndTag("div");

                    #endregion

                    #region Icon Output

                    output.WriteBeginTag("div");
                    output.WriteAttribute("style", "float:left;");
                    output.Write(HtmlTextWriter.TagRightChar);

                    if (clipSelect)
                    {
                        output.WriteBeginTag("a");
                        output.WriteAttribute("href", "javascript:" + Page.ClientScript.GetPostBackEventReference(this, "csel_" + clip.ID.ToString()));
                        output.Write(HtmlTextWriter.TagRightChar);
                    }

                    // Clip Icon
                    output.WriteBeginTag("img");
                    if (clip.ExpirationDate <= DateTime.Now)
                    {
                        output.WriteAttribute("src", Page.ResolveUrl(expiredIcon));
                    }
                    else if (clip.PublishDate <= DateTime.Now)
                    {
                        output.WriteAttribute("src", Page.ResolveUrl(publishedIcon));
                    }
                    else
                    {
                        output.WriteAttribute("src", Page.ResolveUrl(prePublishedIcon));
                    }
                    output.WriteAttribute("align", "absmiddle");
                    output.WriteAttribute("border", "0");
                    output.Write(HtmlTextWriter.TagRightChar);

                    if (clipSelect)
                    {
                        output.WriteEndTag("a");
                    }

                    output.WriteEndTag("div");

                    #endregion

                    #region Title Output

                    output.WriteBeginTag("div");
                    output.WriteAttribute("style", "padding-top:3px;float:left;");

                    // Tooltip Properties
                    output.WriteAttribute("onmouseover",
                                          ControlExtender.GetTooltipStartReference(constructTooltip(clip), "#ffffe0", 0));
                    output.WriteAttribute("onmouseout", ControlExtender.GetTooltipEndReference());

                    output.Write(HtmlTextWriter.TagRightChar);

                    if (clipSelect)
                    {
                        output.WriteBeginTag("a");
                        output.WriteAttribute("href", "javascript:" + Page.ClientScript.GetPostBackEventReference(this, "csel_" + clip.ID.ToString()));
                        output.Write(HtmlTextWriter.TagRightChar);
                    }

                    if (selectedClipID == clip.ID & !isCatalogSelected)
                    {
                        output.Write("<strong>");
                    }
                    // Be sure to strip html tags!
                    output.Write(Regex.Replace(clip.Title, "<[^>]*>", ""));
                    if (selectedClipID == clip.ID & !isCatalogSelected)
                    {
                        output.Write("</strong>");
                    }

                    if (clipSelect)
                    {
                        output.WriteEndTag("a");
                    }

                    output.WriteEndTag("div");

                    #endregion

                    output.WriteEndTag("td");

                    // Calculate size
                    calcSize = ((float)clip.Body.Length) / 1024;
                    output.WriteBeginTag("td");
                    output.WriteAttribute("nowrap", "true");
                    output.WriteAttribute("valign", "top");
                    output.Write(HtmlTextWriter.TagRightChar);
                    output.Write(calcSize.ToString("n1"));
                    output.Write(" KB");
                    output.WriteEndTag("td");

                    // Menu Tag
                    output.WriteBeginTag("td");
                    output.WriteAttribute("valign", "top");
                    output.Write(HtmlTextWriter.TagRightChar);
                    if (clip.MenuEnabled)
                    {
                        output.Write("Menu");
                    }
                    else
                    {
                        output.Write("&nbsp;");
                    }
                    output.WriteEndTag("td");

                    output.WriteBeginTag("td");
                    output.WriteAttribute("valign", "top");
                    output.Write(HtmlTextWriter.TagRightChar);
                    output.Write("Clip");
                    output.WriteEndTag("td");

                    output.WriteBeginTag("td");
                    output.WriteAttribute("valign", "top");
                    output.Write(HtmlTextWriter.TagRightChar);
                    output.Write(clip.ModifyDate.ToShortDateString());
                    output.WriteEndTag("td");

                    //					output.WriteBeginTag("td");
                    //					output.WriteAttribute("valign", "top");
                    //					output.Write(HtmlTextWriter.TagRightChar);
                    //					output.Write(clip.PublishDate.ToShortDateString());
                    //					output.WriteEndTag("td");
                    //
                    //					output.WriteBeginTag("td");
                    //					output.WriteAttribute("valign", "top");
                    //					output.Write(HtmlTextWriter.TagRightChar);
                    //					output.Write(clip.ExpirationDate.ToShortDateString());
                    //					output.WriteEndTag("td");

                    output.WriteEndTag("tr");
                }
            }

            indent--;
        }