У меня есть функция JS, которая преобразует значение HEX в значение RGB. Мне было интересно, можно ли сделать то же самое в Twig. Я использую платформу, которая не поддерживает значения rgb (a) (да, я знаю).
Я знаю, что есть несколько плагинов для этого в Twig, но это не вариант Это просто вопрос, если это возможно сделать и для целей обучения. Я не могу изменить платформу, которую я использую.
Функция JS
function hexToRGB(hex, alpha) {
var r = parseInt(hex.slice(1, 3), 16),
g = parseInt(hex.slice(3, 5), 16),
b = parseInt(hex.slice(5, 7), 16);
if (alpha) {
return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")";
} else {
return "rgb(" + r + ", " + g + ", " + b + ")";
}
}
$(function(){
hexToRGB('#FF0000', 0.5);
});
Что я пытался сделать в Twig:
{% set hex = 'FF0000' %}
{% set r = hex | slice(1, 2) | number_format %}
{% set g = hex | slice(2, 4) %}
{% set b = hex | slice(4, 6) %}
{% set hexToRGB = 'rgba('~ r ~',' ~ g ~',' ~ b ~', 0.5)' %}
{{ hexToRGB }}
Проблема, с которой я сталкиваюсь, заключается в parseint
нарезанном значение для числа. В Twig всегда возвращает FF
в качестве значения. Так как же вы можете преобразовать FF
в Twig в числовое значение c (в данном случае 255
для белого) так же, как вы делаете с parseint
??
Есть идеи? Спасибо заранее ...