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`]]
E-mail [[! + 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`]]

Pubblicazioni correlate

  • Conti del deserto nero (RU) Conti del deserto nero (RU)

    Account esteso GameNet Vantaggi di un account esteso: Possibilità di giocare con due account (in due finestre) contemporaneamente in, e ....

  • Canale televisivo La cui stella non è in TV adesso? Canale televisivo La cui stella non è in TV adesso?

    Dov'è il canale televisivo Zvezda, perché non è in TV? Molti abbonati dell'operatore Kol TV hanno dovuto affrontare un problema: il loro canale televisivo Zvezda preferito è scomparso ....