Same name in other branches
- 3.0.x src/ColorHex.php \Drupal\color_field\ColorHex
Hex represents the Hex color format.
Hierarchy
- class \Drupal\color_field\ColorBase implements \Drupal\color_field\ColorInterface
- class \Drupal\color_field\ColorHex extends \Drupal\color_field\ColorBase
Expanded class hierarchy of ColorHex
5 files declare their use of ColorHex
- ColorFieldFormatterCss.php in src/
Plugin/ Field/ FieldFormatter/ ColorFieldFormatterCss.php - ColorFieldFormatterSwatch.php in src/
Plugin/ Field/ FieldFormatter/ ColorFieldFormatterSwatch.php - ColorFieldFormatterSwatchOptions.php in src/
Plugin/ Field/ FieldFormatter/ ColorFieldFormatterSwatchOptions.php - ColorFieldFormatterText.php in src/
Plugin/ Field/ FieldFormatter/ ColorFieldFormatterText.php - color_field.module in ./
color_field.module - A color field with a custom color picker using the Field Types API.
File
-
src/
ColorHex.php, line 8
Namespace
Drupal\color_fieldView source
class ColorHex extends ColorBase {
/**
* The Hex triplet of the color.
*
* @var int
*/
private $color;
/**
* Create a new Hex from a string.
*
* @param string $color
* The string hex value (i.e. "FFFFFF").
* @param string $opacity
* The opacity value.
*
* @throws Exception
*/
public function __construct($color, $opacity) {
$color = trim(strtolower($color));
if (substr($color, 0, 1) === '#') {
$color = substr($color, 1);
}
if (strlen($color) === 3) {
$color = str_repeat($color[0], 2) . str_repeat($color[1], 2) . str_repeat($color[2], 2);
}
if (!preg_match('/[0-9A-F]{6}/i', $color)) {
// @throws exception.
}
$this->color = hexdec($color);
$this->setOpacity(floatval($opacity));
return $this;
}
/**
* A string representation of this color in the current format.
*
* @param bool $opacity
* Whether or not to display the opacity.
*
* @return string
* The color in format: #RRGGBB.
*/
public function toString($opacity = TRUE) {
$rgb = $this->toRgb();
$hex = '#';
$hex .= str_pad(dechex($rgb->getRed()), 2, "0", STR_PAD_LEFT);
$hex .= str_pad(dechex($rgb->getGreen()), 2, "0", STR_PAD_LEFT);
$hex .= str_pad(dechex($rgb->getBlue()), 2, "0", STR_PAD_LEFT);
if ($opacity) {
$hex .= ' ' . $this->getOpacity();
}
return strtolower($hex);
}
/**
* {@inheritdoc}
*/
public function toHex() {
return $this;
}
/**
* {@inheritdoc}
*/
public function toRgb() {
$red = ($this->color & 0xff0000) >> 16;
$green = ($this->color & 0xff00) >> 8;
$blue = $this->color & 0xff;
$opacity = $this->getOpacity();
return new ColorRGB($red, $green, $blue, $opacity);
}
/**
* {@inheritdoc}
*/
public function toHsl() {
return $this->toRGB()
->toHsl();
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
ColorBase::$namedColors | public static | property | Named HTML colors. | |
ColorBase::$opacity | protected | property | The opacity of the color. | |
ColorBase::$patterns | public static | property | Regexes to match various color formats. | |
ColorBase::getOpacity | public | function | Get the opacity. | |
ColorBase::setOpacity | public | function | Set the opacity. | |
ColorHex::$color | private | property | The Hex triplet of the color. | |
ColorHex::toHex | public | function | Get the color as a hex instance. | Overrides ColorInterface::toHex |
ColorHex::toHsl | public | function | Get the color as a HSL instance. | Overrides ColorInterface::toHsl |
ColorHex::toRgb | public | function | Get the color as a RGB instance. | Overrides ColorInterface::toRgb |
ColorHex::toString | public | function | A string representation of this color in the current format. | Overrides ColorInterface::toString |
ColorHex::__construct | public | function | Create a new Hex from a string. |