Преобразует цвет в соответствии со смещением по тону, яркости или насыщенности.
- PHP >= 5.6
- (MODX)EvolutionCMS.libraries.ddTools >= 0.60
- (MODX)EvolutionCMS.snippets.ddGetDocumentField >= 2.11.1
- Название сниппета:
ddColorTools
. - Описание:
<b>3.2.1</b> Преобразует цвет в соответствии со смещением по тону, яркости или насыщенности.
. - Категория:
Core
. - Анализировать DocBlock:
no
. - Код сниппета (php): Вставьте содержимое файла
ddColorTools_snippet.php
из архива.
- Создайте новую папку
assets/snippets/ddColorTools/
. - Извлеките содержимое архива в неё (кроме файла
ddColorTools_snippet.php
).
Используя (MODX)EvolutionCMS.libraries.ddInstaller
Просто вызовите следующий код в своих исходинках или модуле Console:
//Подключение (MODX)EvolutionCMS.libraries.ddInstaller
require_once(
$modx->getConfig('base_path') .
'assets/libs/ddInstaller/require.php'
);
//Установка (MODX)EvolutionCMS.snippets.ddColorTools
\DDInstaller::install([
'url' => 'https://github.com/DivanDesign/EvolutionCMS.snippets.ddColorTools',
'type' => 'snippet'
]);
- Если
ddColorTools
отсутствует на вашем сайте,ddInstaller
просто установит его. - Если
ddColorTools
уже есть на вашем сайте,ddInstaller
проверит его версию и обновит, если нужно.
-
inputColor
- Описание: Исходный цвет в HEX, HSL или HSB/HSV, с альфа-каналом или без.
Значение регистронезависимо.
Примеры валидных значений:ffffff
#FFFFFF
#FFFFFFFF
hsl(0, 0%, 100%)
hsla(0, 0%, 100%)
HSL(0, 0, 100)
hsb(0, 0%, 100%)
hsba(0, 0%, 100%)
hsv(0, 0%, 100%)
hsva(0, 0%, 100%)
hsb(0, 0, 100)
hsv(0, 0, 100)
- Допустимые значения:
string
- Обязателен
- Описание: Исходный цвет в HEX, HSL или HSB/HSV, с альфа-каналом или без.
-
inputColor_docField
- Описание: Имя поля документа / TV, содержащего значение.
Если задать этот параметр, параметрinputColor
игнорируется, значение получается из указанного поля документа. - Допустимые значения:
string
- Значение по умолчанию: —
- Описание: Имя поля документа / TV, содержащего значение.
-
inputColor_docId
- Описание: ID документа, значение поля которого нужно получить.
Если не задан, берётся ID текущего документа. - Допустимые значения:
integer
- Значение по умолчанию: —
- Описание: ID документа, значение поля которого нужно получить.
Все параметры могут содержать следующие специальные операторы:
+
(например,+10
) — прибавить-
(например,-10
) — отнятьabs
— округлить до максимального или минимального значенияr
— инвертировать- без оператора (например,
10
) — просто установить, как указано
-
offset_h
- Описание: Операции смещения цветового тона через запятую.
- Допустимые значения:
stringCommaSeparated
- Значение по умолчанию:
'+0'
-
offset_h[i]
- Описание: Смещение цветового тона в градусах (
[-360; +360]
). - Допустимые значения:
string
- Обязателен
- Описание: Смещение цветового тона в градусах (
-
offset_s
- Описание: Операции смещения насыщенности через запятую.
- Допустимые значения:
stringCommaSeparated
- Значение по умолчанию:
'+0'
-
offset_s[i]
- Описание: Смещение насыщенности в процентах (
[-100; +100]
). - Допустимые значения:
string
- Обязателен
- Описание: Смещение насыщенности в процентах (
-
offset_l
- Описание: Операции смещения яркости через запятую.
- Допустимые значения:
stringCommaSeparated
- Значение по умолчанию:
'+0'
-
offset_l[i]
- Описание: Смещение яркости в процентах (
[-100; +100]
). - Допустимые значения:
string
- Обязателен
- Описание: Смещение яркости в процентах (
-
offset_a
- Описание: Операции смещения альфа-канала через запятую.
- Допустимые значения:
stringCommaSeparated
- Значение по умолчанию:
'+0'
-
offset_a[i]
- Описание: Смещение альфа-канала в процентах (
[-100; +100]
). - Допустимые значения:
string
- Обязателен
- Описание: Смещение альфа-канала в процентах (
-
result_outputFormat
- Описание: В каком формате возвращать цвет?
Значение регистронезависимо. - Допустимые значения:
'hex'
'hsl'
'rgb'
- Значение по умолчанию:
'hsl'
- Описание: В каком формате возвращать цвет?
-
result_tpl
- Описание: Чанк, через который выводить (если нужно).
Доступные плейсхолдеры:[+ddResult+]
— полная строка цвета[+ddH+]
— цветовой тон[+ddS+]
— насыщенность[+ddL+]
— яркость[+ddA+]
— альфа-канал[+ddIsDark+]
— является ли цвет тёмным (0
||1
)
- Допустимые значения:
stringChunkName
string
— передавать код напрямую без чанка можно начиная значение с@CODE:
- Значение по умолчанию: —
- Описание: Чанк, через который выводить (если нужно).
-
result_tpl_placeholders
- Описание:
Дополнительные данные, которые будут переданы в чанк
result_tpl
.
Вложенные объекты и массивы также поддерживаются:{"someOne": "1", "someTwo": "test" }
=>[+someOne+], [+someTwo+]
.{"some": {"a": "one", "b": "two"} }
=>[+some.a+]
,[+some.b+]
.{"some": ["one", "two"] }
=>[+some.0+]
,[+some.1+]
.
- Допустимые значения:
stringJsonObject
— в виде JSONstringHjsonObject
— в виде HJSONstringQueryFormatted
— в виде Query string- Также может быть задан, как нативный PHP объект или массив (например, для вызовов через
$modx->runSnippet
).arrayAssociative
object
- Значение по умолчанию: —
- Описание:
Дополнительные данные, которые будут переданы в чанк
Нам нужны чёрные тексты на светлых фонах и наоборот.
Зададим цвет фона в параметре сниппета inputColor
:
color: [[ddColorTools?
&inputColor=`#007cc3`
&result_tpl=`blackOrWhiteColor`
]];
Код чанка blackOrWhiteColor
:
hsl(0, 0%, [[ddIf?
&operand1=`[+ddIsDark+]`
&operator=`bool`
&trueChunk=`100`
&falseChunk=`0`
]]%)
//Подключение (MODX)EvolutionCMS.libraries.ddTools
require_once(
$modx->getConfig('base_path') .
'assets/libs/ddTools/modx.ddtools.class.php'
);
//Запуск (MODX)EvolutionCMS.snippets.ddColorTools
\DDTools\Snippet::runSnippet([
'name' => 'ddColorTools',
'params' => [
'inputColor' => '#000000',
'result_tpl' => 'colorTpl'
]
]);