using System;
using DotNetNuke.Common;
using DotNetNuke.Entities.Portals;
using DotNetNuke.Framework.Providers;
using DotNetNuke.Modules.HTMLEditorProvider;
using FredCK.FCKeditorV2;
namespace DotNetNuke.HtmlEditor
{
public class FckHtmlEditorProvider : HtmlEditorProvider
{
private const string ProviderType = "htmlEditor";
private ProviderConfiguration _providerConfiguration = ProviderConfiguration.GetProviderConfiguration(ProviderType);
private string _providerPath = string.Empty;
private FCKeditor _fckEditor = new FCKeditor();
private string _controlId = string.Empty;
private string _rootImageDirectory = string.Empty;
private string _toolbarSet = string.Empty;
#region Provider
public FckHtmlEditorProvider()
{
PortalSettings ps = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings();
Provider p = _providerConfiguration.Providers[_providerConfiguration.DefaultProvider] as Provider;
_providerPath = p.Attributes["providerPath"];
_toolbarSet = p.Attributes["toolbarSet"];
}
public string ProviderPath
{
get { return _providerPath; }
}
public string ToolbarSet
{
get { return _toolbarSet; }
}
#endregion
#region Properties
public override System.Web.UI.Control HtmlEditorControl
{
get
{
return _fckEditor;
}
}
public override string Text
{
get
{
return _fckEditor.Value;
}
set
{
_fckEditor.Value = value;
}
}
public override string ControlID
{
get
{
return _controlId;
}
set
{
_controlId = value;
}
}
public override System.Collections.ArrayList AdditionalToolbars
{
get
{
return null;
}
set
{
}
}
public override string RootImageDirectory
{
get
{
if( _rootImageDirectory == string.Empty )
{
PortalSettings ps = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings();
return ps.HomeDirectory.Substring(ps.HomeDirectory.IndexOf("/Portals"));
}
else
{
return _rootImageDirectory;
}
}
set
{
_rootImageDirectory = value;
}
}
public override System.Web.UI.WebControls.Unit Width
{
get
{
return _fckEditor.Width;
}
set
{
_fckEditor.Width = value;
}
}
public override System.Web.UI.WebControls.Unit Height
{
get
{
return _fckEditor.Height;
}
set
{
_fckEditor.Height = value;
}
}
#endregion
#region Public Methods
public override void AddToolbar() { }
public override void Initialize()
{
_fckEditor = new FCKeditor();
_fckEditor.ID = this.ControlID;
_fckEditor.BasePath =
DotNetNuke.Common.Globals.ResolveUrl("~/Providers/HtmlEditorProviders/FckHtmlEditorProvider/FCKeditor/");
_fckEditor.ToolbarSet = this.ToolbarSet;
}
#endregion
}
}