currentUser = $current_user; $this->messenger = $messenger; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { return new static( $configuration, $plugin_id, $plugin_definition, $container->get('current_user'), $container->get('messenger') ); } /** * {@inheritdoc}. */ public function query() { $this->ensureMyTable(); // Try to find an entity queue relationship in this view, and pick the first // one available. $entity_queue_relationship = NULL; foreach ($this->view->relationship as $id => $relationship) { if ($relationship instanceof EntityQueueRelationship) { $entity_queue_relationship = $relationship; $this->options['relationship'] = $id; $this->setRelationship(); break; } } if ($entity_queue_relationship) { // Add the field. $subqueue_items_table_alias = $entity_queue_relationship->first_alias; $this->query->addOrderBy($subqueue_items_table_alias, 'bundle', $this->options['order']); } else { if ($this->currentUser->hasPermission('administer views')) { $this->messenger->addMessage($this->t('In order to sort by in queue, you need to add the Entityqueue: Queue relationship on View: @view with display: @display', ['@view' => $this->view->storage->label(), '@display' => $this->view->current_display] ), Messenger::TYPE_ERROR); } } } }