You are here

public function Opml::attachTo in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/views/src/Plugin/views/style/Opml.php \Drupal\views\Plugin\views\style\Opml::attachTo()

File

core/modules/views/src/Plugin/views/style/Opml.php, line 30

Class

Opml
Default style plugin to render an OPML feed.

Namespace

Drupal\views\Plugin\views\style

Code

public function attachTo(array &$build, $display_id, Url $feed_url, $title) {
  $display = $this->view->displayHandlers
    ->get($display_id);
  $url_options = [];
  $input = $this->view
    ->getExposedInput();
  if ($input) {
    $url_options['query'] = $input;
  }
  $url_options['absolute'] = TRUE;
  $url = $feed_url
    ->setOptions($url_options)
    ->toString();
  if ($display
    ->hasPath()) {
    if (empty($this->preview)) {
      $build['#attached']['feed'][] = [
        $url,
        $title,
      ];
    }
  }
  else {
    $this->view->feedIcons[] = [
      '#theme' => 'feed_icon',
      '#url' => $url,
      '#title' => $title,
    ];
  }
}