You are here

class A11yCheckerPlugin in CKEditor Accessibility Checker 8

Same name and namespace in other branches
  1. 7 src/Plugin/CKEditorPlugin/A11yCheckerPlugin.php \Drupal\ckeditor_a11ychecker\Plugin\CKEditorPlugin\A11yCheckerPlugin
  2. 2.0.x src/Plugin/CKEditorPlugin/A11yCheckerPlugin.php \Drupal\ckeditor_a11ychecker\Plugin\CKEditorPlugin\A11yCheckerPlugin

Defines the "a11ychecker" plugin.

Plugin annotation


@CKEditorPlugin(
  id = "a11ychecker",
  label = @Translation("Accessibility Checker")
)

Hierarchy

Expanded class hierarchy of A11yCheckerPlugin

File

src/Plugin/CKEditorPlugin/A11yCheckerPlugin.php, line 18

Namespace

Drupal\ckeditor_a11ychecker\Plugin\CKEditorPlugin
View source
class A11yCheckerPlugin extends CKEditorPluginBase {

  /**
   * {@inheritdoc}
   */
  public function getDependencies(Editor $editor) {
    return [
      'balloonpanel',
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getLibraries(Editor $editor) {
    return [
      'core/drupal.jquery',
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getConfig(Editor $editor) {
    return [];
  }

  /**
   * {@inheritdoc}
   */
  public function getButtons() {
    return [
      'A11ychecker' => [
        'label' => $this
          ->t('Accessibility Checker'),
        'image' => $this
          ->librariesGetPath('a11ychecker') . '/icons/a11ychecker.png',
      ],
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getFile() {
    if ($library_path = $this
      ->librariesGetPath('a11ychecker')) {
      return $library_path . '/plugin.js';
    }
  }

  /**
   * Gets the path of a library.
   *
   * @param string $name
   *   The machine name of a library to return the path for.
   * @param string $base_path
   *   Whether to prefix the resulting path with base_path().
   *
   * @return string
   *   The path to the specified library or FALSE if the library wasn't found.
   */
  private function librariesGetPath($name, $base_path = FALSE) {
    $libraries =& drupal_static(__FUNCTION__);
    if (!isset($libraries)) {
      $libraries = $this
        ->getLibraryPaths();
    }
    $path = $base_path ? base_path() : '';
    if (!isset($libraries[$name])) {
      return FALSE;
    }
    else {
      $path .= $libraries[$name];
    }
    return $path;
  }

  /**
   * Returns an array of library directories.
   *
   * @return str[]
   *   A list of library directories.
   */
  private function getLibraryPaths() {
    $searchdir = [];
    $config = DrupalKernel::findSitePath(\Drupal::request());

    // Similar to 'modules' and 'themes' directories inside an installation
    // profile, installation profiles may want to place libraries into a
    // 'libraries' directory.
    if ($profile = \Drupal::installProfile()) {
      $profile_path = drupal_get_path('profile', $profile);
      $searchdir[] = "{$profile_path}/libraries";
      $searchdir[] = "{$profile_path}/libraries/ckeditor/plugins";
    }

    // Search sites/all/libraries for backwards-compatibility.
    $searchdir[] = 'sites/all/libraries';
    $searchdir[] = 'sites/all/libraries/ckeditor/plugins';

    // Always search the root 'libraries' directory.
    $searchdir[] = 'libraries';
    $searchdir[] = 'libraries/ckeditor/plugins';

    // Also search sites/<domain>/*.
    $searchdir[] = "{$config}/libraries";
    $searchdir[] = "{$config}/libraries/ckeditor/plugins";

    // Retrieve list of directories.
    $directories = [];
    $nomask = [
      'CVS',
    ];
    foreach ($searchdir as $dir) {
      if (is_dir($dir) && ($handle = opendir($dir))) {
        while (FALSE !== ($file = readdir($handle))) {
          if (!in_array($file, $nomask) && $file[0] != '.') {
            if (is_dir("{$dir}/{$file}")) {
              $directories[$file] = "{$dir}/{$file}";
            }
          }
        }
        closedir($handle);
      }
    }
    return $directories;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
A11yCheckerPlugin::getButtons public function Returns the buttons that this plugin provides, along with metadata. Overrides CKEditorPluginButtonsInterface::getButtons
A11yCheckerPlugin::getConfig public function Returns the additions to CKEDITOR.config for a specific CKEditor instance. Overrides CKEditorPluginInterface::getConfig
A11yCheckerPlugin::getDependencies public function Returns a list of plugins this plugin requires. Overrides CKEditorPluginBase::getDependencies
A11yCheckerPlugin::getFile public function Returns the Drupal root-relative file path to the plugin JavaScript file. Overrides CKEditorPluginInterface::getFile
A11yCheckerPlugin::getLibraries public function Returns a list of libraries this plugin requires. Overrides CKEditorPluginBase::getLibraries
A11yCheckerPlugin::getLibraryPaths private function Returns an array of library directories.
A11yCheckerPlugin::librariesGetPath private function Gets the path of a library.
CKEditorPluginBase::isInternal public function Indicates if this plugin is part of the optimized CKEditor build. Overrides CKEditorPluginInterface::isInternal 4
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.