Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 23 |
TextProcessed | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
90 | |
0.00% |
0 / 23 |
__construct | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 5 |
|||
getValue | |
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 13 |
|||
setValue | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 5 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\text\TextProcessed. | |
*/ | |
namespace Drupal\text; | |
use Drupal\Core\TypedData\DataDefinitionInterface; | |
use Drupal\Core\TypedData\TypedDataInterface; | |
use Drupal\Core\TypedData\TypedData; | |
/** | |
* A computed property for processing text with a format. | |
* | |
* Required settings (below the definition's 'settings' key) are: | |
* - text source: The text property containing the to be processed text. | |
*/ | |
class TextProcessed extends TypedData { | |
/** | |
* Cached processed text. | |
* | |
* @var string|null | |
*/ | |
protected $processed = NULL; | |
/** | |
* {@inheritdoc} | |
*/ | |
public function __construct(DataDefinitionInterface $definition, $name = NULL, TypedDataInterface $parent = NULL) { | |
parent::__construct($definition, $name, $parent); | |
if ($definition->getSetting('text source') === NULL) { | |
throw new \InvalidArgumentException("The definition's 'text source' key has to specify the name of the text property to be processed."); | |
} | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getValue() { | |
if ($this->processed !== NULL) { | |
return $this->processed; | |
} | |
$item = $this->getParent(); | |
$text = $item->{($this->definition->getSetting('text source'))}; | |
// Avoid running check_markup() on empty strings. | |
if (!isset($text) || $text === '') { | |
$this->processed = ''; | |
} | |
else { | |
$this->processed = check_markup($text, $item->format, $item->getLangcode()); | |
} | |
return $this->processed; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function setValue($value, $notify = TRUE) { | |
$this->processed = $value; | |
// Notify the parent of any changes. | |
if ($notify && isset($this->parent)) { | |
$this->parent->onChange($this->name); | |
} | |
} | |
} |