Equações Condicionais
As equações condicionais permitem incluir lógica de comparação nas fórmulas de colunas de tabela de liga e estatísticas de jogadores. Em vez de uma expressão puramente aritmética, você pode escrever uma fórmula onde uma subexpressão é avaliada como 1 (verdadeiro) ou 0 (falso) com base em uma comparação, e então multiplicar esse resultado em um cálculo maior.
Este recurso é fornecido pelo módulo Equações Condicionais, que está incluído no plugin SportsPress principal em includes/sportspress/modules/sportspress-conditional-equations.php.
Operadores de Comparação
Quando o módulo Equações Condicionais está ativo, os seguintes operadores são adicionados à paleta do construtor de equações em Operadores:
Botão | Significado |
| Maior que |
| Menor que |
| Igual a |
| Diferente de |
| Maior ou igual a |
| Menor ou igual a |
Esses operadores estão disponíveis no construtor de equações para Colunas da Tabela e Estatísticas do Jogador.
Como a Avaliação Funciona
Uma subexpressão condicional entre parênteses é avaliada como 1 (a condição é verdadeira) ou 0 (a condição é falsa).
O padrão geral é:
( operando_esquerdo operador operando_direito ) * valor_se_verdadeiro
Como uma condição verdadeira retorna 1 e uma condição falsa retorna 0, multiplicar pela condição funciona como uma porta if/then: o valor é incluído quando a condição é verdadeira e zerado quando é falsa.
Para expressar uma estrutura if/then/else, combine duas expressões condicionais:
( condição ) * valor_se_verdadeiro + ( condição_negada ) * valor_se_falso
Ou, mais simplesmente, como os dois ramos são mutuamente exclusivos:
( condição ) * valor_se_verdadeiro + ( 1 - ( condição ) ) * valor_se_falso
Exemplos
Limitar um valor a um máximo
Para dar no máximo 3 pontos por uma vitória, mas limitar para que diferença de gols acima de 10 não adicione pontos extras:
$win * 3 + ( ($goalsfor - $goalsagainst) > 10 ) * 0
Um exemplo de limite mais simples — limitar a diferença de gols a no máximo 10:
( ($goalsfor - $goalsagainst) > 10 ) * 10 + ( ($goalsfor - $goalsagainst) <= 10 ) * ($goalsfor - $goalsagainst)
Quando $goalsfor - $goalsagainst é maior que 10, o primeiro ramo retorna 10. Quando é 10 ou menos, o segundo ramo retorna a diferença real.
Pontuação com handicap
Para adicionar um ponto bônus quando os gols pró excedem os gols contra em mais de 2:
$win * 3 + ( ($goalsfor - $goalsagainst) > 2 ) * 1
A subexpressão ( ($goalsfor - $goalsagainst) > 2 ) é avaliada como 1 quando a condição é atendida e 0 caso contrário. Multiplicar por 1 adiciona um ponto bônus apenas nesse caso.
Zerar um valor condicionalmente
Para mostrar a diferença de gols apenas quando positiva (caso contrário, mostrar 0):
( ($goalsfor - $goalsagainst) > 0 ) * ($goalsfor - $goalsagainst)
Condições Aninhadas
As condições podem ser aninhadas dentro de expressões maiores. O mecanismo de equações avalia os parênteses mais internos primeiro. Você pode envolver uma expressão condicional em parênteses externos e combiná-la com outros operadores.
Por exemplo:
( ( $goalsfor > $goalsagainst ) * 3 ) + ( ( $goalsfor == $goalsagainst ) * 1 )
Isso concede 3 pontos se os gols pró excedem os gols contra, 1 ponto se iguais e 0 caso contrário.
Quando Usar Equações Condicionais vs. Equações Regulares
Use uma equação aritmética regular quando o cálculo é sempre a mesma fórmula independente dos valores — por exemplo, $win * 3 + $draw * 1.
Use uma equação condicional quando o resultado depende de em qual faixa um valor se enquadra, quando você precisa limitar ou estabelecer um piso para um valor, ou quando deseja incluir um bônus ou penalidade que se aplica apenas sob certas condições.
Não use equações condicionais para atribuições simples de pontos por vitória/derrota/empate. A abordagem padrão é usar $win * 3 + $draw * 1 sem condições. Reserve expressões condicionais para casos onde o valor de pontos ou o valor exibido muda com base na magnitude de um resultado.
Construindo Equações Condicionais no Construtor
Abra a tela de edição de uma Coluna de Tabela ou Estatística do Jogador.
Na meta box Equação, use a linha Operadores na paleta para clicar em
(e abrir um grupo de parênteses.Adicione a variável do operando esquerdo (por exemplo, clique em um token de Resultado como Gols pró).
Clique no operador
-e em outra variável para formar uma diferença.Clique no operador de comparação (por exemplo
>para maior que).Clique em uma constante (por exemplo
10).Clique em
)para fechar o grupo de parênteses.Clique em
*e depois no valor para multiplicar quando a condição for verdadeira.Adicione
+e a expressão de fallback para o caso falso, se necessário.Clique em Publicar ou Atualizar para salvar.
A equação armazenada é uma string separada por espaços como ( $goalsfor - $goalsagainst > 10 ) * 10. Você pode inspecionar ou editar essa string diretamente se necessário, lendo o valor de meta post sp_equation.
