lionbridge_translation_provider-8.x-2.4/tmgmt_contentapi/src/Plugin/Block/QueueStatusBlock.php

tmgmt_contentapi/src/Plugin/Block/QueueStatusBlock.php
<?php

namespace Drupal\tmgmt_contentapi\Plugin\Block;

use Drupal\Core\Block\BlockBase;
use Drupal\Core\Queue\QueueInterface;
use Drupal\Core\Queue\QueueFactory;

/**
 * Provides a 'Queue Status' Block.
 *
 * @Block(
 *   id = "queue_status_block",
 *   admin_label = @Translation("Queue Status Block"),
 * )
 */
class QueueStatusBlock extends BlockBase {

  /**
   * {@inheritdoc}
   */
  public function build() {
    // Get the queue information.
    $queue_factory = \Drupal::service('queue');
    $queues = ['export_translation_jobs_to_capi'];

    $status = [];
    foreach ($queues as $queue_name) {
      /** @var \Drupal\Core\Queue\QueueInterface $queue */
      $queue = $queue_factory->get($queue_name);
      $queue_items = $queue->numberOfItems();
      $status[] = [
        'name' => $queue_name,
        'items' => $queue_items,
      ];
    }

    // Render the queue statuses in a table.
    return [
      '#type' => 'table',
      '#header' => [
        $this->t('Queue Name'),
        $this->t('Items in Queue'),
      ],
      '#rows' => array_map(fn($item) => [$item['name'], $item['items']], $status),
      '#attributes' => [
        'class' => ['queue-status-table'],
      ],
      '#attached' => [
        'library' => [
          'tmgmt_contentapi/queue-status-block',
        ],
      ],
      '#cache' => [
        'max-age' => 0,
      ],
    ];
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc