arch-8.x-1.x-dev/modules/product/src/Plugin/views/filter/UidRevision.php

modules/product/src/Plugin/views/filter/UidRevision.php
<?php

namespace Drupal\arch_product\Plugin\views\filter;

use Drupal\user\Plugin\views\filter\Name;

/**
 * Filter handler to check for revisions a certain user has created.
 *
 * @ingroup views_filter_handlers
 *
 * @ViewsFilter("product_uid_revision")
 */
class UidRevision extends Name {

  /**
   * {@inheritdoc}
   */
  public function query($group_by = FALSE) {
    $this->ensureMyTable();

    $placeholder = $this->placeholder() . '[]';

    $args = array_values($this->value);

    $this->query->addWhereExpression(
      $this->options['group'],
      "{$this->tableAlias}.uid IN({$placeholder})
      OR (
        (
          SELECT COUNT(DISTINCT vid)
          FROM {arch_product_revision} nr
          WHERE
            nr.revision_uid IN ({$placeholder})
            AND nr.pid = {$this->tableAlias}.pid
        ) > 0
      )",
      [$placeholder => $args],
      $args
    );
  }

}

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

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