class FindReplace in Tamper 8
Plugin implementation of the find_replace plugin.
Plugin annotation
@Tamper(
id = "find_replace",
label = @Translation("Find replace"),
description = @Translation("Find and replace text"),
category = "Text"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\tamper\TamperBase implements TamperInterface
- class \Drupal\tamper\Plugin\Tamper\FindReplace
- class \Drupal\tamper\TamperBase implements TamperInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of FindReplace
1 file declares its use of FindReplace
- FindReplaceTest.php in tests/
src/ Unit/ Plugin/ Tamper/ FindReplaceTest.php
File
- src/
Plugin/ Tamper/ FindReplace.php, line 20
Namespace
Drupal\tamper\Plugin\TamperView source
class FindReplace extends TamperBase {
const SETTING_FIND = 'find';
const SETTING_REPLACE = 'replace';
const SETTING_CASE_SENSITIVE = 'case_sensitive';
const SETTING_WORD_BOUNDARIES = 'word_boundaries';
const SETTING_WHOLE = 'whole';
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
$config = parent::defaultConfiguration();
$config[self::SETTING_FIND] = '';
$config[self::SETTING_REPLACE] = '';
$config[self::SETTING_CASE_SENSITIVE] = FALSE;
$config[self::SETTING_CASE_SENSITIVE] = FALSE;
$config[self::SETTING_WHOLE] = FALSE;
return $config;
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form[self::SETTING_FIND] = [
'#type' => 'textfield',
'#title' => $this
->t('Text to find'),
'#default_value' => $this
->getSetting(self::SETTING_FIND),
];
$form[self::SETTING_REPLACE] = [
'#type' => 'textfield',
'#title' => $this
->t('Text to replace'),
'#default_value' => $this
->getSetting(self::SETTING_REPLACE),
];
$form[self::SETTING_CASE_SENSITIVE] = [
'#type' => 'checkbox',
'#title' => $this
->t('Case sensitive'),
'#default_value' => $this
->getSetting(self::SETTING_CASE_SENSITIVE),
'#description' => $this
->t('If checked, "book" will match "book" but not "Book" or "BOOK".'),
];
$form[self::SETTING_WORD_BOUNDARIES] = [
'#type' => 'checkbox',
'#title' => $this
->t('Respect word boundaries'),
'#default_value' => $this
->getSetting(self::SETTING_WORD_BOUNDARIES),
'#description' => $this
->t('If checked, "book" will match "book" but not "bookcase".'),
];
$form[self::SETTING_WHOLE] = [
'#type' => 'checkbox',
'#title' => $this
->t('Match whole word/phrase'),
'#default_value' => $this
->getSetting(self::SETTING_WHOLE),
'#description' => $this
->t('If checked, then the whole word or phrase will be matched, e.g. "book" will match "book" but not "the book". If this option is selected then "Respect word boundaries" above will be ignored.'),
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
parent::submitConfigurationForm($form, $form_state);
$this
->setConfiguration([
self::SETTING_FIND => $form_state
->getValue(self::SETTING_FIND),
self::SETTING_REPLACE => $form_state
->getValue(self::SETTING_REPLACE),
self::SETTING_CASE_SENSITIVE => $form_state
->getValue(self::SETTING_CASE_SENSITIVE),
self::SETTING_WORD_BOUNDARIES => $form_state
->getValue(self::SETTING_WORD_BOUNDARIES),
self::SETTING_WHOLE => $form_state
->getValue(self::SETTING_WHOLE),
]);
}
/**
* {@inheritdoc}
*/
public function tamper($data, TamperableItemInterface $item = NULL) {
if (!is_string($data)) {
throw new TamperException('Input should be a string.');
}
$function = $this
->getFunction();
$find = $this
->useRegex() ? $this
->getRegexPattern() : $this
->getSetting(self::SETTING_FIND);
$replace = $this
->getSetting(self::SETTING_REPLACE);
return $function($find, $replace, $data);
}
/**
* {@inheritdoc}
*/
public function multiple() {
return FALSE;
}
/**
* Check if we are using the regex callback.
*
* @return bool
* TRUE when regex will be used.
*/
protected function useRegex() {
return $this
->getSetting(self::SETTING_WORD_BOUNDARIES) || $this
->getSetting(self::SETTING_WHOLE);
}
/**
* Get the function to use for the find and replace.
*
* @return string
* Function name to call.
*/
protected function getFunction() {
if ($this
->useRegex()) {
return 'preg_replace';
}
return $this
->getSetting(self::SETTING_CASE_SENSITIVE) ? 'str_replace' : 'str_ireplace';
}
/**
* Get the regex pattern.
*
* @return string
* Regex pattern to use.
*/
protected function getRegexPattern() {
$regex = $this
->getSetting(self::SETTING_WHOLE) ? '/^' . preg_quote($this
->getSetting(self::SETTING_FIND), '/') . '$/u' : '/\\b' . preg_quote($this
->getSetting(self::SETTING_FIND), '/') . '\\b/u';
if (!$this
->getSetting(self::SETTING_CASE_SENSITIVE)) {
$regex .= 'i';
}
return $regex;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FindReplace:: |
public | function |
Form constructor. Overrides TamperBase:: |
|
FindReplace:: |
public | function |
Gets default configuration for this plugin. Overrides TamperBase:: |
|
FindReplace:: |
protected | function | Get the function to use for the find and replace. | |
FindReplace:: |
protected | function | Get the regex pattern. | |
FindReplace:: |
public | function |
Indicates whether the returned value requires multiple handling. Overrides TamperBase:: |
|
FindReplace:: |
constant | |||
FindReplace:: |
constant | |||
FindReplace:: |
constant | |||
FindReplace:: |
constant | |||
FindReplace:: |
constant | |||
FindReplace:: |
public | function |
Form submission handler. Overrides TamperBase:: |
|
FindReplace:: |
public | function |
Tamper data. Overrides TamperInterface:: |
|
FindReplace:: |
protected | function | Check if we are using the regex callback. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TamperBase:: |
protected | property | The source definition. | |
TamperBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
TamperBase:: |
public | function |
Get a particular configuration value. Overrides TamperInterface:: |
|
TamperBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
TamperBase:: |
public | function |
Form validation handler. Overrides PluginFormInterface:: |
3 |
TamperBase:: |
public | function |
Constructs a TamperBase object. Overrides PluginBase:: |
1 |