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); }
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); } }
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; } }
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; }
public static string ParseForQuote(string content) { UbbParser parser = new UbbParser(); content = parser.QuoteToUbb(content); content = HtmlToUbbParser.Html2Ubb(-1, content); return content; }
public static string ParseForQuote(string content) { UbbParser parser = new UbbParser(); content = parser.QuoteToUbb(content); content = HtmlToUbbParser.Html2Ubb(-1, content); return(content); }
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); }
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)); }
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)); } }
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); }
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; }
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); }
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, ")"); } }
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') ); }
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>" ); }
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()); }
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') )); }
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>" )); }
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, ")")); } } }
/// <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()); }
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(); }
/// <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; }
/// <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; } }
/// <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(); }
public override string BuildHtml(UbbParser parser, string param, string content) { return(base.BuildHtml(parser, param, content)); }
public override string BuildHtml(UbbParser parser, string param, string content) { return base.BuildHtml(parser, param, content); }