Modificatori modx revo. Modificatori condizionali per i modelli in MODX. Visualizzazione del filtro e filtraggio dei risultati
Oggi è un articolo utile sui filtri phx e sui loro modificatori MODX Revo con cui puoi manipolare il valore di vari tag direttamente all'interno dei modelli.
A cosa servono?
i modificatori phx semplificano la vita agli sviluppatori modx. Diciamo che abbiamo un sito con un carosello di immagini (o con un banner) di cui hai bisogno visualizzare solo nella pagina principale... Per fare ciò, è sufficiente inserirlo in un pezzo separato e quindi visualizzarlo nel modello utilizzando questa costruzione
In cui si: 1
- id della pagina principale,
$ carosello- chunk con il codice del carosello (banner).
Solo le teiere complete creano un nuovo modello, per il bene di poche righe di codice del carosello. Anch'io ero così, in generale non disperiamo e stiamo introducendo phx nello sviluppo.
Analizziamo più in dettaglio la costruzione di cui sopra:
[[* id: is = `1`: then =` [[$ carosello]] `]]
* ID- visualizza l'id della pagina corrente;
: è = `1`: quindi =
- controlla se è uguale * id == 1? e se uguale, viene visualizzato il contenuto poi;
$ carosello- emette il pezzo carosello.
Invece di * id, puoi utilizzare altri campi, ad esempio * modello - visualizzerà il modello attualmente utilizzato. O puoi controllare se il campo TV è pieno o meno (lascia che siano * parole chiave) e se è pieno, quindi visualizzalo. Esaminiamo questo caso più in dettaglio. Dato il markup standard:
Compito: non visualizzare questa riga se le parole chiave TV sono vuote.
Soluzione.
[[* parole chiave:! vuoto = ` `]]
Carichi
È necessario monitorare l'elaborazione dei modificatori, il loro uso sconsiderato causerà carichi inutili. Torniamo al carosello, questo record viene letto da sinistra a destra e il MODH soddisfa tutte le condizioni nidificate, indipendentemente dal fatto che la condizione sia vera o meno, che il contenuto venga visualizzato nella pagina corrente [[$ carosello]], in ogni caso, il suo contenuto sarà oggetto di trattamento. A questo proposito è più opportuno riscrivere la voce:
[[$ caru [[* id: is = `1`: then =` sel`]]]]
In questo caso, il contenuto del chunk $ carosello, verrà elaborato se la condizione è soddisfatta
* id: è = `1`
da eseguita
[[* id: is = `1`: then =` sel`]]
e se l'id della pagina corrente è 1, l'ultima cosa da elaborare è [[$ carosello]] se id non è uguale a 1 allora - [[$ caru]]... E se il pezzo $ caru- non negli elementi, quindi non ci sarà carico.
In generale, l'output ideale sarebbe simile a questo.
[[$ [[* id: is = `1`: then =` carosello`]]]]
Come integrare correttamente il layout in modx revo Consiglio di leggerlo qui.
Nota! Puoi combinare tutti i modificatori che desideri per adattarli alla logica dei componenti del sito, ma soprattutto, ricorda, la loro essenza principale è facilitare lo sviluppo, e non complicare i compiti già complessi. Di solito, il modo più efficace ed efficiente è il più semplice, poiché più semplice e chiaro è il design, più facile sarà lavorarci in futuro. Di seguito sono riportati i principali modificatori che è possibile utilizzare per qualsiasi tag MODH Revo.
Catene modificatrici
Un buon esempio il concatenamento formatterà la stringa della data in un formato diverso, in questo modo:
[[+ mydate: strtotime: date = `% Y-% m-% d`]]
L'accesso diretto alla tabella "modx_user_attributes" nel database utilizzando i modificatori di output invece di uno snippet può essere effettuato semplicemente utilizzando il modificatore informazioni utente... Seleziona la colonna appropriata dalla tabella e specificala come proprietà del modificatore di output, ad esempio, in questo modo:
Chiave utente interna: [[! + Modx.user.id: userinfo = `internalKey`]] Login: [[! + Modx.user.id: userinfo =` username`]] Nome completo: [[! + Modx.user .id: userinfo = `fullname`]] Ruolo: [[! + modx.user.id: userinfo =` role`]] E-mail: [[! + modx.user.id: userinfo = `email`]] Telefono: [[! + Modx.user.id: userinfo = `phone`]] Cellulare: [[! + Modx.user.id: userinfo =` mobilephone`]] Fax: [[! + Modx.user.id : userinfo = `fax`]] Data di nascita: [[! + modx.user.id: userinfo =` dob`: date = `% Y-% m-% d`]] Sesso: [[! + modx.user . id: userinfo = `gender`]] Paese: [[! + modx.user.id: userinfo =` country`]] Stato: [[! + modx.user.id: userinfo = `state`]] CAP : [[! + modx.user.id: userinfo = `zip`]] Foto: [[! + modx.user.id: userinfo =` photo`]] Commento: [[! + modx.user.id: userinfo = `comment`]] Data ultimo accesso: [[! + modx.user.id: userinfo =` lastlogin`: date = `% Y-% m-% d`]] Conteggio accessi: [[! + modx.user . id: userinfo = `logincount`]]
Presta particolare attenzione al punto esclamativo [[ ! + modx.user.id]]... Permette NON memorizzare nella cache il contenuto dell'output. Perché non memorizzare nella cache? Immaginiamola così: ci sono 5 utenti sul sito. Il primo utente ha visitato la pagina con una chiamata:
Benvenuto [[! + Modx.user.id: userinfo = `username`]]!
Come previsto in questa pagina, all'utente viene visualizzato un messaggio di benvenuto. Quindi, se il risultato viene memorizzato nella cache, quando si accede per la prima volta a questa pagina, verrà salvato il nome dell'utente appena inserito e a tutti gli altri verrà mostrato non il proprio nome, ma il nome dell'utente che è entrato per primo in questa pagina. Per evitare ciò, non memorizzare nella cache questo tag, utilizzando un punto esclamativo prima di chiamare [[ ! + modx...
P.s.: non dimenticare disconnettersi memorizzazione nella cache dei tag dove necessario! Per fare questo, hai bisogno SBARAZZARSI da punti esclamativi ( ! ). I risultati della maggior parte dei frammenti possono funzionare dalla cache. Nella prossima lezione, analizzeremo.
Oggi è un articolo utile sui filtri phx e sui loro modificatori MODX Revo con cui puoi manipolare il valore di vari tag direttamente all'interno dei modelli.
A cosa servono?
i modificatori phx semplificano la vita agli sviluppatori modx. Diciamo che abbiamo un sito con un carosello di immagini (o con un banner) di cui hai bisogno visualizzare solo nella pagina principale... Per fare ciò, è sufficiente inserirlo in un pezzo separato e quindi visualizzarlo nel modello utilizzando questa costruzione
In cui si: 1
- id della pagina principale,
$ carosello- chunk con il codice del carosello (banner).
Solo le teiere complete creano un nuovo modello, per il bene di poche righe di codice del carosello. Anch'io ero così, in generale non disperiamo e stiamo introducendo phx nello sviluppo.
Analizziamo più in dettaglio la costruzione di cui sopra:
[[* id: is = `1`: then =` [[$ carosello]] `]]
* ID- visualizza l'id della pagina corrente;
: è = `1`: quindi =
- controlla se è uguale * id == 1? e se uguale, viene visualizzato il contenuto poi;
$ carosello- emette il pezzo carosello.
Invece di * id, puoi utilizzare altri campi, ad esempio * modello - visualizzerà il modello attualmente utilizzato. O puoi controllare se il campo TV è pieno o meno (lascia che siano * parole chiave) e se è pieno, quindi visualizzalo. Esaminiamo questo caso più in dettaglio. Dato il markup standard:
Compito: non visualizzare questa riga se le parole chiave TV sono vuote.
Soluzione.
[[* parole chiave:! vuoto = ` `]]
Carichi
È necessario monitorare l'elaborazione dei modificatori, il loro uso sconsiderato causerà carichi inutili. Torniamo al carosello, questo record viene letto da sinistra a destra e il MODH soddisfa tutte le condizioni nidificate, indipendentemente dal fatto che la condizione sia vera o meno, che il contenuto venga visualizzato nella pagina corrente [[$ carosello]], in ogni caso, il suo contenuto sarà oggetto di trattamento. A questo proposito è più opportuno riscrivere la voce:
[[$ caru [[* id: is = `1`: then =` sel`]]]]
In questo caso, il contenuto del chunk $ carosello, verrà elaborato se la condizione è soddisfatta
* id: è = `1`
da eseguita
[[* id: is = `1`: then =` sel`]]
e se l'id della pagina corrente è 1, l'ultima cosa da elaborare è [[$ carosello]] se id non è uguale a 1 allora - [[$ caru]]... E se il pezzo $ caru- non negli elementi, quindi non ci sarà carico.
In generale, l'output ideale sarebbe simile a questo.
[[$ [[* id: is = `1`: then =` carosello`]]]]
Consiglio di leggere come integrare correttamente il layout in modx revo qui.
Nota! Puoi combinare tutti i modificatori che desideri per adattarli alla logica dei componenti del sito, ma soprattutto, ricorda, la loro essenza principale è facilitare lo sviluppo, e non complicare i compiti già complessi. Di solito, il modo più efficace ed efficiente è il più semplice, poiché più semplice e chiaro è il design, più facile sarà lavorarci in futuro. Di seguito sono riportati i principali modificatori che è possibile utilizzare per qualsiasi tag MODH Revo.
Catene modificatrici
Un buon esempio di concatenamento sarebbe formattare una stringa di data in un formato diverso, in questo modo:
[[+ mydate: strtotime: date = `% Y-% m-% d`]]
L'accesso diretto alla tabella "modx_user_attributes" nel database utilizzando i modificatori di output invece di uno snippet può essere effettuato semplicemente utilizzando il modificatore informazioni utente... Seleziona la colonna appropriata dalla tabella e specificala come proprietà del modificatore di output, ad esempio, in questo modo:
Chiave utente interna: [[! + Modx.user.id: userinfo = `internalKey`]] Login: [[! + Modx.user.id: userinfo =` username`]] Nome completo: [[! + Modx.user .id: userinfo = `fullname`]] Ruolo: [[! + modx.user.id: userinfo =` role`]] E-mail: [[! + modx.user.id: userinfo = `email`]] Telefono: [[! + Modx.user.id: userinfo = `phone`]] Cellulare: [[! + Modx.user.id: userinfo =` mobilephone`]] Fax: [[! + Modx.user.id : userinfo = `fax`]] Data di nascita: [[! + modx.user.id: userinfo =` dob`: date = `% Y-% m-% d`]] Sesso: [[! + modx.user . id: userinfo = `gender`]] Paese: [[! + modx.user.id: userinfo =` country`]] Stato: [[! + modx.user.id: userinfo = `state`]] CAP : [[! + modx.user.id: userinfo = `zip`]] Foto: [[! + modx.user.id: userinfo =` photo`]] Commento: [[! + modx.user.id: userinfo = `comment`]] Data ultimo accesso: [[! + modx.user.id: userinfo =` lastlogin`: date = `% Y-% m-% d`]] Conteggio accessi: [[! + modx.user . id: userinfo = `logincount`]]
Presta particolare attenzione al punto esclamativo [[ ! + modx.user.id]]... Permette NON memorizzare nella cache il contenuto dell'output. Perché non memorizzare nella cache? Immaginiamola così: ci sono 5 utenti sul sito. Il primo utente ha visitato la pagina con una chiamata:
Benvenuto [[! + Modx.user.id: userinfo = `username`]]!
Come previsto in questa pagina, all'utente viene visualizzato un messaggio di benvenuto. Quindi, se il risultato viene memorizzato nella cache, quando si accede per la prima volta a questa pagina, verrà salvato il nome dell'utente appena inserito e a tutti gli altri verrà mostrato non il proprio nome, ma il nome dell'utente che è entrato per primo in questa pagina. Per evitare ciò, non memorizzare nella cache questo tag, utilizzando un punto esclamativo prima di chiamare [[ ! + modx...
P.s.: non dimenticare disconnettersi memorizzazione nella cache dei tag dove necessario! Per fare questo, hai bisogno SBARAZZARSI da punti esclamativi ( ! ). I risultati della maggior parte dei frammenti possono funzionare dalla cache. Nella prossima lezione, analizzeremo.
MODx ha una sintassi incorporata per l'utilizzo dei costrutti if else.
Modificatori di uscita
La tabella mostra alcuni modificatori ed esempi del loro utilizzo. Negli esempi, i modificatori vengono applicati ai segnaposto, ma è necessario ricordare che possono essere applicati a qualsiasi tag MODX. Assicurati che il tag che usi produca almeno qualcosa che il modificatore gestirà.
Modificatori dell'uscita condizionale
Modificatore | Descrizione | Esempio di utilizzo |
se, input | if - imposta un input di condizione aggiuntiva - aggiunge i dati da avvolgere al tag | |
o | Combinare più modificatori con un collegamento OR |
[[* id: is = `5`: or: is =` 6`: then = `numero 5 o 6`: else =` altro numero`]] |
e | Combinare più modificatori con AND link | [[* id: is = `1`: and: if =` [[* id]] `: ne =` 2`: then = `da`: else =` net`]] |
isequalto, isequal, equalto, equals, is, eq | Confronta il valore trasmesso con quello impostato. Se i valori corrispondono, viene visualizzato il valore "then", in caso contrario - "else" |
[[* id: is = `5`: then =` numero 5`: else = `numero non 5`]] |
notaqualto, notauguale, non è, non è, neq, ne | Confronta il valore trasmesso con quello impostato. Se i valori NON corrispondono, viene visualizzato il valore "then", in caso contrario - "else" |
[[* id: non è = `5`: allora =` il numero non è 5`: else = `probabilmente il numero 5`]] |
majorthanorequalto, equalorggreterthen, ge, ad esempio, isgte, gte | Lo stesso, solo la condizione "Maggiore o uguale a" |
[[* id: gte = `5`: then =` numero 5 o maggiore`: else = `minore del quinto numero`]] |
è maggiore di, maggiore di, isgt, gt | Lo stesso, solo la condizione "Strettamente di più" |
[[* id: gt = `5`: then =` numero maggiore di cinque`: else = `numero 5 o minore`]] |
uguale o minore di, minore di uguale a, el, le, islte, lte | Lo stesso, solo la condizione "Minore o uguale a" |
[[* id: lte = `5`: then =` numero 5 o minore`: else = `maggiore del numero 5`]] |
isinferiore, è minore di, minore di, minore di, islt, lt | Lo stesso, solo la condizione "Rigorosamente meno" |
[[* id: lte = `5`: then =` il numero è esattamente minore di 5`: else = `numero 5 o maggiore`]] |
nascondere | Nasconde l'elemento se la condizione è soddisfatta |
[[* id: lt = `1`: nascondi]] |
mostrare | Visualizza un elemento se una condizione è soddisfatta |
[[* id: gt = `0`: mostra]] |
poi | Usato per comporre condizioni |
[[* id: gt = `0`: then =` Libri disponibili!`]] |
altro | Utilizzato per formulare condizioni (insieme a "allora") |
[[* id: gt = `0`: then =` Libri disponibili!`: else =` Siamo spiacenti, ma esaurito.`]] |
Selezionare | Imposta il tuo valore, a seconda del modificatore e dell'output del tag. Puoi anche usare "else", ad esempio, se il valore [[+ controlli]] non corrisponde al modello selezionato | [[+ controlli: select = `0 = OFF & 1 = ON & 2 = HZ`: else =` Errore`]] |
membro di, ismember, mo | Controlla se un utente è un membro del gruppo di utenti specificato |
[[+ modx.user.id: memberof = `Amministratore`]] |
I filtri possono essere utilizzati anche per modificare l'output degli snippet. Il filtro deve essere scritto prima di tutti i parametri (prima del punto interrogativo):
Inoltre, per poter utilizzare strutture nidificate, è possibile utilizzare un pacchetto aggiuntivo, che ha un nome breve e capiente If. Puoi scaricarlo andando su Sistema-> Gestione pacchetti.
Ecco come apparirà il codice della condizione:
[[! Se? & soggetto = `[[+ totale]]` & operatore = `GT` & operando =` 3` & then = `Hai più di 3 elementi!`]]
Se i parametri del pacchetto:
soggetto- Il parametro in base al quale le condizioni sono soddisfatte.
operatore- Operatore di confronto con soggetto
operando- Utilizzato secondo necessità e rappresenta il valore del soggetto che utilizza l'operatore.
poi- Il codice che viene visualizzato se la condizione è vera
altro- Codice che viene visualizzato se la condizione è falsa
eseguire il debug- Se vero, visualizzerà tutti i parametri passati
morire- Se il debug (debag) ha avuto successo e corrisponde al valore true, dopo aver visualizzato i parametri, utilizzare la funzione die().
Opzioni
Nome | Descrizione | Predefinito |
soggetto | Il parametro in base al quale le condizioni sono soddisfatte. | |
operatore | Operatore di confronto con soggetto | = |
operando | Usato secondo necessità e rappresenta il significato soggetto (oggetto di confronto) usando operatore (operatore di confronto). | |
poi | vero | |
altro | Codice che viene visualizzato se la condizione è valida falso | |
eseguire il debug | Se è vero , mostrerà tutti i parametri passati | 0 |
morire | Se debug (debag ) ha avuto successo e corrisponde al valore vero , quindi dopo aver visualizzato i parametri, applicare la funzione morire (). | 0 |
Operatori:
Nome: | Descrizione: |
! =, neq, non, non è, non è, disuguale, non uguale | Controlla se soggetto non uguale al valore specificato operando |
==, =, eq, è, uguale, uguale, uguale a | Controlla se soggetto uguale al valore specificato operando |
< ,lt,less,lessthan | Controlla se soggetto inferiore al valore specificato operando |
>, gt, maggiore, maggiore di | Controlla se soggetto maggiore del valore specificato operando |
< =,lte,lessthanequals,lessthanorequalto | Controlla se soggetto minore o uguale al valore specificato operando |
> =, gte, maggiorediuguale, maggiorediuguale a | Controlla se soggetto maggiore o uguale al valore specificato operando |
è vuoto, vuoto | Controlla se soggetto è vuoto |
! vuoto, non vuoto, non è tentazione | Controlla se soggetto ha qualche significato |
è nullo, nullo | Controlla se l'oggetto è nullo |
inarray, in_array, ia | Controlla se l'oggetto si trova nell'elenco degli operandi (stringa separata da virgole) |
I filtri in Revolution ti consentono di elaborare e modificare i valori dei tag all'interno dei tuoi modelli, blocchi, frammenti.
Filtri di ingresso
Attualmente, i filtri di input vengono utilizzati in preparazione per l'elaborazione dei filtri di output. Di solito vengono utilizzati solo internamente all'interno del core MODX.
Filtri di uscita
V Rivoluzione MODX i filtri di output sono usati come uno o più modificatori di output, sono simili alle chiamate PHx in MODx Evolution, ma differiscono per il fatto che sono già incorporati nel kernel.
Sintassi del modificatore:
[[+ elemento: modificatore = `valore`]]
I filtri possono essere applicati in sequenza (scritti da sinistra a destra):
[[+ elemento: modificatore = `valore`: un altromodificatore =`valore2`: eun altromodificatore: ancoraun altro = `valore3`]]
Anche i filtri possono essere utilizzati per modificare l'output degli snippet... Il filtro deve essere scritto prima di tutti i parametri (prima del punto interrogativo):
Modificatori di uscita
La tabella mostra alcuni modificatori ed esempi del loro utilizzo. Negli esempi, vengono applicati ai segnaposto, ma devi ricordare che i modificatori possono essere applicati a qualsiasi tag MODX Revolution.
Modificatore | Descrizione | Esempio di utilizzo |
se, input | if - imposta una condizione aggiuntiva, input - aggiunge i dati elaborati al tag | [[+ num: is = `10`: and: if =` [[+ num]] `: ne =` 15`: then = `Sì, uguale a 10 e non 15`]] |
o, e | Combinare diversi modificatori con un collegamento OR e un collegamento AND | [[+ numProducts: is = `10`: or: is =` 11`: then = `Ci sono 10 o 11 prodotti`: else =` Non so quanti prodotti`]] |
isequalto, isequal, equalto, equals, is, eq | Confronta il valore trasmesso con quello impostato. Se i valori corrispondono, viene emesso il valore "then", in caso contrario - "else" | [[+ numProducts: isequalto = `10`: then =` Ci sono 10 prodotti`: else = `Non so quanti prodotti`]] |
notaqualto, notauguale, non è, non è, neq, ne | Confronta il valore trasmesso con quello impostato. Se i valori NON corrispondono, viene emesso il valore "then", in caso contrario - "else" | [[+ numProducts: notequalto = `10`: then =` Non so quanti prodotti`: else = `Ci sono 10 prodotti`]] |
majorthanorequalto, equalorggreterthen, ge, ad esempio, isgte, gte | Lo stesso, solo la condizione "Maggiore o uguale a" | [[+ numProducts: gte = `10`: then =` Ci sono 10 o più prodotti qui`: else = `Ci sono meno di 10 prodotti qui`]] |
è maggiore di, maggiore di, isgt, gt | Lo stesso, solo la condizione "Strettamente di più" | [[+ numProducts: gt = `10`: then =` Ci sono più di 10 prodotti qui`: else = `Ci sono 10 prodotti o meno qui`]] |
uguale o minore di, minore di uguale a, el, le, islte, lte | Lo stesso, solo la condizione "Minore o uguale a" | [[+ numProducts: lte = `10`: then =` Ci sono 10 prodotti o meno`: else = `Ci sono più di 10 prodotti qui`]] |
isinferiore, è minore di, minore di, minore di, islt, lt | Lo stesso, solo la condizione "Rigorosamente meno" | [[+ numProducts: lte = `10`: then =` Ci sono meno di 10 prodotti qui`: else = `Ci sono 10 prodotti o più qui`]] |
nascondere | Nasconde l'elemento se la condizione è soddisfatta | [[+ numProdotti: lt = `1`: nascondi]] |
mostrare | Visualizza un elemento se una condizione è soddisfatta | [[+ numProdotti: gt = `0`: mostra]] |
poi | Usato per comporre condizioni | [[+ numProducts: gt = `0`: then =` Prodotti in stock! `]] |
altro | Utilizzato per formulare condizioni (in combinazione con "allora") | [[+ numProducts: gt = `0`: then =` Articoli in stock!`: else =` Siamo spiacenti, ma esaurito.`]] |
membro di, ismember, mo | Controlla se un utente è un membro del gruppo di utenti specificato | [[+ modx.user.id: memberof = `Amministratore`]] |
Modificatori per lavorare con le stringhe
Modificatore | Descrizione | Esempio di utilizzo |
gatto | Aggiunge un valore dopo il tag | [[+ numProdotti: cat = `merci`]] |
lcase, minuscolo, strtolower | Converte tutte le lettere in minuscolo | [[+ title: lcase]] |
ucase, maiuscolo, strtoupper | Converte tutte le lettere in maiuscolo | [[+ longtitle: ucase]] |
ucwords | Mette in maiuscolo la prima lettera delle parole | [[+ title: ucwords]] |
ucfirst | Rende maiuscola la prima lettera in una stringa | [[+ nome: ucfirst]] |
htmlent, htmlentities | Converte tutti i caratteri in entità HTML | [[+ email: htmlent]] |
esc, fuga | Sfugge ai caratteri in modo sicuro usando espressioni regolari e str_replace. Esegue anche l'escape dei caratteri [,] e ` | [[+ email: fuga]] |
striscia | Sostituisce tutti i trattini, le tabulazioni e qualsiasi numero di spazi con un solo spazio | [[+ textdocument: strip]] |
stripString | Taglia la sottostringa specificata dalla stringa | [[+ name: stripString = `Mr.`]] |
sostituire | Sostituisce le sottostringhe | [[+ pagetitle: replace = `Mr. == Mrs.`]] |
striptags, stripTags, note, strip_tags | Elimina tutti i tag (è possibile specificare i tag consentiti). | [[+ codice: strip_tags = ` |
len, lunghezza, strlen | Stampa la lunghezza della linea | [[+ longstring: strlen]] |
invertire, strev | Inverti la stringa carattere per carattere | [[+ mirrortext: inverso]] |
avvolgere le parole | Inserisce un'interruzione di riga dopo ogni ennesimo carattere (le parole non vengono interrotte) | [[+ bodytext: wordwrap = `80`]] |
ritaglio di parole | Inserisce un'interruzione di riga dopo ogni ennesimo carattere, anche se questo carattere è all'interno di una parola | [[+ bodytext: wordwrapcut = `80`]] |
limite | Emette un numero specificato di caratteri dall'inizio della riga (il valore predefinito è 100) | [[+ descrizione: limite = `50`]] |
puntini di sospensione | Aggiunge un'ellissi e tronca la stringa se è più lunga di un certo numero di caratteri (il valore predefinito è 100) | [[+ descrizione: puntini di sospensione = `50`]] |
etichetta | Schermatura. Visualizza l'elemento così com'è, senza il tag:. Per l'uso nella documentazione | [[+ mostraQuesto: tag]] |
matematica | Restituisce il risultato di calcoli avanzati (CPU pesante. Non consigliato) | |
aggiungere, incrementare, aumentare | Aggiunge il numero specificato (predefinito +1) | [[+ download: incr]], [[+ blackjack: add = `21`]] |
sottrarre, decrementare, decrementare | Sottrae il numero specificato (predefinito -1) | [[+ conto alla rovescia: decr]], [[+ denaro: sottrai = `100`]] |
moltiplicare, mpy | Moltiplica per il numero specificato (predefinito * 2) | [[+ tripletta: mpy = `3`]] |
dividere, dividere | Divide per il numero specificato (predefinito / 2) | [[+ rating: div = `4`]] |
modulo, modulo | Restituisce la divisione modulo di un numero (predefinito:% 2, restituisce 0 o 1)) |
[[+ numero: mod]] |
ifempty, default, empty, isempty | Restituisce il valore del modificatore se il valore del tag è vuoto | [[+ nome: default = `anonimo`]] |
notempty,! vuoto, ifnotempty, isnotempty | Restituisce il valore del modificatore se il valore del tag NON è vuoto | [[+ name: notempty = `Ciao, [[+ name]]!`]] |
nl2br | Sostituisce i caratteri di nuova riga (\ n) con un tag HTML |
[[+ file di testo: nl2br]] |
Data | Converte un timestamp in testo, secondo il formato specificato ( Formato data) | [[+ anno di nascita: data = `% Y`]] |
strtotime | Converte la data come testo in timestamp UNIX | [[+ thetime: strtotime]] |
fuzzydate | Restituisce la data nel formato "ieri, oggi,…". Accetta un valore di data. | [[+ creato il: fuzzydate]] |
fa | Restituisce il numero di secondi, minuti, settimane o mesi dalla data specificata nel tag. | [[+ creato il: fa]] |
md5 | Crea un hash MD5 del valore | [[+ password: md5]] |
cdata | Avvolge l'output con i tag CDATA | [[+ contenuto: cdata]] |
informazioni utente | Restituisce il valore richiesto dal profilo utente. È richiesto l'ID utente | [[+ modx.user.id: userinfo = `nomeutente`]] |
islogin | Restituisce vero se l'utente è autenticato nel contesto corrente | [[+ modx.user.id: islogedin]] |
non è registrato | Restituisce vero se l'utente NON è autenticato nel contesto corrente | [[+ modx.user.id: isnotloggedin]] |
urlencode | Converte un valore in un URL | [[+ miastringa: urlencode]] |
codiceurl | Converte un valore da un URL | [[+ mioparam: urldecode]] |
Utilizzo dei modificatori di output in combinazione con i parametri
Se il tag ha parametri, devono essere scritti immediatamente dopo il modificatore:
Creazione di un modificatore personalizzato
Qualsiasi frammento può essere utilizzato come modificatore di output. Per usarlo, basta fornire il nome dello snippet invece del modificatore. Ad esempio, creiamo uno snippet makeExciting che aggiunge un certo numero di punti esclamativi all'output:
[[* pagetitle: makeExciting = `4`]]
Tale chiamata di tag passerà i seguenti parametri allo snippet makeExciting per l'elaborazione:
Modificatore Info utente
Accesso diretto ai dati da una tabella modx_user_attributes nel database, l'uso di modificatori di output anziché di frammenti può essere ottenuto semplicemente utilizzando il modificatore UserInfo.
Seleziona la colonna richiesta dalla tabella e specificala come proprietà del modificatore, ad esempio, in questo modo:
Significato | Modificatore |
Chiave utente interna | [[! + modx.user.id: userinfo = `internalKey`]] |
Login | [[! + modx.user.id: userinfo = `nomeutente`]] |
Nome e cognome | [[! + modx.user.id: userinfo = `fullname`]] |
Ruolo | [[! + modx.user.id: userinfo = `role`]] |
[[! + modx.user.id: userinfo = `email`]] | |
Telefono | [[! + modx.user.id: userinfo = `phone`]] |
Cellulare | [[! + modx.user.id: userinfo = `cellulare`]] |
Fax | [[! + modx.user.id: userinfo = `fax`]] |
Data di nascita | [[! + modx.user.id: userinfo = `dob`: date =`% Y-% m-% d`]] |
Pavimento | [[! + modx.user.id: userinfo = `genere`]] |
Nazione | [[+ modx.user.id: userinfo = `paese`]] |
Regione | [[+ modx.user.id: userinfo = `stato`]] |
Codice postale | [[+ modx.user.id: userinfo = `zip`]] |
Foto | [[+ modx.user.id: userinfo = `foto`]] |