Same name and namespace in other branches
- 8.x-2.x color_field.module \color_field_tokens() 1 comment
Implements hook_tokens().
File
-
./
color_field.module, line 150
Code
function color_field_tokens(string $type, array $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata) : array {
$replacements = [];
if ($type === 'color_field' && !empty($data['color_field'])) {
/** @var \Drupal\color_field\Plugin\Field\FieldType\ColorFieldType $color_field */
$color_field = $data['color_field'];
$color_hex = new ColorHex($color_field->color, $color_field->opacity);
foreach ($tokens as $name => $original) {
switch ($name) {
case 'hex':
$replacements[$original] = $color_hex->toString(FALSE);
break;
case 'hex:with_opacity':
$replacements[$original] = $color_hex->toString(TRUE);
break;
case 'rgb':
$replacements[$original] = $color_hex->toRgb()
->toString(FALSE);
break;
case 'rgba':
$replacements[$original] = $color_hex->toRgb()
->toString(TRUE);
break;
case 'rgb:red':
$replacements[$original] = $color_hex->toRgb()
->getRed();
break;
case 'rgb:blue':
$replacements[$original] = $color_hex->toRgb()
->getBlue();
break;
case 'rgb:green':
$replacements[$original] = $color_hex->toRgb()
->getGreen();
break;
case 'rgb:opacity':
$replacements[$original] = $color_hex->toRgb()
->getOpacity();
break;
}
}
}
return $replacements;
}