You are here

public function SendStatus::render in Simplenews 8.2

Same name and namespace in other branches
  1. 8 src/Plugin/views/field/SendStatus.php \Drupal\simplenews\Plugin\views\field\SendStatus::render()
  2. 3.x src/Plugin/views/field/SendStatus.php \Drupal\simplenews\Plugin\views\field\SendStatus::render()

Renders the field.

Parameters

\Drupal\views\ResultRow $values: The values retrieved from a single row of a view's query result.

Return value

string|\Drupal\Component\Render\MarkupInterface The rendered output. If the output is safe it will be wrapped in an object that implements MarkupInterface. If it is empty or unsafe it will be a string.

Overrides FieldPluginBase::render

File

src/Plugin/views/field/SendStatus.php, line 21

Class

SendStatus
Field handler to provide send status of a newsletter issue.

Namespace

Drupal\simplenews\Plugin\views\field

Code

public function render(ResultRow $values) {
  $node = $values->_entity;
  if ($node
    ->hasField('simplenews_issue')) {

    // Get elements to render.
    $message = $this
      ->getMessage($node);
    if (!empty($message['uri'])) {
      $output['image'] = [
        '#theme' => 'image',
        '#uri' => $message['uri'],
        '#alt' => $message['description'],
        '#title' => $message['description'],
        '#getsize' => TRUE,
      ];
    }
    $error_count = $message['error_count'] ? ' ❌{{ error_count }}' : '';
    $output['text'] = [
      '#type' => 'inline_template',
      '#template' => "<span title=\"{{ description }}\">{{ sent_count }}/{{ count }}{$error_count}</span>",
      '#context' => $message,
    ];
    return $output;
  }
}