Espressione

Da Opera Wiki.

(Differenze fra le revisioni)
(Concatenazione degli elementi)
(Concatenazione degli elementi)
Riga 14: Riga 14:
Esempi:
Esempi:
-
{{ES| <code>profile(A) & option(OPZ1)</code> → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva. }}
+
{{ES| <code>profile(A) & option(OPZ1)</code> → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva}}
 +
 
{{ES| <code>struct-contains(ACC123) | struct-contains(ACC456)</code> → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.}}
{{ES| <code>struct-contains(ACC123) | struct-contains(ACC456)</code> → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.}}
{{ES| <code>option(OPZ1) & (side-contains(PF100) | side-contains(PF200))</code> → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}
{{ES| <code>option(OPZ1) & (side-contains(PF100) | side-contains(PF200))</code> → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}

Versione delle 09:43, 26 ago 2025

Indice

Espressioni

Le espressioni consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni. Un’espressione può contenere numeri, variabili e funzioni integrate, che vengono valutati per stabilire se una condizione è vera o falsa.

Concatenazione degli elementi

Gli elementi possono essere combinati tra loro tramite:

  • l’uso di funzioni nidificate;
  • l’uso di operatori logici per unire più condizioni.

Gli operatori disponibili sono:

  • & → AND logico (entrambe le condizioni devono essere vere);
  • | → OR logico (almeno una condizione deve essere vera).

Esempi:

Note ES:
profile(A) & option(OPZ1) → vero solo se il profilo è A e l’opzione OPZ1 è attiva
Note ES:
struct-contains(ACC123) </div>
Note ES:
<code>option(OPZ1) & (side-contains(PF100)

Funzioni disponibili

Sono previste varie funzioni-struttura, utili per controllare la presenza o lo stato di profili, accessori e opzioni:

  • <code>profile(...): verifica se ci si trova in uno specifico profilo.
  • typology-option(...): controlla se un’opzione è attiva in una qualunque struttura della tipologia.
  • option(...): controlla se un’opzione è attiva nella struttura corrente.
  • frameside-contains(...): verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.
  • frame-contains(...): verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).
  • side-contains(...): come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).
  • struct-contains(...): verifica nella struttura corrente.
  • typology-contains(...): ricerca estesa a tutte le strutture della tipologia.

Esempi:

  • profile(NOME_PROFILO)
  • struct-contains(NOME_PROFILO_O_ACCESSORIO)
  • option(NOME_OPZIONE)

Ricerca avanzata

Le espressioni supportano due tipi di ricerca evoluta:

Ricerca regolare

Se il parametro inizia con r=, viene interpretato come una regular expression.

Esempio: side-contains(r=P.*2) → ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera P seguita dal numero 2, con qualunque carattere in mezzo.

Ricerca per parole chiave

Se il parametro è keyword(kw), viene ricercata la parola chiave kw nelle parole chiave dei profili, accessori o opzioni.

Esempio: frameside-contains(keyword(KITAR)) → verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave KITAR.

Le ricerche regolari e per parole chiave possono anche essere annidate.

Esempio: typology-contains(keyword(r=^FR))

→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per FR.
Strumenti personali