TargetType.php in Menu Entity Index 8
File
src/Plugin/views/filter/TargetType.php
View source
<?php
namespace Drupal\menu_entity_index\Plugin\views\filter;
use Drupal\menu_entity_index\TrackerInterface;
use Drupal\views\Plugin\views\filter\InOperator;
use Symfony\Component\DependencyInjection\ContainerInterface;
class TargetType extends InOperator {
protected $tracker;
public function __construct(array $configuration, $plugin_id, $plugin_definition, TrackerInterface $tracker) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->tracker = $tracker;
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('menu_entity_index.tracker'));
}
public function getValueOptions() {
if (!isset($this->valueOptions)) {
$options = $this->tracker
->getAvailableEntityTypes();
$tracked_types = $this->tracker
->getTrackedEntityTypes();
$options = array_filter($options, function ($key) use ($tracked_types) {
return in_array($key, $tracked_types);
}, ARRAY_FILTER_USE_KEY);
$this->valueOptions = $options;
}
return $this->valueOptions;
}
public function calculateDependencies() {
$dependencies = parent::calculateDependencies();
if ($this->trackedOnly) {
$dependencies['config'][] = 'menu_entity_index.configuration';
}
return $dependencies;
}
}
Classes
Name |
Description |
TargetType |
Filter class which allows filtering by entity type id of target entity. |