XF 2.3 Изменение цвета шрифта в числовом поле, в зависимости от числа

Версия XenForo
2.3.7

CHEL74

Участники
Сообщения
9
Решения
1
Реакции
1
Баллы
5
Есть дополнительное числовое поле ресурса, в котором необходимо красить число в разные цвета в зависимости от того, в каком диапазоне находится введённое число. Как это можно реализовать для конкретного поля? Как я понимаю, через "HTML для вывода значения" не получится, так как у HTML нет if/else.
 
Решение
Вы сами же себе ответили на вопрос. Раз нет возможности if/else в полях HTML, в чем проблема использовать модификации шаблонов?

Шаблон: custom_fields_macros
Создаете модификацию шаблона, ищите:
HTML:
    <xf:else />
            {$definition.getFormattedValue($value)|raw}
        </xf:if>
    </xf:if>
</xf:macro>

и крутите как вам угодно, допустим самый простецкий пример с головы:
HTML:
<xf:else />
            <xf:if is="$definition.field_id == 'game_version'">
                <xf:if is="$value < 30">
                    <span style="color: #e74c3c; font-weight: bold;">{$definition.getFormattedValue($value)|raw}</span>
                <xf:elseif is="$value >= 30 AND $value < 70" />
                    <span style="color: #f39c12...
Вы сами же себе ответили на вопрос. Раз нет возможности if/else в полях HTML, в чем проблема использовать модификации шаблонов?

Шаблон: custom_fields_macros
Создаете модификацию шаблона, ищите:
HTML:
    <xf:else />
            {$definition.getFormattedValue($value)|raw}
        </xf:if>
    </xf:if>
</xf:macro>

и крутите как вам угодно, допустим самый простецкий пример с головы:
HTML:
<xf:else />
            <xf:if is="$definition.field_id == 'game_version'">
                <xf:if is="$value < 30">
                    <span style="color: #e74c3c; font-weight: bold;">{$definition.getFormattedValue($value)|raw}</span>
                <xf:elseif is="$value >= 30 AND $value < 70" />
                    <span style="color: #f39c12; font-weight: bold;">{$definition.getFormattedValue($value)|raw}</span>
                <xf:else />
                    <span style="color: #27ae60; font-weight: bold;">{$definition.getFormattedValue($value)|raw}</span>
                </xf:if>
            <xf:else />
                {$definition.getFormattedValue($value)|raw}
            </xf:if>
        </xf:if>
    </xf:if>
</xf:macro>

Не забудьте указать id дополнительного поля. И стили обязательно вынесите в extra.less, мой пример не для продакшена.

1773389891228.png
 
Последнее редактирование:
Вы сами же себе ответили на вопрос. Раз нет возможности if/else в полях HTML, в чем проблема использовать модификации шаблонов?

Шаблон: custom_fields_macros
Создаете модификацию шаблона, ищите:
HTML:
    <xf:else />
            {$definition.getFormattedValue($value)|raw}
        </xf:if>
    </xf:if>
</xf:macro>

и крутите как вам угодно, допустим самый простецкий пример с головы:
HTML:
<xf:else />
            <xf:if is="$definition.field_id == 'game_version'">
                <xf:if is="$value < 30">
                    <span style="color: #e74c3c; font-weight: bold;">{$definition.getFormattedValue($value)|raw}</span>
                <xf:elseif is="$value >= 30 AND $value < 70" />
                    <span style="color: #f39c12; font-weight: bold;">{$definition.getFormattedValue($value)|raw}</span>
                <xf:else />
                    <span style="color: #27ae60; font-weight: bold;">{$definition.getFormattedValue($value)|raw}</span>
                </xf:if>
            <xf:else />
                {$definition.getFormattedValue($value)|raw}
            </xf:if>
        </xf:if>
    </xf:if>
</xf:macro>

Не забудьте указать id дополнительного поля. И стили обязательно вынесите в extra.less, мой пример не для продакшена.

Спасибо! Всё получилось
 
Современный облачный хостинг провайдер | Aéza

Похожие темы

Назад
Сверху Снизу