You are here

class NodeMatcher in Linkit 8.4

Same name and namespace in other branches
  1. 8.5 src/Plugin/Linkit/Matcher/NodeMatcher.php \Drupal\linkit\Plugin\Linkit\Matcher\NodeMatcher

Plugin annotation


@Matcher(
  id = "entity:node",
  target_entity = "node",
  label = @Translation("Content"),
  provider = "node"
)

Hierarchy

Expanded class hierarchy of NodeMatcher

File

src/Plugin/Linkit/Matcher/NodeMatcher.php, line 20
Contains \Drupal\linkit\Plugin\Linkit\Matcher\NodeMatcher.

Namespace

Drupal\linkit\Plugin\Linkit\Matcher
View source
class NodeMatcher extends EntityMatcher {

  /**
   * {@inheritdoc}
   */
  public function getSummary() {
    $summery = parent::getSummary();
    $summery[] = $this
      ->t('Include unpublished: @include_unpublished', [
      '@include_unpublished' => $this->configuration['include_unpublished'] ? $this
        ->t('Yes') : $this
        ->t('No'),
    ]);
    return $summery;
  }

  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    return parent::defaultConfiguration() + [
      'include_unpublished' => FALSE,
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function calculateDependencies() {
    return parent::calculateDependencies() + [
      'module' => [
        'node',
      ],
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildConfigurationForm($form, $form_state);
    $form['include_unpublished'] = [
      '#title' => t('Include unpublished nodes'),
      '#type' => 'checkbox',
      '#default_value' => $this->configuration['include_unpublished'],
      '#description' => t('In order to see unpublished nodes, the requesting user must also have permissions to do so.'),
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
    parent::submitConfigurationForm($form, $form_state);
    $this->configuration['include_unpublished'] = $form_state
      ->getValue('include_unpublished');
  }

  /**
   * {@inheritdoc}
   */
  protected function buildEntityQuery($match) {
    $query = parent::buildEntityQuery($match);
    $no_access = !$this->currentUser
      ->hasPermission('bypass node access') && !count($this->moduleHandler
      ->getImplementations('node_grants'));
    if ($this->configuration['include_unpublished'] !== TRUE || $no_access) {
      $query
        ->condition('status', NODE_PUBLISHED);
    }
    return $query;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
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
EntityMatcher::$currentUser protected property The current user.
EntityMatcher::$database protected property The database connection.
EntityMatcher::$entityManager protected property The entity manager.
EntityMatcher::$moduleHandler protected property The module handler service.
EntityMatcher::$target_type protected property The target entity type id
EntityMatcher::buildDescription protected function Builds the description string used in the match array. 2
EntityMatcher::buildGroup protected function Builds the group string used in the match array.
EntityMatcher::buildLabel protected function Builds the label string used in the match array.
EntityMatcher::buildPath protected function Builds the path string used in the match array. 1
EntityMatcher::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
EntityMatcher::elementValidateFilter public static function Form element validation handler; Filters the #value property of an element.
EntityMatcher::getMatches public function Gets an array with search matches that will be presented in the autocomplete widget. Overrides MatcherInterface::getMatches
EntityMatcher::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm
EntityMatcher::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides MatcherBase::__construct
MatcherBase::$uuid protected property The matcher ID.
MatcherBase::$weight protected property The weight of the matcher compared to others in a matcher collection.
MatcherBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurablePluginInterface::getConfiguration
MatcherBase::getLabel public function Returns the matcher label. Overrides MatcherInterface::getLabel
MatcherBase::getUuid public function Returns the unique ID representing the matcher. Overrides MatcherInterface::getUuid
MatcherBase::getWeight public function Returns the weight of the matcher. Overrides MatcherInterface::getWeight
MatcherBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurablePluginInterface::setConfiguration
MatcherBase::setWeight public function Sets the weight for the matcher. Overrides MatcherInterface::setWeight
MatcherTokensTrait::getAvailableTokens public function Gets all available tokens.
MatcherTokensTrait::insertTokenList public function Inserts a form element with a list of available tokens.
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
NodeMatcher::buildConfigurationForm public function Form constructor. Overrides EntityMatcher::buildConfigurationForm
NodeMatcher::buildEntityQuery protected function Builds an EntityQuery to get entities. Overrides EntityMatcher::buildEntityQuery
NodeMatcher::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides MatcherBase::calculateDependencies
NodeMatcher::defaultConfiguration public function Gets default configuration for this plugin. Overrides EntityMatcher::defaultConfiguration
NodeMatcher::getSummary public function Returns the summarized configuration of the matcher. Overrides EntityMatcher::getSummary
NodeMatcher::submitConfigurationForm public function Form submission handler. Overrides EntityMatcher::submitConfigurationForm
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.
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.