class AnchorLink in CKEditor Anchor Link - For Drupal 8 and 9 8.2
Same name and namespace in other branches
- 8 src/Plugin/CKEditorPlugin/AnchorLink.php \Drupal\anchor_link\Plugin\CKEditorPlugin\AnchorLink
Defines the "link" plugin.
Plugin annotation
@CKEditorPlugin(
id = "link",
label = @Translation("CKEditor Web link"),
module = "anchor_link"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\ckeditor\CKEditorPluginBase implements CKEditorPluginButtonsInterface, CKEditorPluginInterface
- class \Drupal\anchor_link\Plugin\CKEditorPlugin\AnchorLink
- class \Drupal\ckeditor\CKEditorPluginBase implements CKEditorPluginButtonsInterface, CKEditorPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of AnchorLink
File
- src/
Plugin/ CKEditorPlugin/ AnchorLink.php, line 17
Namespace
Drupal\anchor_link\Plugin\CKEditorPluginView source
class AnchorLink extends CKEditorPluginBase {
/**
* {@inheritdoc}
*/
public function getFile() {
return $this
->getLibraryPath() . '/plugin.js';
}
/**
* {@inheritdoc}
*/
public function getDependencies(Editor $editor) {
return [
'fakeobjects',
];
}
/**
* {@inheritdoc}
*/
public function getLibraries(Editor $editor) {
return [];
}
/**
* {@inheritdoc}
*/
public function isInternal() {
return FALSE;
}
/**
* {@inheritdoc}
*/
public function getButtons() {
$libraryUrl = $this
->getLibraryUrl();
return [
'Link' => [
'label' => $this
->t('Link'),
'image' => $libraryUrl . '/icons/link.png',
],
'Unlink' => [
'label' => $this
->t('Unlink'),
'image' => $libraryUrl . '/icons/unlink.png',
],
'Anchor' => [
'label' => $this
->t('Anchor'),
'image' => $libraryUrl . '/icons/anchor.png',
],
];
}
/**
* {@inheritdoc}
*/
public function getConfig(Editor $editor) {
return [];
}
/**
* Get the CKEditor Link library path.
*/
protected function getLibraryPath() {
// Following the logic in Drupal 8.9.x and Drupal 9.x
// ----------------------------------------------------------------------
// Issue #3096648: Add support for third party libraries in site specific
// and install profile specific libraries folders
// https://www.drupal.org/project/drupal/issues/3096648
//
// https://git.drupalcode.org/project/drupal/commit/1edf15f
// -----------------------------------------------------------------------
// Search sites/<domain>/*.
$directories[] = \Drupal::service('site.path') . "/libraries/";
// Always search the root 'libraries' directory.
$directories[] = 'libraries/';
// Installation profiles can place libraries into a 'libraries' directory.
if ($installProfile = \Drupal::installProfile()) {
$profile_path = drupal_get_path('profile', $installProfile);
$directories[] = "{$profile_path}/libraries/";
}
foreach ($directories as $dir) {
if (file_exists(DRUPAL_ROOT . '/' . $dir . 'link/plugin.js')) {
return $dir . 'link';
}
}
return 'libraries/link';
}
/**
* Get the CKEditor Link library URL.
*/
protected function getLibraryUrl() {
$originUrl = \Drupal::request()
->getSchemeAndHttpHost() . \Drupal::request()
->getBaseUrl();
$librarayPath = DRUPAL_ROOT . '/libraries/link';
$librarayUrl = $originUrl . '/libraries/link';
// Is the library found in the root libraries path.
$libraryFound = file_exists($librarayPath . '/plugin.js');
// If library is not found, then look in the current profile libraries path.
if (!$libraryFound) {
if ($installProfile = \Drupal::installProfile()) {
$profilePath = drupal_get_path('profile', $installProfile);
$profilePath .= '/libraries/link';
// Is the library found in the current profile libraries path.
if (file_exists(DRUPAL_ROOT . '/' . $profilePath . '/plugin.js')) {
$libraryFound = TRUE;
$librarayUrl = $originUrl . '/' . $profilePath;
}
}
}
if ($libraryFound) {
return $librarayUrl;
}
else {
return $originUrl . '/libraries/link';
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AnchorLink:: |
public | function |
Returns the buttons that this plugin provides, along with metadata. Overrides CKEditorPluginButtonsInterface:: |
|
AnchorLink:: |
public | function |
Returns the additions to CKEDITOR.config for a specific CKEditor instance. Overrides CKEditorPluginInterface:: |
|
AnchorLink:: |
public | function |
Returns a list of plugins this plugin requires. Overrides CKEditorPluginBase:: |
|
AnchorLink:: |
public | function |
Returns the Drupal root-relative file path to the plugin JavaScript file. Overrides CKEditorPluginInterface:: |
|
AnchorLink:: |
public | function |
Returns a list of libraries this plugin requires. Overrides CKEditorPluginBase:: |
|
AnchorLink:: |
protected | function | Get the CKEditor Link library path. | |
AnchorLink:: |
protected | function | Get the CKEditor Link library URL. | |
AnchorLink:: |
public | function |
Indicates if this plugin is part of the optimized CKEditor build. Overrides CKEditorPluginBase:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |