You are here

public function AddSimplenewsIssueActionLinks::getDerivativeDefinitions in Simplenews 8

Same name and namespace in other branches
  1. 8.2 src/Plugin/Derivative/AddSimplenewsIssueActionLinks.php \Drupal\simplenews\Plugin\Derivative\AddSimplenewsIssueActionLinks::getDerivativeDefinitions()
  2. 3.x src/Plugin/Derivative/AddSimplenewsIssueActionLinks.php \Drupal\simplenews\Plugin\Derivative\AddSimplenewsIssueActionLinks::getDerivativeDefinitions()

Gets the definition of all derivatives of a base plugin.

Parameters

array $base_plugin_definition: The definition array of the base plugin.

Return value

array An array of full derivative definitions keyed on derivative id.

Overrides DeriverBase::getDerivativeDefinitions

See also

getDerivativeDefinition()

File

src/Plugin/Derivative/AddSimplenewsIssueActionLinks.php, line 17

Class

AddSimplenewsIssueActionLinks
Provides dynamic link actions for simplenews content types.

Namespace

Drupal\simplenews\Plugin\Derivative

Code

public function getDerivativeDefinitions($base_plugin_definition) {
  $node_types = simplenews_get_content_types();
  $node_type = reset($node_types);
  if (count($node_types) == 1) {
    $label = NodeType::load($node_type)
      ->label();
    $this->derivatives[$node_type] = $base_plugin_definition;
    $this->derivatives[$node_type]['title'] = new TranslatableMarkup('Add @label', [
      '@label' => $label,
    ]);
    $this->derivatives[$node_type]['route_parameters'] = array(
      'node_type' => $node_type,
    );
  }
  elseif (count($node_types) > 1) {
    $base_plugin_definition['route_name'] = 'node.add_page';
    $base_plugin_definition['title'] = new TranslatableMarkup('Add content');
    $this->derivatives[] = $base_plugin_definition;
  }
  return parent::getDerivativeDefinitions($base_plugin_definition);
}