Equazioni condizionali
Le equazioni condizionali ti permettono di includere logica di confronto nelle formule delle colonne della classifica e delle statistiche dei giocatori. Invece di una pura espressione aritmetica, puoi scrivere una formula in cui una sotto-espressione valuta a 1 (vero) o 0 (falso) in base a un confronto, e poi moltiplicare quel risultato in un calcolo più grande.
Questa funzionalità è fornita dal modulo Equazioni condizionali, incluso nel plugin core SportsPress in includes/sportspress/modules/sportspress-conditional-equations.php.
Operatori di confronto
Quando il modulo Equazioni condizionali è attivo, i seguenti operatori vengono aggiunti alla palette del costruttore di equazioni sotto Operatori:
Pulsante | Significato |
| Maggiore di |
| Minore di |
| Uguale a |
| Diverso da |
| Maggiore o uguale a |
| Minore o uguale a |
Questi operatori sono disponibili nel costruttore di equazioni per Colonne della classifica e Statistiche giocatore.
Come funziona la valutazione
Una sotto-espressione condizionale tra parentesi valuta a 1 (la condizione è vera) o 0 (la condizione è falsa).
Il pattern generale è:
( operando_sinistro operatore operando_destro ) * valore_se_vero
Poiché una condizione vera restituisce 1 e una condizione falsa restituisce 0, moltiplicare per la condizione agisce come un gate if/then: il valore viene incluso quando la condizione è vera e azzerato quando è falsa.
Per esprimere una struttura if/then/else, combina due espressioni condizionali:
( condizione ) * valore_se_vero + ( condizione_negata ) * valore_se_falso
O più semplicemente, poiché i due rami si escludono a vicenda:
( condizione ) * valore_se_vero + ( 1 - ( condizione ) ) * valore_se_falso
Esempi
Limitare un valore a un massimo
Per assegnare al massimo 3 punti per una vittoria ma limitarlo in modo che una differenza reti superiore a 10 non aggiunga extra:
$win * 3 + ( ($goalsfor - $goalsagainst) > 10 ) * 0
Un esempio di limite più semplice — limitare la differenza reti a un massimo di 10:
( ($goalsfor - $goalsagainst) > 10 ) * 10 + ( ($goalsfor - $goalsagainst) <= 10 ) * ($goalsfor - $goalsagainst)
Quando $goalsfor - $goalsagainst è maggiore di 10, il primo ramo restituisce 10. Quando è 10 o meno, il secondo ramo restituisce la differenza effettiva.
Punteggio con handicap
Per aggiungere un punto bonus quando i gol fatti superano i gol subiti di più di 2:
$win * 3 + ( ($goalsfor - $goalsagainst) > 2 ) * 1
La sotto-espressione ( ($goalsfor - $goalsagainst) > 2 ) valuta a 1 quando la condizione è soddisfatta e 0 altrimenti. Moltiplicare per 1 aggiunge un punto bonus solo in quel caso.
Azzerare un valore condizionalmente
Per mostrare la differenza reti solo quando è positiva (altrimenti mostrare 0):
( ($goalsfor - $goalsagainst) > 0 ) * ($goalsfor - $goalsagainst)
Condizioni annidate
Le condizioni possono essere annidate all'interno di espressioni più grandi. Il motore delle equazioni valuta prima le parentesi più interne. Puoi racchiudere un'espressione condizionale in parentesi esterne e combinarla con altri operatori.
Ad esempio:
( ( $goalsfor > $goalsagainst ) * 3 ) + ( ( $goalsfor == $goalsagainst ) * 1 )
Questo assegna 3 punti se i gol fatti superano i gol subiti, 1 punto se sono uguali, e 0 altrimenti.
Quando usare le equazioni condizionali rispetto alle equazioni normali
Usa un'equazione aritmetica normale quando il calcolo è sempre la stessa formula indipendentemente dai valori — ad esempio, $win * 3 + $draw * 1.
Usa un'equazione condizionale quando il risultato dipende dall'intervallo in cui cade un valore, quando devi limitare o pianare un valore, o quando vuoi includere un bonus o una penalità che si applica solo in determinate condizioni.
Non usare equazioni condizionali per semplici assegnazioni di punti vittoria/sconfitta/pareggio. L'approccio standard è usare $win * 3 + $draw * 1 senza condizioni. Riserva le espressioni condizionali per i casi in cui il valore dei punti o il valore visualizzato cambia in base alla grandezza di un risultato.
Costruzione di equazioni condizionali nel costruttore
Apri la schermata di modifica per una Colonna della classifica o una Statistica giocatore.
Nel meta box Equazione, usa la riga Operatori nella palette per fare clic su
(per aprire un gruppo di parentesi.Aggiungi la variabile dell'operando sinistro (ad esempio, fai clic su un token Risultato come Gol fatti).
Fai clic sull'operatore
-e un'altra variabile per formare una differenza.Fai clic sull'operatore di confronto (ad esempio
>per maggiore di).Fai clic su una costante (ad esempio
10).Fai clic su
)per chiudere il gruppo di parentesi.Fai clic su
*e poi sul valore per cui moltiplicare quando la condizione è vera.Aggiungi
+e l'espressione di fallback per il caso falso se necessario.Fai clic su Pubblica o Aggiorna per salvare.
L'equazione memorizzata è una stringa separata da spazi come ( $goalsfor - $goalsagainst > 10 ) * 10. Puoi ispezionare o modificare questa stringa direttamente se necessario leggendo il valore meta post sp_equation.
