acquia_dam-1.0.0-rc1/src/Plugin/views/filter/AssetCategoryFilter.php
src/Plugin/views/filter/AssetCategoryFilter.php
<?php
namespace Drupal\acquia_dam\Plugin\views\filter;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Plugin\views\filter\StringFilter;
use Drupal\views_remote_data\Plugin\views\query\RemoteDataQuery;
/**
* Filter for assets based on category.
*
* @ViewsFilter("asset_category_filter")
*/
class AssetCategoryFilter extends StringFilter {
/**
* {@inheritdoc}
*/
public function query() {
assert($this->query instanceof RemoteDataQuery);
$this->query->addWhere(
$this->options['group'],
'cat',
rawurldecode($this->value),
$this->operator
);
}
/**
* {@inheritdoc}
*/
public function operators() {
return [
'=' => [
'title' => $this->t('Is equal to'),
'short' => $this->t('='),
'method' => 'opEqual',
'values' => 1,
],
];
}
/**
* {@inheritdoc}
*/
protected function valueForm(&$form, FormStateInterface $form_state) {
$form['value'] = [
'#type' => 'widen_categories',
'#title' => $this->t('Category'),
];
}
}
