TinyMCEConfig
class TinyMCEConfig extends HTMLEditorConfig implements i18nEntityProvider
Default configuration for HtmlEditor specific to tinymce
Traits
Config options
tinymce_lang | array | ||
base_dir | string | Location of module relative to BASE_DIR. This must contain the following dirs - plugins - themes - skins | |
editor_css | array | Extra editor.css file paths. | |
image_size_presets | array[] | List of image size preset that will appear when you select an image. Each preset can have the following:
* name to store an internal name for the preset (required)
* i18n to store a translation key (e.g.: SilverStripe\Forms\HTMLEditor\TinyMCEConfig.BESTFIT )
* text that will appear in the button (should be the default English translation)
* width which will define the horizontal size of the preset. If not provided, the preset will match the
original size of the image. |
Methods
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .
Gets the uninherited value for the given config option
An implementation of the factory method, allows you to create an instance of a class
Creates a class instance by the "singleton" design pattern.
Get the HTMLEditorConfig object for the given identifier. This is a correct way to get an HTMLEditorConfig instance - do not call 'new'
Assign a new config, or clear existing, for the given identifier
Gets the current themes, if it is not set this will fallback to config
Set the currently active configuration object. Note that the existing active config will not be renamed to the new identifier.
Get the currently active configuration identifier. Will fall back to default_config if unassigned.
Get the currently active configuration object
Get the available configurations as a map of friendly_name to configuration name.
Get the current value of an option
Set the value of one option
Set multiple options. This does not merge recursively, but only at the top level.
Associative array of data-attributes to apply to the underlying text-area
Initialise the editor on the client side
Provide additional schema data for the field this object configures
Get the theme
Set the theme name
Enable one or several plugins. Will maintain unique list if already enabled plugin is re-passed. If passed in as a map of plugin-name to path, the plugin will be loaded by tinymce.PluginManager.load() instead of through tinyMCE.init().
Enable one or several plugins. Will properly handle being passed a plugin that is already disabled
Gets the list of all enabled plugins as an associative array.
Get list of plugins without custom locations, which is the set of plugins which can be loaded via the standard plugin path, and could potentially be minified
Get all button rows, skipping empty rows
Totally re-set the buttons on a given line
Add buttons to the end of a line
Insert buttons before the first occurance of another button
Insert buttons after the first occurance of another button
Remove the first occurance of buttons
Get list of resource paths to css files.
Set explicit set of CSS resources to use for content_css
option.
Generate gzipped TinyMCE configuration including plugins and languages.
Get the current tinyMCE language
Returns the full filesystem path to TinyMCE resources (which could be different from the original tinymce location in the module).
Get front-end url to tinymce resources
Get resource root for TinyMCE, either as a string or ModuleResource instance Path will be relative to BASE_PATH if string.
Sets the upload folder name used by the insert media dialog
Returns the list of provided translations for this object.
Details
in Configurable at line 20
static Config_ForClass
config()
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .
....).
in Configurable at line 32
mixed
stat(string $name)
deprecated
deprecated 5.0 Use ->config()->get() instead
Get inherited config value
in Configurable at line 44
mixed
uninherited(string $name)
Gets the uninherited value for the given config option
in Configurable at line 57
$this
set_stat(string $name, mixed $value)
deprecated
deprecated 5.0 Use ->config()->set() instead
Update the config value for a given property
in Injectable at line 26
static Injectable
create(array $args)
An implementation of the factory method, allows you to create an instance of a class
This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.
This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create('SiteTree'); $list = SiteTree::get();
in Injectable at line 43
static Injectable
singleton(string $class = null)
Creates a class instance by the "singleton" design pattern.
It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).
in HTMLEditorConfig at line 78
static HTMLEditorConfig
get(string $identifier = null)
Get the HTMLEditorConfig object for the given identifier. This is a correct way to get an HTMLEditorConfig instance - do not call 'new'
in HTMLEditorConfig at line 98
static HTMLEditorConfig
set_config(string $identifier, HTMLEditorConfig $config = null)
Assign a new config, or clear existing, for the given identifier
in HTMLEditorConfig at line 113
static array
getThemes()
Gets the current themes, if it is not set this will fallback to config
in HTMLEditorConfig at line 126
static
setThemes(array $themes)
Sets the current theme
in HTMLEditorConfig at line 137
static
set_active_identifier(string $identifier)
Set the currently active configuration object. Note that the existing active config will not be renamed to the new identifier.
in HTMLEditorConfig at line 148
static string
get_active_identifier()
Get the currently active configuration identifier. Will fall back to default_config if unassigned.
in HTMLEditorConfig at line 159
static HTMLEditorConfig
get_active()
Get the currently active configuration object
in HTMLEditorConfig at line 171
static HTMLEditorConfig
set_active(HTMLEditorConfig $config)
Assigns the currently active config an explicit instance
in HTMLEditorConfig at line 183
static array
get_available_configs_map()
Get the available configurations as a map of friendly_name to configuration name.
at line 353
mixed
getOption(string $key)
Get the current value of an option
at line 361
$this
setOption(string $key, mixed $value)
Set the value of one option
at line 367
$this
setOptions(array $options)
Set multiple options. This does not merge recursively, but only at the top level.
at line 385
array
getAttributes()
Associative array of data-attributes to apply to the underlying text-area
at line 792
init()
Initialise the editor on the client side
at line 798
array
getConfigSchemaData()
Provide additional schema data for the field this object configures
at line 314
string
getTheme()
Get the theme
at line 325
$this
setTheme(string $theme)
Set the theme name
at line 414
$this
enablePlugins($plugin)
Enable one or several plugins. Will maintain unique list if already enabled plugin is re-passed. If passed in as a map of plugin-name to path, the plugin will be loaded by tinymce.PluginManager.load() instead of through tinyMCE.init().
Keep in mind that these externals plugins require a dash-prefix in their name.
at line 438
$this
disablePlugins($plugin)
Enable one or several plugins. Will properly handle being passed a plugin that is already disabled
at line 457
array
getPlugins()
Gets the list of all enabled plugins as an associative array.
Array keys are the plugin names, and values are potentially the plugin location, or ModuleResource object
at line 469
array
getInternalPlugins()
Get list of plugins without custom locations, which is the set of plugins which can be loaded via the standard plugin path, and could potentially be minified
at line 486
array
getButtons()
Get all button rows, skipping empty rows
at line 499
$this
setButtonsForLine($line, $buttons)
Totally re-set the buttons on a given line
at line 516
$this
addButtonsToLine($line, $buttons)
Add buttons to the end of a line
at line 563
bool
insertButtonsBefore($before, $buttons)
Insert buttons before the first occurance of another button
at line 582
bool
insertButtonsAfter($after, $buttons)
Insert buttons after the first occurance of another button
at line 598
removeButtons($buttons)
Remove the first occurance of buttons
at line 736
string[]
getContentCSS()
Get list of resource paths to css files.
Will default to editor_css
config, as well as any themed editor.css
files.
Use setContentCSS() to override.
at line 771
$this
setContentCSS(string[] $css)
Set explicit set of CSS resources to use for content_css
option.
Note: If merging with default paths, you should call getContentCSS() and merge prior to assignment.
at line 785
string
getScriptURL()
Generate gzipped TinyMCE configuration including plugins and languages.
This ends up "pre-loading" TinyMCE bundled with the required plugins so that multiple HTTP requests on the client don't need to be made.
at line 810
static string
get_tinymce_lang()
Get the current tinyMCE language
at line 829
string
getTinyMCEResourcePath()
Returns the full filesystem path to TinyMCE resources (which could be different from the original tinymce location in the module).
Path will be absolute.
at line 844
string
getTinyMCEResourceURL()
Get front-end url to tinymce resources
at line 860
ModuleResource|string
getTinyMCEResource()
Get resource root for TinyMCE, either as a string or ModuleResource instance Path will be relative to BASE_PATH if string.
at line 876
getTinyMCEPath()
deprecated
deprecated 4.0.0:5.0.0
at line 899
$this
setFolderName(string $folderName)
Sets the upload folder name used by the insert media dialog
at line 907
array
provideI18nEntities()
Returns the list of provided translations for this object.
Note: Pluralised forms are always returned in array format.
Example usage:
class MyTestClass implements i18nEntityProvider
{
public function provideI18nEntities()
{
$entities = [];
foreach($this->config()->get('my_static_array') as $key => $value) {
$entities["MyTestClass.my_static_array_{$key}"] = $value;
}
$entities["MyTestClass.PLURALS"] = [
'one' => 'A test class',
'other' => '{count} test classes',
]
return $entities;
}
}
Example usage in {@link DataObject->provideI18nEntities()}.
You can ask textcollector to add the provided entity to a different module. Simply wrap the returned value for any item in an array with the format: [ 'default' => $defaultValue, 'module' => $module ]
class MyTestClass implements i18nEntityProvider
{
public function provideI18nEntities()
{
$entities = [
'MyOtherModuleClass.MYENTITY' => [
'default' => $value,
'module' => 'myothermodule',
]
];
}
return $entities;
}