You are here

RemoveWords.php in Views Natural Sort 8.2

File

src/Plugin/IndexRecordContentTransformation/RemoveWords.php
View source
<?php

namespace Drupal\views_natural_sort\Plugin\IndexRecordContentTransformation;

use Drupal\views_natural_sort\Plugin\IndexRecordContentTransformationBase as TransformationBase;

/**
 * @IndexRecordContentTransformation (
 *   id = "remove_words",
 *   label = @Translation("Remove Words")
 * )
 */
class RemoveWords extends TransformationBase {
  public function transform($string) {
    $words = $this->configuration['settings'];
    if (empty($words)) {
      return $string;
    }
    array_walk($words, 'preg_quote');
    return preg_replace([
      '/\\s(' . implode('|', $words) . ')\\s+/iu',
      '/^(' . implode('|', $words) . ')\\s+/iu',
    ], [
      ' ',
      '',
    ], $string);
  }

}

Classes

Namesort descending Description
RemoveWords @IndexRecordContentTransformation ( id = "remove_words", label = Plugin annotation @Translation("Remove Words") )