File

src/Plugin/Field/FieldFormatter/ColorFieldTextFormatter.php, line 83

Class

ColorFieldTextFormatter
Plugin implementation of the 'color_field_swatch' formatter.

Namespace

Drupal\color_field\Plugin\Field\FieldFormatter

Code

public function viewElements(FieldItemListInterface $items) {
    $format = $this->getSetting('format');
    $opacity = $this->getFieldSetting('opacity');
    foreach ($items as $delta => $item) {
        switch ($format) {
            case 'hexadecimal':
                $output = '#' . $item->color;
                break;
            case 'rgb':
                $color = color_field_hex2rgb($item->color);
                $output = 'rgb(' . $color['r'] . ',' . $color['g'] . ',' . $color['b'] . ')';
                break;
            case 'rgba':
                $color = color_field_hex2rgb($item->color);
                $item->opacity = $opacity ? $item->color : 1;
                $output = 'rgb(' . $color['r'] . ',' . $color['g'] . ',' . $color['b'] . ',' . $item->color . ')';
                break;
        }
        $elements[$delta] = array(
            '#markup' => $output,
        );
    }
    return $elements;
}