Defines the formatted text editor.
@InPlaceEditor(
id = "editor",
alternativeTo = {"direct"}
)
Expanded class hierarchy of Editor
class Editor extends PluginBase implements EditPluginInterface {
/**
* Implements \Drupal\edit\Plugin\EditPluginInterface::isCompatible().
*/
function isCompatible(FieldInstance $instance, array $items) {
$field = field_info_field($instance['field_name']);
// This editor is incompatible with multivalued fields.
if ($field['cardinality'] != 1) {
return FALSE;
}
elseif (!empty($instance['settings']['text_processing'])) {
$format_id = $items[0]['format'];
if (isset($format_id) && ($editor = editor_load($format_id))) {
$definition = drupal_container()
->get('plugin.manager.editor')
->getDefinition($editor->editor);
if ($definition['supports_inline_editing'] === TRUE) {
return TRUE;
}
}
return FALSE;
}
}
/**
* Implements \Drupal\edit\Plugin\EditPluginInterface::getMetadata().
*/
function getMetadata(FieldInstance $instance, array $items) {
$format_id = $items[0]['format'];
$metadata['format'] = $format_id;
$metadata['formatHasTransformations'] = $this
->textFormatHasTransformationFilters($format_id);
return $metadata;
}
/**
* Returns whether the text format has transformation filters.
*/
protected function textFormatHasTransformationFilters($format_id) {
return (bool) count(array_intersect(array(
FILTER_TYPE_TRANSFORM_REVERSIBLE,
FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
), filter_get_filter_types_by_format($format_id)));
}
/**
* Implements \Drupal\edit\EditPluginInterface::getAttachments().
*/
public function getAttachments() {
global $user;
$user_format_ids = array_keys(filter_formats($user));
$manager = drupal_container()
->get('plugin.manager.editor');
$definitions = $manager
->getDefinitions();
// Filter the current user's formats to those that support inline editing.
$formats = array();
foreach ($user_format_ids as $format_id) {
$editor = editor_load($format_id);
if ($editor && isset($definitions[$editor->editor]) && isset($definitions[$editor->editor]['supports_inline_editing']) && $definitions[$editor->editor]['supports_inline_editing'] === TRUE) {
$formats[] = $format_id;
}
}
// Get the attachments for all text editors that the user might use.
$attachments = $manager
->getAttachments($formats);
// Also include editor.module's formatted text editor.
$attachments['library'][] = array(
'editor',
'edit.formattedTextEditor.editor',
);
return $attachments;
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Editor:: |
public | function |
Implements \Drupal\edit\EditPluginInterface::getAttachments(). Overrides EditPluginInterface:: |
|
Editor:: |
function |
Implements \Drupal\edit\Plugin\EditPluginInterface::getMetadata(). Overrides EditPluginInterface:: |
||
Editor:: |
function |
Implements \Drupal\edit\Plugin\EditPluginInterface::isCompatible(). Overrides EditPluginInterface:: |
||
Editor:: |
protected | function | Returns whether the text format has transformation filters. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
public | function |
Returns the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function |
Returns the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Constructs a Drupal\Component\Plugin\PluginBase object. | 17 |