📄 ftb3htmleditorprovider.cs
字号:
wordCleanScript.Append("wordContent = String(wordContent).replace(/<\\?xml:[^>]*>/g, \'\'); ");
wordCleanScript.Append("wordContent = String(wordContent).replace(/<\\/?st1:[^>]*>/g,\'\'); ");
wordCleanScript.Append("wordContent = String(wordContent).replace(/<\\/?[a-z]\\:[^>]*>/g,\'\'); ");
wordCleanScript.Append("wordContent = String(wordContent).replace(/<\\/?span[^>]*>/gi,\'\'); ");
wordCleanScript.Append("wordContent = String(wordContent).replace(/<\\/?div[^>]*>/gi,\'\'); ");
wordCleanScript.Append("wordContent = String(wordContent).replace(/<\\/?font[^>]*>/gi,\'\'); ");
wordCleanScript.Append("wordContent = String(wordContent).replace(/<\\/?pre[^>]*>/gi,\'\'); ");
wordCleanScript.Append("wordContent = String(wordContent).replace(/<\\/?h[1-6][^>]*>/gi,\'\'); ");
wordCleanScript.Append("this.ftb.designEditor.document.body.innerHTML = wordContent;");
ToolbarButton dnnWordClean = new ToolbarButton();
//TODO localize this if possible
dnnWordClean.Title = DotNetNuke.Services.Localization.Localization.GetString("WordCleanButton");
dnnWordClean.ButtonImage = "wordclean";
dnnWordClean.ScriptBlock = wordCleanScript.ToString();
tb.Items.Add(dnnWordClean);
}
return tb;
}
/// -----------------------------------------------------------------------------
/// <summary>
/// Creates the Styles Menu
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>A FreeTextBox StylesMenu</returns>
/// <history>
/// [cnurse] 12/13/2004 Documented
/// </history>
/// -----------------------------------------------------------------------------
private FreeTextBoxControls.StylesMenu AddStylesMenu()
{
PortalSettings portalSettings = ((PortalSettings) HttpContext.Current.Items["PortalSettings"]);
StylesMenu styleMenu = new StylesMenu();
this.styles = new ArrayList();
//Parse default css
ParseStyleSheet(Common.Globals.HostPath + "default.css");
//Parse skin stylesheet(s)
ParseStyleSheet(PortalSettings.ActiveTab.SkinPath + "skin.css");
ParseStyleSheet(PortalSettings.ActiveTab.SkinSrc.Replace(".ascx", ".css"));
//Parse portal stylesheet
ParseStyleSheet(PortalSettings.HomeDirectory + "portal.css");
this.styles.Sort();
foreach (string style in styles)
{
FreeTextBoxControls.ToolbarListItem listItem = new FreeTextBoxControls.ToolbarListItem();
listItem.Text = style;
listItem.Value = style;
styleMenu.Items.Add(listItem);
}
return styleMenu;
}
/// -----------------------------------------------------------------------------
/// <summary>
/// Creates the Style ToolBar
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>A FreeTextBox ToolBar</returns>
/// <history>
/// [cnurse] 12/13/2004 Documented
/// </history>
/// -----------------------------------------------------------------------------
private FreeTextBoxControls.Toolbar AddStyleToolBar()
{
FreeTextBoxControls.Toolbar tb = new FreeTextBoxControls.Toolbar();
tb.Items.Add(AddStylesMenu());
tb.Items.Add(new ParagraphMenu());
tb.Items.Add(new FontFacesMenu());
tb.Items.Add(new FontSizesMenu());
return tb;
}
/// -----------------------------------------------------------------------------
/// <summary>
/// Creates the Text ToolBar
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>A FreeTextBox ToolBar</returns>
/// <history>
/// [cnurse] 12/13/2004 Documented
/// </history>
/// -----------------------------------------------------------------------------
private FreeTextBoxControls.Toolbar AddTextToolBar()
{
FreeTextBoxControls.Toolbar tb = new FreeTextBoxControls.Toolbar();
tb.Items.Add(new Bold());
tb.Items.Add(new Italic());
tb.Items.Add(new Underline());
tb.Items.Add(new StrikeThrough());
tb.Items.Add(new SuperScript());
tb.Items.Add(new SubScript());
tb.Items.Add(new RemoveFormat());
return tb;
}
/// -----------------------------------------------------------------------------
/// <summary>
/// Creates the Table ToolBar in FreeTextBox
/// (Pro edition only)
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>A FreeTextBox ToolBar</returns>
/// <history>
/// [JWhite] 2/25/2005 Added/Documented
/// </history>
/// -----------------------------------------------------------------------------
private FreeTextBoxControls.Toolbar AddTableToolBar()
{
FreeTextBoxControls.Toolbar tb = new FreeTextBoxControls.Toolbar();
tb.Items.Add(new InsertTable());
tb.Items.Add(new EditTable());
if (enableProFeatures)
{
tb.Items.Add(new InsertTableColumnAfter()); //pro only
tb.Items.Add(new InsertTableColumnBefore()); //pro only
tb.Items.Add(new InsertTableRowBefore()); //pro only
tb.Items.Add(new InsertTableRowAfter()); //pro only
tb.Items.Add(new DeleteTableColumn()); //pro only
tb.Items.Add(new DeleteTableRow()); //pro only
}
return tb;
}
/// -----------------------------------------------------------------------------
/// <summary>
/// Creates the Form ToolBar in FreeTextBox
/// (Pro edition only)
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>A FreeTextBox ToolBar</returns>
/// <history>
/// [JWhite] 2/27/2005 Added/Documented
/// </history>
/// -----------------------------------------------------------------------------
private FreeTextBoxControls.Toolbar AddFormToolBar()
{
FreeTextBoxControls.Toolbar tb = new FreeTextBoxControls.Toolbar();
tb.Items.Add(new InsertForm()); //pro only
tb.Items.Add(new InsertTextBox()); //pro only
tb.Items.Add(new InsertTextArea()); //pro only
tb.Items.Add(new InsertRadioButton()); //pro only
tb.Items.Add(new InsertCheckBox()); //pro only
tb.Items.Add(new InsertDropDownList()); //pro only
tb.Items.Add(new InsertButton()); //pro only
return tb;
}
/// -----------------------------------------------------------------------------
/// <summary>
/// Parses the Stylesheet looking for styles
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="strCssFile">Stylesheet to parse</param>
/// <history>
/// [cnurse] 12/13/2004 Documented
/// </history>
/// -----------------------------------------------------------------------------
private void ParseStyleSheet (string cssFile)
{
if (File.Exists(HttpContext.Current.Server.MapPath(cssFile)))
{
StreamReader streamReader;
string styleLine;
ArrayList alStyles = new ArrayList();
int i;
streamReader = File.OpenText(HttpContext.Current.Server.MapPath(cssFile));
while (streamReader.Peek() != - 1)
{
styleLine = streamReader.ReadLine();
if (styleLine.Trim().StartsWith("."))
{
i = styleLine.IndexOf(" ");
if (i != - 1)
{
styleLine = styleLine.Substring(0, i);
}
i = styleLine.IndexOf("{");
if (i != - 1)
{
styleLine = styleLine.Substring(0, i);
}
if (! styles.Contains(styleLine.Substring(1)))
{
styles.Add(styleLine.Substring(1));
}
}
}
streamReader.Close();
}
}
#endregion
#region "Public Methods"
/// -----------------------------------------------------------------------------
/// <summary>
/// Adds additional toolbar(s) to the FTB control
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [cnurse] 01/12/2005 created
/// </history>
/// -----------------------------------------------------------------------------
public override void AddToolbar ()
{
foreach (FreeTextBoxControls.Toolbar toolbar in AdditionalToolbars)
{
cntlFtb.Toolbars.Add(toolbar);
}
}
/// -----------------------------------------------------------------------------
/// <summary>
/// Initialises the control
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [cnurse] 12/13/2004 Documented
/// </history>
/// -----------------------------------------------------------------------------
public override void Initialize ()
{
//initialize the control
this.cntlFtb = new FreeTextBoxControls.FreeTextBox();
this.cntlFtb.Language = System.Threading.Thread.CurrentThread.CurrentUICulture.Name;
this.cntlFtb.ButtonImagesLocation = ResourceLocation.ExternalFile;
this.cntlFtb.JavaScriptLocation = ResourceLocation.ExternalFile;
this.cntlFtb.ToolbarImagesLocation = ResourceLocation.ExternalFile;
this.cntlFtb.ID = ControlID;
this.cntlFtb.AutoGenerateToolbarsFromString = false;
//Build the Standard ToolBar Collection
this.cntlFtb.Toolbars.Clear();
this.cntlFtb.Toolbars.Add(AddStyleToolBar());
this.cntlFtb.Toolbars.Add(AddColorToolBar());
this.cntlFtb.Toolbars.Add(AddTextToolBar());
this.cntlFtb.Toolbars.Add(AddFormatToolBar());
this.cntlFtb.Toolbars.Add(AddEditToolBar());
this.cntlFtb.Toolbars.Add(AddInsertToolBar());
this.cntlFtb.Toolbars.Add(AddTableToolBar());
if (enableProFeatures)
{
cntlFtb.Toolbars.Add(AddFormToolBar());
}
this.cntlFtb.Toolbars.Add(AddSpecialToolBar());
this.cntlFtb.ImageGalleryUrl = DotNetNuke.Common.Globals.ResolveUrl("~/Providers/HtmlEditorProviders/Ftb3HtmlEditorProvider/ftb3/ftb.imagegallery.aspx?cif=~" + RootImageDirectory + "&rif=~" + RootImageDirectory + "&portalid=" + PortalSettings.PortalId);
this.cntlFtb.SupportFolder = DotNetNuke.Common.Globals.ResolveUrl("~/Providers/HtmlEditorProviders/Ftb3HtmlEditorProvider/ftb3/");
switch (toolbarStyle)
{
case "OfficeMac":
cntlFtb.ToolbarStyleConfiguration = ToolbarStyleConfiguration.OfficeMac;
break;
case "Office2000":
cntlFtb.ToolbarStyleConfiguration = ToolbarStyleConfiguration.Office2000;
break;
case "OfficeXP":
cntlFtb.ToolbarStyleConfiguration = ToolbarStyleConfiguration.OfficeXP;
break;
case "Office2003":
cntlFtb.ToolbarStyleConfiguration = ToolbarStyleConfiguration.Office2003;
break;
default:
cntlFtb.ToolbarStyleConfiguration = ToolbarStyleConfiguration.NotSet;
break;
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -