Пример #1
0
        public override void RenderControl(HtmlTextWriter writer)
        {
            //Render Outer Div
            writer.AddAttribute(HtmlTextWriterAttribute.Class, RepeatDirection.ToLower());
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            //Render Categories
            if (ShowCategories)
            {
                //Render UL
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "categories");
                writer.AddAttribute(HtmlTextWriterAttribute.Title, LocalizeString("Category.ToolTip"));
                writer.RenderBeginTag(HtmlTextWriterTag.Ul);

                //Render Category Links
                var categories = (from cat in ContentItem.Terms where cat.VocabularyId != TagVocabulary.VocabularyId select cat);

                for (int i = 0; i <= categories.Count() - 1; i++)
                {
                    if (i == 0)
                    {
                        //First Category
                        writer.AddAttribute(HtmlTextWriterAttribute.Class, "first_tag");
                    }
                    else if (i == categories.Count() - 1)
                    {
                        //Last Category
                        writer.AddAttribute(HtmlTextWriterAttribute.Class, "last_tag");
                    }
                    writer.RenderBeginTag(HtmlTextWriterTag.Li);

                    RenderTerm(writer, categories.ToList()[i], i < categories.Count() - 1 && RepeatDirection.ToLower() == "horizontal");

                    writer.RenderEndTag();
                }

                writer.RenderEndTag();
            }

            if (ShowTags)
            {
                //Render UL
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "tags");
                writer.AddAttribute(HtmlTextWriterAttribute.Title, LocalizeString("Tag.ToolTip"));
                writer.RenderBeginTag(HtmlTextWriterTag.Ul);

                //Render Tag Links
                var tags = (from cat in ContentItem.Terms where cat.VocabularyId == TagVocabulary.VocabularyId select cat);

                for (int i = 0; i <= tags.Count() - 1; i++)
                {
                    if (i == 0)
                    {
                        //First Tag
                        writer.AddAttribute(HtmlTextWriterAttribute.Class, "first_tag");
                    }
                    else if (i == tags.Count() - 1)
                    {
                        //Last Tag
                        writer.AddAttribute(HtmlTextWriterAttribute.Class, "last_tag");
                    }
                    writer.RenderBeginTag(HtmlTextWriterTag.Li);

                    RenderTerm(writer, tags.ToList()[i], i < tags.Count() - 1 && RepeatDirection.ToLower() == "horizontal");

                    writer.RenderEndTag();
                }

                if (AllowTagging)
                {
                    writer.RenderBeginTag(HtmlTextWriterTag.Li);

                    if (IsEditMode)
                    {
                        writer.Write("&nbsp;&nbsp;");

                        writer.AddAttribute(HtmlTextWriterAttribute.Name, UniqueID);
                        writer.AddAttribute("OnKeyPress", "return disableEnterKey(event)");
                        writer.RenderBeginTag(HtmlTextWriterTag.Input);
                        writer.RenderEndTag();

                        writer.Write("&nbsp;&nbsp;");

                        //Render Save Button
                        RenderButton(writer, "Save", SaveImageUrl);

                        writer.Write("&nbsp;&nbsp;");

                        //Render Add Button
                        RenderButton(writer, "Cancel", CancelImageUrl);
                    }
                    else
                    {
                        writer.Write("&nbsp;&nbsp;");

                        //Render Add Button
                        RenderButton(writer, "Add", AddImageUrl);
                    }

                    writer.RenderEndTag();
                }

                writer.RenderEndTag();
            }

            writer.RenderEndTag();
        }