public function AlphaPaginationCharacter::buildLink in Views Alpha Pagination 8.2
Builds a link render array based on current text, value and options.
Parameters
array $options: Optional. Array of options to pass to url().
Return value
array A render array for the link.
1 call to AlphaPaginationCharacter::buildLink()
- AlphaPaginationCharacter::build in src/
AlphaPaginationCharacter.php  - Builds a render array of the character.
 
File
- src/
AlphaPaginationCharacter.php, line 105  
Class
- AlphaPaginationCharacter
 - Class AlphaPaginationCharacter.
 
Namespace
Drupal\alpha_paginationCode
public function buildLink(array $options = []) {
  // Merge in options.
  $options = NestedArray::mergeDeep([
    'attributes' => [],
    'html' => FALSE,
    'query' => \Drupal::request()->query
      ->all(),
  ], $options);
  // Merge in classes.
  $this->alphaPagination
    ->addClasses($this
    ->getOption('paginate_link_class'), $options['attributes']);
  $token = \Drupal::service('token');
  $tokens = $this->alphaPagination
    ->getTokens($this
    ->getValue());
  $path = $token
    ->replace($this
    ->getOption('paginate_link_path'), $tokens);
  // Determine if link is external (automatically enforcing for anchors).
  if ($this
    ->getOption('paginate_link_external') || $path && $path[0] === '#') {
    $options['external'] = TRUE;
  }
  else {
    $path = 'internal:/' . $path;
  }
  // Add in additional attributes.
  if ($this
    ->getOption('paginate_link_attributes')) {
    $attributes = $this->alphaPagination
      ->parseAttributes($this
      ->getOption('paginate_link_attributes'), $tokens);
    // Remove any class attributes (should use the dedicated class option).
    unset($attributes['class']);
    // Merge in the attributes.
    $options['attributes'] = NestedArray::mergeDeep($options['attributes'], $attributes);
  }
  // Build link render array.
  return [
    //      '#theme' => 'link__alpha_pagination',
    '#type' => 'link',
    '#title' => $this
      ->getLabel(),
    '#url' => Url::fromUri($path),
    '#options' => $options,
  ];
}