<

Comparazioni

Ultima modifica: 2 Gennaio 2025

Nel wordpress Gpci framework è presente in varie zone un sistema per comparare 2 valori e generare contenuti in base al risultato della comparazione. Solitamente è associato alla conversione dinamica per massimizzare la flessibilità delle opzioni. Anche in questo caso abbiamo nel backend un selettore che contiene tutte i comparatori, mentre nel frontend verrà valutato il risultato tramite php.

Comparatori

Proprio come nella conversione dinamica i comparatori sono di 2 tipi: predefiniti (la maggior parte dei comparatori php) e personalizzati per poterne quindi definire di propri secondo l'utilizzo. E' importante sapere che quando è presente una comparazione la condizione sarà inizialmente sempre impostata come NON rispettata, sarà poi compito della funzione di comparazione di impostarla eventualmente come rispettata. I comparatori predefiniti sono:

== (uguale)

La comparazione sarà rispettata se i due valori sono uguali senza bisogno di verificare il tipo dei valori. Esempio: una stringa 11 è uguale a un numero 11.


=== (uguale e stesso tipo)

La comparazione sarà rispettata se i due valori sono uguali e anche dello stesso tipo (esempio due numeri). Esempio: una stringa 11 NON è uguale a un numero 11.


!= (non uguale)

La comparazione sarà rispettata se i due valori non sono uguali.


!== (non identico)

La comparazione sarà rispettata se i due valori non sono uguali ma anche se non sono dello stesso tipo.


< (minore)

La comparazione sarà rispettata se il primo valore è minore del secondo. Probabilmente sarà utilizzata tra due numeri.


<= (minore o uguale)

La comparazione sarà rispettata se il primo valore è minore o uguale al secondo. Probabilmente sarà utilizzata tra due numeri.


> (maggiore)

La comparazione sarà rispettata se il primo valore è maggiore del secondo. Probabilmente sarà utilizzata tra due numeri.


>= (maggiore o uguale)

La comparazione sarà rispettata se il primo valore è maggiore o uguale al secondo. Probabilmente sarà utilizzata tra due numeri.


Comparatori personalizzati

Esattamente come nella conversione dinamica è possibile creare delle comparazioni personalizzate tramite php, che saranno valutate soltanto dopo le altre. Evitare quindi di utilizzare gli stessi valori visti sopra, come ==, !=, ecc... La globale php è $GLOBALS['gpci']['dynamic_conversion']['comparators']['custom'] e viene definita nel seguente formato di esempio:

$GLOBALS['gpci']['dynamic_conversion']['comparators']['custom']['str_contains'] = [
	'label'		=> 'Valore 1 contiene valore 2',	
	'function'	=> function( $value1, $value2 ){ return str_contains( $value1, $value2 ); }
];

La funzione dovrà probabilmente, ma non obbligatoriamente, avere in ingresso tutti e 2 i valori (che arriveranno alla funzione già convertiti dinamicamente). Notare che per il momento non è possibile aggiungere un helper ai controlli, sarà aggiunto in un secondo momento (per ora utilizzare la label).