class DirectorySelection in Media Directories 8
Same name and namespace in other branches
- 3.x src/Plugin/EntityReferenceSelection/DirectorySelection.php \Drupal\media_directories\Plugin\EntityReferenceSelection\DirectorySelection
- 2.x src/Plugin/EntityReferenceSelection/DirectorySelection.php \Drupal\media_directories\Plugin\EntityReferenceSelection\DirectorySelection
Default plugin implementation of the Entity Reference Selection plugin.
Also serves as a base class for specific types of Entity Reference Selection plugins.
Plugin annotation
@EntityReferenceSelection(
  id = "media_directory:default",
  label = @Translation("Media directory"),
  entity_types = {"taxonomy_term"},
  group = "default",
  weight = 0,
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait- class \Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginBase implements ConfigurableInterface, ConfigurablePluginInterface, DependentPluginInterface, SelectionInterface- class \Drupal\Core\Entity\Plugin\EntityReferenceSelection\DefaultSelection implements SelectionWithAutocreateInterface, ContainerFactoryPluginInterface uses DeprecatedServicePropertyTrait- class \Drupal\taxonomy\Plugin\EntityReferenceSelection\TermSelection- class \Drupal\media_directories\Plugin\EntityReferenceSelection\DirectorySelection
 
 
- class \Drupal\taxonomy\Plugin\EntityReferenceSelection\TermSelection
 
- class \Drupal\Core\Entity\Plugin\EntityReferenceSelection\DefaultSelection implements SelectionWithAutocreateInterface, ContainerFactoryPluginInterface uses DeprecatedServicePropertyTrait
 
- class \Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginBase implements ConfigurableInterface, ConfigurablePluginInterface, DependentPluginInterface, SelectionInterface
 
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of DirectorySelection
See also
\Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManager
\Drupal\Core\Entity\Annotation\EntityReferenceSelection
\Drupal\Core\Entity\EntityReferenceSelection\SelectionInterface
File
- src/Plugin/ EntityReferenceSelection/ DirectorySelection.php, line 28 
Namespace
Drupal\media_directories\Plugin\EntityReferenceSelectionView source
class DirectorySelection extends TermSelection {
  /**
   * {@inheritdoc}
   */
  public function getReferenceableEntities($match = NULL, $match_operator = 'CONTAINS', $limit = 0) {
    if ($match || $limit) {
      return parent::getReferenceableEntities($match, $match_operator, $limit);
    }
    $options = [];
    $bundles = $this->entityTypeBundleInfo
      ->getBundleInfo('taxonomy_term');
    $bundle_names = $this
      ->getConfiguration()['target_bundles'] ?: array_keys($bundles);
    $has_admin_access = $this->currentUser
      ->hasPermission('administer taxonomy');
    $unpublished_terms = [];
    foreach ($bundle_names as $bundle) {
      if ($vocabulary = Vocabulary::load($bundle)) {
        /** @var \Drupal\taxonomy\TermInterface[] $terms */
        if ($terms = $this->entityTypeManager
          ->getStorage('taxonomy_term')
          ->loadTree($vocabulary
          ->id(), 0, NULL, TRUE)) {
          foreach ($terms as $term) {
            if (!$has_admin_access && (!$term
              ->isPublished() || in_array($term->parent->target_id, $unpublished_terms))) {
              $unpublished_terms[] = $term
                ->id();
              continue;
            }
            // Change default padding character and add an extra one.
            $options[$vocabulary
              ->id()][$term
              ->id()] = str_repeat('−', $term->depth + 1) . Html::escape($this->entityRepository
              ->getTranslationFromContext($term)
              ->label());
          }
        }
      }
    }
    return $options;
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| DefaultSelection:: | protected | property | The current user. | |
| DefaultSelection:: | protected | property | ||
| DefaultSelection:: | protected | property | The entity field manager service. | |
| DefaultSelection:: | protected | property | The entity repository. | |
| DefaultSelection:: | public | property | Entity type bundle info service. | |
| DefaultSelection:: | protected | property | The entity type manager service. | |
| DefaultSelection:: | protected | property | The module handler service. | |
| DefaultSelection:: | public static | function | Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: | 2 | 
| DefaultSelection:: | public static | function | Form element validation handler; Filters the #value property of an element. | |
| DefaultSelection:: | protected | function | Helper method: Passes a query to the alteration system again. | |
| DefaultSelection:: | public | function | Form validation handler. Overrides SelectionPluginBase:: | |
| DefaultSelection:: | public | function | Validates which existing entities can be referenced. Overrides SelectionInterface:: | |
| DefaultSelection:: | public | function | Constructs a new DefaultSelection object. Overrides SelectionPluginBase:: | 1 | 
| 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 | |
| DeprecatedServicePropertyTrait:: | public | function | Allows to access deprecated/removed properties. | |
| DirectorySelection:: | public | function | Gets the list of referenceable entities. Overrides TermSelection:: | |
| 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. | |
| SelectionPluginBase:: | public | function | Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: | |
| SelectionPluginBase:: | protected | function | Ensures a backward compatibility level configuration. | |
| SelectionPluginBase:: | public | function | Allows the selection to alter the SelectQuery generated by EntityFieldQuery. Overrides SelectionInterface:: | 2 | 
| SelectionPluginBase:: | public | function | Gets this plugin's configuration. Overrides ConfigurableInterface:: | |
| SelectionPluginBase:: | protected | function | Moves the backward compatibility level configurations in the right place. | |
| SelectionPluginBase:: | public | function | Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: | |
| SelectionPluginBase:: | public | function | Form submission handler. Overrides PluginFormInterface:: | |
| 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. | |
| TermSelection:: | public | function | Form constructor. Overrides DefaultSelection:: | |
| TermSelection:: | protected | function | Builds an EntityQuery to get referenceable entities. Overrides DefaultSelection:: | |
| TermSelection:: | public | function | Counts entities that are referenceable. Overrides DefaultSelection:: | |
| TermSelection:: | public | function | Creates a new entity object that can be used as a valid reference. Overrides DefaultSelection:: | |
| TermSelection:: | public | function | Gets default configuration for this plugin. Overrides DefaultSelection:: | |
| TermSelection:: | public | function | Validates which newly created entities can be referenced. Overrides DefaultSelection:: | 
