PHP усы — запускать данные через функцию во время шаблонов

Я новичок в Усы, и я пытаюсь реализовать это в моем проекте. Это работало без Усов. Я понятия не имею, как сделать следующее (возможно, потому что я не знаю, какие ключевые слова для Google?).

Извините, если название вопроса неясно. Я не знаю, как сформулировать это более четко. Если кто-то может помочь мне отредактировать заголовок, это будет лучше всего.

По сути, у меня есть массив цветов фона, которые я хочу преобразовать во внутренний стиль CSS. Но я также хочу обработать массив перед его печатью, чтобы сгенерировать цвет текста каждого цвета фона в массиве.

Цветовой массив:

$colors = array(
array(
"name" => "blue",
"hex" => "#6CC5FA"),
array(
"name" => "red",
"hex" => "#840715"),
...
)

У меня есть функция, которая принимает входную строку цвета и выводит контрастный цвет текста. И в настоящее время я использую петли, чтобы повторить <style>

Я хочу распечатать вывод, как это:

<style>
.bg-blue {
background-color:#6CC5FA;
color: #333333  /*This is the contrast color*/
}
.bg-red {
background-color:#840715;
color: #ffffff
}
....
</style>

Текущий метод (очевидно, без усов) выглядит примерно так:

echo "<style>";
for ($i=0;i<sizeof($colors);i++) {
echo ".bg-".$colors[$i]["name"]....contrastColor($colors[$i]["hex"])....;
//You get the idea
}
echo "</style>";

Я знаю, что могу использовать цикл для вставки сгенерированных цветов текста в $colors затем шаблон с усами, но есть ли способ вставить функцию в шаблон и сказать, чтобы ус запустил цветовые коды через него?

Есть ли что-то подобное?

$color_template = '
<style>
{{#color}}
.bg-{{name}} {
background-color:{{hex}};
color: {{contrastColor(hex)}}
}
{{/color}}
</style>
';

0

Решение

Ага! Ты можешь использовать FILTERS прагма сделать именно это:

{{% FILTERS }}
<style>
{{# color }}
.bg-{{ name }} {
background-color: {{ hex }};
color: {{ hex | contrastColor }};
}
{{/ color }}
</style>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]