Example #1
0
 public override string BuildHtml(UbbParser parser, string param, string content)
 {
     if (m_AllowIMG)
         return base.BuildHtml(parser, param, content);
     else
         return "图片:" + GetLink(content, m_AllowURL);
 }
Example #2
0
        public override string BuildHtml(UbbParser parser, string param, string content)
        {
            if (OnCheckPermission == null)
            {
                throw new ArgumentNullException("OnCheckPermission");
            }

            CheckPermissionResults result = OnCheckPermission(param);

            if (result == CheckPermissionResults.NeedComment)
            {
                //TODO:国际化
                return("<p class=\"maxcode-hidetips\">隐藏内容, 需要回复可见</p>");
            }
            else if (result == CheckPermissionResults.NoPermission)
            {
                //TODO:国际化
                return("<p class=\"maxcode-hidetips\">隐藏内容, 您所在用户组没有权限查看</p>");
            }
            else if (result == CheckPermissionResults.HasPermission)
            {
                //TODO:国际化
                return(string.Format("<div class=\"maxcode-hidecontent\"><p class=\"maxcode-hidetips\">隐藏内容, 已获得查看权限</p>{0}</div>", content));
            }
            else if (result == CheckPermissionResults.HasManagePermission)
            { //TODO:国际化
                return(string.Format("<div class=\"maxcode-hidecontent\"><p class=\"maxcode-hidetips\">隐藏内容, 您有管理权限,已获得查看权限</p>{0}</div>", content));
            }
            else
            {
                return(content);
            }
        }
Example #3
0
        public override string BuildHtml(UbbParser parser, string param, string content)
        {
            if (OnCheckPermission == null)
                throw new ArgumentNullException("OnCheckPermission");

            CheckPermissionResults result = OnCheckPermission(param);

            if (result == CheckPermissionResults.NeedComment)
            {
                //TODO:国际化
                return "<p class=\"maxcode-hidetips\">隐藏内容, 需要回复可见</p>";
            }
            else if (result == CheckPermissionResults.NoPermission)
            {
                //TODO:国际化
                return "<p class=\"maxcode-hidetips\">隐藏内容, 您所在用户组没有权限查看</p>";
            }
            else if (result == CheckPermissionResults.HasPermission)
            {
                //TODO:国际化
                return string.Format("<div class=\"maxcode-hidecontent\"><p class=\"maxcode-hidetips\">隐藏内容, 已获得查看权限</p>{0}</div>", content);
            }
            else if (result == CheckPermissionResults.HasManagePermission)
            { //TODO:国际化
                return string.Format("<div class=\"maxcode-hidecontent\"><p class=\"maxcode-hidetips\">隐藏内容, 您有管理权限,已获得查看权限</p>{0}</div>", content);
            }
            else
            {
                return content;
            }
        }
Example #4
0
            public override string BuildHtml(UbbParser parser, string param, string content)
            {
                UbbTagHandler handler = parser.AddTagHandler(new TD());

                string result = base.BuildHtml(parser, param, content);

                parser.RemoveTagHandler(handler);

                return result;
            }
Example #5
0
        public static string ParseForQuote(string content)
        {
            UbbParser parser = new UbbParser();

            content = parser.QuoteToUbb(content);

            content = HtmlToUbbParser.Html2Ubb(-1, content);

            return content;
        }
Example #6
0
        public static string ParseForQuote(string content)
        {
            UbbParser parser = new UbbParser();

            content = parser.QuoteToUbb(content);

            content = HtmlToUbbParser.Html2Ubb(-1, content);

            return(content);
        }
Example #7
0
            public override string BuildHtml(UbbParser parser, string param, string content)
            {
                UbbTagHandler handler = parser.AddTagHandler(new TD());

                string result = base.BuildHtml(parser, param, content);

                parser.RemoveTagHandler(handler);

                return(result);
            }
Example #8
0
        public override string BuildHtml(UbbParser parser, string param, string content)
        {
            MediaInfo media = this.GetMediaInfo(param, content);

            bool autoPlay = media.AutoPlay == "1" ? true : false;

            string width  = string.IsNullOrEmpty(media.Width) ? "400" : media.Width;
            string height = string.IsNullOrEmpty(media.Height) ? DefaultHeight.ToString() : media.Height;

            return(BuildHtml(width, height, autoPlay, media.URL));
        }
Example #9
0
 public override string BuildHtml(UbbParser parser, string param, string content)
 {
     if (m_AllowIMG)
     {
         return(base.BuildHtml(parser, param, content));
     }
     else
     {
         return("图片:" + GetLink(content, m_AllowURL));
     }
 }
Example #10
0
        public static string ParseForEdit(string content)
        {
            UbbParser parser = new UbbParser();

            content = parser.QuoteToUbb(content);

            content = HtmlToUbbParser.Html2Ubb(-1, content);

            content = System.Web.HttpUtility.HtmlEncode(content);

            return(content);
        }
Example #11
0
		public static string ParseForEdit(string content)
		{
			UbbParser parser = new UbbParser();

            content = parser.QuoteToUbb(content);

            content = HtmlToUbbParser.Html2Ubb(-1, content);

			content = System.Web.HttpUtility.HtmlEncode(content);

			return content;
		}
Example #12
0
        public override string BuildHtml(UbbParser parser, string param, string content)
        {

            MediaInfo media = this.GetMediaInfo(param, content);

            bool autoPlay = media.AutoPlay == "1" ? true : false;

            string width = string.IsNullOrEmpty(media.Width) ? "400" : media.Width;
            string height = string.IsNullOrEmpty(media.Height) ? "300" : media.Height;

            return BuildHtml(width, height, autoPlay, media.URL);
        }
Example #13
0
 public override string BuildHtml(UbbParser parser, string param, string content)
 {
     if (m_AllowURL)
         return base.BuildHtml(parser, param, content);
     else
     {
         if (string.IsNullOrEmpty(param))
             return content;
         else if (StringUtil.EqualsIgnoreCase(param, content))
             return string.Concat("链接:", param);
         else
             return string.Concat("链接:", param, " (", content, ")");
     }
 }
Example #14
0
        public override string BuildHtml(UbbParser parser, string param, string content)
		{
			if (!parser.EncodeHtml)
				content = System.Web.HttpUtility.HtmlEncode(content);
			return string.Format(
				@"
<!--ubb-begin-->
<div class=""maxcode-code"">
<p>���� <a class=""maxcode-code-copy"" href=""javascript:;"" onclick=""ubbCopy(this)"">����</a> - <a class=""maxcode-code-run"" href=""javascript:;"" onclick=""ubbRun(this)"">����</a></p>
<pre><code>{0}</code></pre>
</div>
<!--ubb-end-->",
				content.TrimStart('\r','\n')
			);
		}
Example #15
0
        public override string BuildHtml(UbbParser parser, string param, string content)
        {
            content = parser.DoUbbToHtml(content, CleanFooter);

            while(StringUtil.StartsWithIgnoreCase(content, "<br />"))
                content = content.Remove(0, 6);
            while (StringUtil.EndsWithIgnoreCase(content, "<br />"))
                content = content.Remove(content.Length-6);

            return string.Concat(
                @"<div class=""maxcode-quote"">"
                , content
                , "</div>"
                );
        }
Example #16
0
        public override string BuildHtml(UbbParser parser, string param, string content)
        {
            if (string.IsNullOrEmpty(param))
            {
                m_HtmlTagName = "ul";
            }
            else
            {
                m_HtmlTagName = "ol";
            }

            HtmlTextWriter writer = parser.GetHtmlTextWriter();

            writer.WriteBeginTag(this.HtmlTagName);

            //TODO:重载
            BuildAttribute(writer, param, content);

            writer.Write(HtmlTextWriter.TagRightChar);

            content = content.TrimStart();

            if (StringUtil.StartsWith(content, "[*]") == false)
            {
                int tmp = content.IndexOf("[*]");

                if (tmp > 0)
                {
                    content = content.Substring(tmp);
                }
            }

            string parsedContent = parser.DoUbbToHtml(content, false);
            int    itemCount     = ParseListItem(parsedContent, out parsedContent);

            writer.Write(parsedContent);

            if (itemCount > 0)
            {
                writer.WriteEndTag("li");
            }

            writer.WriteEndTag(this.HtmlTagName);

            return(writer.InnerWriter.ToString());
        }
Example #17
0
        public override string BuildHtml(UbbParser parser, string param, string content)
        {
            if (!parser.EncodeHtml)
            {
                content = System.Web.HttpUtility.HtmlEncode(content);
            }
            return(string.Format(
                       @"
<!--ubb-begin-->
<div class=""maxcode-code"">
<p>���� <a class=""maxcode-code-copy"" href=""javascript:;"" onclick=""ubbCopy(this)"">����</a> - <a class=""maxcode-code-run"" href=""javascript:;"" onclick=""ubbRun(this)"">����</a></p>
<pre><code>{0}</code></pre>
</div>
<!--ubb-end-->",
                       content.TrimStart('\r', '\n')
                       ));
        }
Example #18
0
        public override string BuildHtml(UbbParser parser, string param, string content)
        {
            content = parser.DoUbbToHtml(content, CleanFooter);

            while (StringUtil.StartsWithIgnoreCase(content, "<br />"))
            {
                content = content.Remove(0, 6);
            }
            while (StringUtil.EndsWithIgnoreCase(content, "<br />"))
            {
                content = content.Remove(content.Length - 6);
            }

            return(string.Concat(
                       @"<div class=""maxcode-quote"">"
                       , content
                       , "</div>"
                       ));
        }
Example #19
0
 public override string BuildHtml(UbbParser parser, string param, string content)
 {
     if (m_AllowURL)
     {
         return(base.BuildHtml(parser, param, content));
     }
     else
     {
         if (string.IsNullOrEmpty(param))
         {
             return(content);
         }
         else if (StringUtil.EqualsIgnoreCase(param, content))
         {
             return(string.Concat("链接:", param));
         }
         else
         {
             return(string.Concat("链接:", param, " (", content, ")"));
         }
     }
 }
Example #20
0
        /// <summary>
        /// 创建HTML
        /// </summary>
        /// <param name="parser">解析器</param>
        /// <param name="param">UBB参数</param>
        /// <param name="content">UBB内容</param>
        /// <returns>HTML结果</returns>
        public virtual string BuildHtml(UbbParser parser, string param, string content)
        {
            HtmlTextWriter writer = parser.GetHtmlTextWriter();

            writer.WriteBeginTag(this.HtmlTagName);

            BuildAttribute(writer, param, content);

            if (IsSingleHtmlTag)
            {
                writer.Write(HtmlTextWriter.SelfClosingTagEnd);
            }
            else
            {
                writer.Write(HtmlTextWriter.TagRightChar);

                writer.Write(parser.DoUbbToHtml(content, CleanFooter));
                writer.WriteEndTag(this.HtmlTagName);
            }

            return(writer.InnerWriter.ToString());
        }
Example #21
0
        public override string BuildHtml(UbbParser parser, string param, string content) 
		{
			if(string.IsNullOrEmpty(param))
				m_HtmlTagName = "ul";
			else
				m_HtmlTagName = "ol";
			
			HtmlTextWriter writer = parser.GetHtmlTextWriter();
			
			writer.WriteBeginTag(this.HtmlTagName);
			
			//TODO:重载
			BuildAttribute(writer, param, content);
			
			writer.Write(HtmlTextWriter.TagRightChar);
			
			content = content.TrimStart();
			
			if(StringUtil.StartsWith(content, "[*]") == false)
			{
				int tmp = content.IndexOf("[*]");
				
				if(tmp > 0)
					content = content.Substring(tmp);
			}

            string parsedContent = parser.DoUbbToHtml(content, false);
			int itemCount = ParseListItem(parsedContent, out parsedContent);
			
			writer.Write(parsedContent);
			
			if(itemCount > 0)
				writer.WriteEndTag("li");
			
			writer.WriteEndTag(this.HtmlTagName);
			
			return writer.InnerWriter.ToString();
		}
Example #22
0
        /// <summary>
        /// 编辑的时候 把HTML转回为UBB
        /// </summary>
        /// <param name="content"></param>
        /// <param name="allowHTML"></param>
        /// <param name="allowMaxCode3"></param>
        /// <returns></returns>
        public static string ParseWhenEdit(int postUserID, string content, bool enableMaxCode, bool enableMaxCode3, bool enableHtml, bool allowHtml, bool allowMaxCode3)
        {
            //if (allowHTML || allowMaxCode3)

            content = new UbbParser().QuoteToUbb(content);

            //编辑时 为使[code]里的内容能正确显示  再编码一次[code]里的内容
            //处理CODE

            Dictionary<Guid, string> codeTable = new Dictionary<Guid, string>();

            
            content = regex_ubb.Replace(content, delegate(Match m)
            {
                StringBuilder sb = new StringBuilder();
                string temp = regex_code.Replace(m.Groups[1].Value, delegate(Match m2)
                {
                    Guid key = Guid.NewGuid();
                    codeTable.Add(key, string.Concat("[code]", m2.Groups[1].Value, "[/code]"));
                    sb.Append(key.ToString());
                    return key.ToString();
                });
                if (sb.Length > 0)
                    return sb.ToString();
                else
                    return temp;
            });

            if (enableMaxCode3 || enableMaxCode)
            {
                if (allowMaxCode3)
                    content = HtmlToUbbParser.Html2Ubb(
                        postUserID,
                        content);
                else if (allowHtml == false)
                    content = StringUtil.ClearAngleBracket(content);
            }
            else if (enableHtml && allowHtml == false)
            {
                if (allowMaxCode3)
                    content = HtmlToUbbParser.Html2Ubb(
                        postUserID,
                        content);
                else
                    content = StringUtil.ClearAngleBracket(content);
            }

            content = System.Web.HttpUtility.HtmlEncode(content);

            if (codeTable.Count > 0)
            {
                //只有一个[code]标签,直接用string.Replace
                if (codeTable.Count == 1)
                {
                    foreach (KeyValuePair<Guid, string> item in codeTable)
                    {
                        return content.Replace(item.Key.ToString(), item.Value);
                    }
                }
                //有多个[code]标签,用StringBuilder.Replace性能更好
                else
                {
                    StringBuilder contentBuilder = new StringBuilder(content);

                    foreach (KeyValuePair<Guid, string> item in codeTable)
                    {
                        contentBuilder.Replace(item.Key.ToString(), item.Value);
                    }

                    return contentBuilder.ToString();
                }
            }

            return content;
        }
Example #23
0
        /// <summary>
        /// 处理[hide][free]标签
        /// </summary>
        /// <param name="content"></param>
        /// <param name="threadID"></param>
        /// <returns></returns>
        public static string ProcessThreadContentTags(string content, int threadID)
        {

            BasicThread thread = PostBOV5.Instance.GetThread(threadID);

            Forum forum = null;
            if (thread != null)
                forum = ForumBO.Instance.GetForum(thread.ForumID);

            AuthUser currentUser = User.Current;
            if (AllSettings.Current.ForumSettings.Items.GetForumSettingItem(thread.ForumID).EnableHiddenTag)
            {

                MaxHideTag handler = new MaxHideTag();
                handler.OnCheckPermission = delegate(string hideTagParam)
                {

                    if (thread == null)
                        return MaxHideTag.CheckPermissionResults.NoProcessHideTag;


                    if (forum == null)
                        return MaxHideTag.CheckPermissionResults.NoProcessHideTag;

                    if (AllSettings.Current.ForumPermissionSet.Nodes.GetPermission(forum.ForumID).Can(currentUser, ForumPermissionSetNode.Action.AlwaysViewContents))
                        return MaxHideTag.CheckPermissionResults.HasManagePermission;

                    AuthUser user = User.Current;

                    if (hideTagParam != null && hideTagParam.Trim() != string.Empty && Regex.IsMatch(hideTagParam, "^\\d+$"))
                    {
                        int need = int.Parse(hideTagParam);

                        if (user.UserID == thread.PostUserID && user.UserID != 0)
                            return MaxHideTag.CheckPermissionResults.HasPermission;

                        if (user != null && user.Points >= need)
                            return MaxHideTag.CheckPermissionResults.HasPermission;
                        else
                            return MaxHideTag.CheckPermissionResults.NoPermission;
                    }
                    else
                    {
                        if(thread.IsReplied(user))
                            return MaxHideTag.CheckPermissionResults.HasPermission;
                        else
                            return MaxHideTag.CheckPermissionResults.NeedComment;
                    }

                    //return MaxHideTag.CheckPermissionResults.NeedComment;
                };

                UbbParser parser = new UbbParser();
                parser.EncodeHtml = false;
                parser.AddTagHandler(handler);


                if (thread != null && forum != null && thread.Price > 0)
                {
                    content = ProcessFreeTag(content, thread, forum);
                }
                return parser.UbbToHtml(content);
            }
            else
            {
                if (thread != null && forum != null && thread.Price > 0)
                {
                    content = ProcessFreeTag(content, thread, forum);
                }
                return content;
            }

        }
Example #24
0
		/// <summary>
		/// 创建HTML
		/// </summary>
		/// <param name="parser">解析器</param>
		/// <param name="param">UBB参数</param>
		/// <param name="content">UBB内容</param>
		/// <returns>HTML结果</returns>
        public virtual string BuildHtml(UbbParser parser, string param, string content)
		{
			HtmlTextWriter writer = parser.GetHtmlTextWriter();

			writer.WriteBeginTag(this.HtmlTagName);

			BuildAttribute(writer, param, content);

			if (IsSingleHtmlTag)
				writer.Write(HtmlTextWriter.SelfClosingTagEnd);
			else
			{
				writer.Write(HtmlTextWriter.TagRightChar);

                writer.Write(parser.DoUbbToHtml(content, CleanFooter));
				writer.WriteEndTag(this.HtmlTagName);
			}

			return writer.InnerWriter.ToString();
		}
Example #25
0
 public override string BuildHtml(UbbParser parser, string param, string content)
 {
     return(base.BuildHtml(parser, param, content));
 }
Example #26
0
 public override string BuildHtml(UbbParser parser, string param, string content)
 {
     return base.BuildHtml(parser, param, content);
 }