Set available buttons for TinyMCE Editor in EPiServer 8+

From this guide:
http://world.episerver.com/documentation/Items/Developers-Guide/Episerver-CMS/9/Content/Properties/Property-settings/

A toolbar looking like this (quite many buttons available):
Image 20160517 145713 001

Uses this TinyMCESettings C# code:

using EPiServer.Core.PropertySettings;
using EPiServer.Editor.TinyMCE;
using EPiServer.ServiceLocation;

namespace MySolution.Core.ContentEditing
{
    [ServiceConfiguration(ServiceType = typeof(PropertySettings))]
    public class DefaultTinyMCESettings : PropertySettings<TinyMCESettings>
    {
        public DefaultTinyMCESettings()
        {
            IsDefault = true;
            DisplayName = "Default settings";
            Description = "Default configuration as defined by the developers.";
        }

        public override TinyMCESettings GetPropertySettings()
        {
            var settings = new TinyMCESettings();

            settings.ToolbarRows.Add(new ToolbarRow(new string[]
            {
                TinyMCEButtons.EPiServerLink, TinyMCEButtons.Unlink, TinyMCEButtons.Image, TinyMCEButtons.EPiServerImageEditor, TinyMCEButtons.EPiServerPersonalizedContent, TinyMCEButtons.Separator,
                TinyMCEButtons.PasteText, TinyMCEButtons.PasteWord, TinyMCEButtons.RemoveFormat, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.Table, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.RowProperties, TinyMCEButtons.TableButtons.CellProperties, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.InsertRowBefore, TinyMCEButtons.TableButtons.InsertRowAfter, TinyMCEButtons.TableButtons.DeleteRow, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.InsertColumnBefore, TinyMCEButtons.TableButtons.InsertColumnsAfter, TinyMCEButtons.TableButtons.DeleteColumns, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.SplitCells, TinyMCEButtons.TableButtons.MergeCells
            }));
            settings.ToolbarRows.Add(new ToolbarRow(new string[]
            {
                TinyMCEButtons.Bold, TinyMCEButtons.Italic, TinyMCEButtons.EPiServerQuote, TinyMCEButtons.Separator,
                TinyMCEButtons.JustifyLeft, TinyMCEButtons.JustifyCenter, TinyMCEButtons.Separator,
                TinyMCEButtons.SuperScript, TinyMCEButtons.SubScript, TinyMCEButtons.BulletedList, TinyMCEButtons.NumericList, TinyMCEButtons.CharacterMap, TinyMCEButtons.Outdent, TinyMCEButtons.Indent, TinyMCEButtons.Separator,
                TinyMCEButtons.StyleSelect, TinyMCEButtons.Separator,
                TinyMCEButtons.Undo, TinyMCEButtons.Redo, TinyMCEButtons.Separator,
                TinyMCEButtons.Search, TinyMCEButtons.Replace, TinyMCEButtons.Separator,
                TinyMCEButtons.Code, TinyMCEButtons.Separator,
                TinyMCEButtons.Fullscreen
            }));

            // Add the default non-visual plugins that replaces built in functionality with EPiServer specifics.
            settings.NonVisualPlugins.Add("advimage");
            settings.NonVisualPlugins.Add("epifilebrowser");

            //if (PrincipalInfo.CurrentPrincipal.IsInRole("administrators"))
            //{
            //    //Chance to personalize. Let's allow administrators to access the html editor.
            //    settings.ToolbarRows[1].Buttons.Add("code");
            //}

            settings.Height = 200;
            settings.Width = 600;
            return settings;
        }

        public override System.Guid ID
        {
            get { return new System.Guid("a6fe936f-190d-45e2-b83c-ccc0501a7312"); }
        }
    }
}

 

Leave a Reply