Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
83.33% |
5 / 6 |
ConvertTokens | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
3.04 | |
83.33% |
5 / 6 |
transform | |
0.00% |
0 / 1 |
3.04 | |
83.33% |
5 / 6 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\user\Plugin\migrate\process\ConvertTokens. | |
*/ | |
namespace Drupal\user\Plugin\migrate\process; | |
use Drupal\migrate\MigrateException; | |
use Drupal\migrate\MigrateExecutableInterface; | |
use Drupal\migrate\ProcessPluginBase; | |
use Drupal\migrate\Row; | |
/** | |
* Plugin to replace !tokens with [tokens]. | |
* | |
* @MigrateProcessPlugin( | |
* id = "convert_tokens", | |
* handle_multiples = TRUE | |
* ) | |
*/ | |
class ConvertTokens extends ProcessPluginBase { | |
/** | |
* {@inheritdoc} | |
* | |
*/ | |
public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { | |
$tokens = array( | |
'!site' => '[site:name]', | |
'!username' => '[user:name]', | |
'!mailto' => '[user:mail]', | |
'!login_uri' => '[site:login-url]', | |
'!uri_brief' => '[site:url-brief]', | |
'!edit_uri' => '[user:edit-url]', | |
'!login_url' => '[user:one-time-login-url]', | |
'!uri' => '[site:url]', | |
'!date' => '[date:medium]', | |
'!password' => '', | |
); | |
// Given that our source is a database column that could hold a NULL | |
// value, sometimes that filters down to here. str_replace() cannot | |
// handle NULLs as the subject, so we reset to an empty string. | |
if (is_null($value)) { | |
$value = ''; | |
} | |
if (is_string($value)) { | |
return str_replace(array_keys($tokens), $tokens, $value); | |
} | |
else { | |
throw new MigrateException('Value must be a string.'); | |
} | |
} | |
} |