You are here

protected function DefaultEntityProcessorForm::getUpdateNonExistentActions in Feeds 8.3

Get available actions to apply on the entity.

Return value

array A list of applicable actions.

2 calls to DefaultEntityProcessorForm::getUpdateNonExistentActions()
DefaultEntityProcessorForm::buildConfigurationForm in src/Feeds/Processor/Form/DefaultEntityProcessorForm.php
Form constructor.
DefaultEntityProcessorForm::validateConfigurationForm in src/Feeds/Processor/Form/DefaultEntityProcessorForm.php
Form validation handler.

File

src/Feeds/Processor/Form/DefaultEntityProcessorForm.php, line 236

Class

DefaultEntityProcessorForm
The configuration form for the CSV parser.

Namespace

Drupal\feeds\Feeds\Processor\Form

Code

protected function getUpdateNonExistentActions() {
  $options = [];
  $action_definitions = \Drupal::service('plugin.manager.action')
    ->getDefinitionsByType($this->plugin
    ->entityType());
  foreach ($action_definitions as $id => $definition) {

    // Filter out configurable actions.
    $interfaces = class_implements($definition['class']);
    if (isset($interfaces[ConfigurableInterface::class])) {
      continue;
    }

    // @todo remove when Drupal 8 support has ended.
    if (isset($interfaces['Drupal\\Component\\Plugin\\ConfigurablePluginInterface'])) {
      continue;
    }

    // Filter out actions that need confirmation.
    if (!empty($definition['confirm_form_route_name'])) {
      continue;
    }

    // Check for deprecated action plugins.
    foreach ($this
      ->getDeprecatedActionClasses() as $deprecated_class_name) {
      if ($definition['class'] === $deprecated_class_name || is_subclass_of($definition['class'], $deprecated_class_name)) {
        continue 2;
      }
    }
    $options[$id] = $definition['label'];
  }
  return [
    '_keep' => $this
      ->t('Keep'),
    '_delete' => $this
      ->t('Delete'),
  ] + $options;
}