Eventi Server e Script Client PDF
Eventi Server e Script Client PDF
Dopo aver caricato il database, gli oggetti del database (tabelle, viste, viste personalizzate e report) verranno visualizzati
nel riquadro di sinistra (il riquadro del database). Fare clic su qualsiasi tabella per accedere alla pagina di configurazione
campo e quindi selezionare la scheda Codice (che contiene Eventi server , Script client e Modelli personalizzati ).
Nota: per semplicità, utilizziamo la "tabella" nella seguente descrizione per fare riferimento a qualsiasi oggetto del
database nel progetto. Un oggetto di database può essere una tabella, una vista, una vista personalizzata o un report.
La treeview mostra gli eventi server e gli script client che è possibile aggiungere al progetto:
Tabella specifiche L'insieme di eventi è specifico della tabella, gli eventi sono applicabili solo alla tabella selezionata
Altro Gli eventi sono applicabili solo ad alcune pagine comuni nel progetto
Tabella specifiche I JavaScript sono specifici della tabella, sono inclusi nelle pagine solo per la tabella selezionata
Altro I JavaScript sono inclusi solo in alcune pagine comuni nel progetto
[Link] 1/54
26/5/2018 Eventi server e script client
Per aggiungere i tuoi script personalizzati agli eventi del server o agli script client, seleziona un elemento nella vista ad
albero, quindi inserisci il tuo codice nell'editor.
L'editor supporta Trova e sostituisci. Premi Ctrl-F per aprire la finestra di dialogo Trova e premi Ctrl-H per aprire la
finestra di dialogo Sostituisci.
È possibile fare clic sul pulsante [Cancella] per scartare il codice esistente e reimpostare il codice del modello per
l'evento server o lo script client.
Repository di codice
PHPMaker fornisce un repository di codice per riutilizzare facilmente il codice tra i progetti e condividerli con altri utenti.
Fare clic sul pulsante [Codice repository] per aprirlo, verrà visualizzato il codice riutilizzabile categorizzato:
È possibile aggiungere il codice all'editor facendo clic sul pulsante [Aggiungi a Editor] . Il codice riutilizzabile viene
archiviato in file XML che risiedono nel nome "codice" della sottocartella s nella cartella di installazione. Il formato dei file
XML è semplice, ci sono 3 parti:
Ci sono alcuni file di esempio nella cartella "codice", è possibile copiare e modificare per il proprio codice e quindi salvarli
nella cartella "codice" per riutilizzarli.
[Link] 2/54
26/5/2018 Eventi server e script client
Gli appunti
1. Dalla v9, la classe della pagina eredita dalla classe della tabella, quindi puoi usare $ this nei metodi della
classe page per accedere ai membri della classe della tabella. Per la compatibilità con le versioni precedenti,
l'oggetto table viene mantenuto ed è un alias dell'oggetto page, quindi è possibile utilizzare $ this nei
metodi della classe table per accedere ai membri della classe page.
2. Il Page_Unload e Page_Unloaded sono eventi lato server che devono essere attivati ogni volta che si
accede alla pagina e prima che l'HTML venga emesso sul browser sul lato client. NON sono eventi da
licenziare prima di lasciare la pagina e ricaricare la pagina o andare su un'altra pagina. Ad esempio, se si
invia un modulo nella pagina, di solito si invia alla pagina stessa, si sta effettivamente ricaricando la pagina,
tutti gli eventi del server verranno nuovamente attivati. Per un altro esempio, se si fa clic su un collegamento
ipertestuale che collega a un'altra pagina, la pagina sul lato server non viene nemmeno più acceduta e non
viene attivato alcun evento server per la pagina.
3. Se un evento del server è una funzione globale, non c'è $ nel contesto della funzione. Se si desidera fare
riferimento all'oggetto di pagina corrente, è possibile utilizzare la funzione globale CurrentPage () .
4. Nella seguente tabella, il <fieldname> nel codice, ad esempio in $ this -> <fieldname> ->
<property> o x_ <fieldname> , rappresenta il nome della variabile di campo. In generale, se il nome del
campo è alfanumerico, il nome della variabile di campo è uguale al nome del campo. Altrimenti, gli spazi
vengono sostituiti da caratteri di sottolineatura e altri caratteri non alfanumerici vengono sostituiti dalla loro
rappresentazione in forma esadecimale del loro valore unicode. Se la variabile è una parola riservata o inizia
con una cifra, verrà anteposta con un carattere di sottolineatura. Tuttavia, si noti che se il nome del campo è
quotato, ad es. Come chiave in $ rs ['<nomecampo>'] , <nomecampo> è il nome del campo effettivo
come nel database, non il nome della variabile di campo.
5. Gli eventi server sono funzioni o metodi di classe, se è necessario utilizzare variabili globali negli eventi, si
noti l' ambito della variabile ([Link] PHP , è necessario
utilizzare la parola chiave globale o $ GLOBALS .
[Link] 3/54
26/5/2018 Eventi server e script client
Page_Head Il codice inserito in questo evento verrà inserito nell'[Link] prima di chiudere la
sezione <head>. Puoi usare questo evento per aggiungere il tuo codice nella sezione
principale. Nota: questa è una funzione globale.
Esempio 1
ew_AddStylesheet ( "//
[Link]/ui/1.10.3/themes/smoothness/[Link]"); //
Aggiungi foglio di stile CSS
ew_AddClientScript ("// [Link]/ui/1.10.3/[Link]");
// Aggiungi JavaScript
Esempio 2
Esempio 3
Puoi anche usare sia PHP che HTML, ma in questo caso DEVI usare <? Php ...?> , Ad
es
Page_Foot Il codice inserito in questo evento verrà inserito in [Link] dopo la sezione <footer>.
Puoi utilizzare questo evento per aggiungere il tuo codice per il sito web. Nota: questa
è una funzione globale.
Esempio 1
Esempio 2
[Link] 4/54
26/5/2018 Eventi server e script client
Gli appunti
1. Questo deve essere un selettore CSS valido, altrimenti il
target non può essere trovato e il template non può
essere reso.
2. Premi F12 nel browser, controlla gli elementi HTML,
controlla gli attributi id e class per trovare il selettore CSS
corretto del tuo target.
-Metodo dati (Facoltativo) Il nome del metodo jQuery per applicare il modello. In
generale, il modello sarà reso da:
[Link] 5/54
26/5/2018 Eventi server e script client
[Link] 6/54
26/5/2018 Eventi server e script client
Database_Connecting Questo evento verrà chiamato da tutte le pagine PHP prima di connettersi al database.
Nota : questa è una funzione globale.
Se generale, l'argomento è un array con le seguenti chiavi: host, porta, utente, pass,
db . Se Access / MSSQL, la chiave è connectiontring . È possibile utilizzare questo
evento per modificare la stringa di connessione (ad esempio, modificare le informazioni
di connessione con il server o persino connettersi ad altri database).
Esempio 1
//
Funzione
MySQL / PostgreSQL Database_Connecting (& $ info) { // var_dump
($ info);
// presume che gli script siano generati con le informazioni di
connessione per il PC locale
se (ew_CurrentUserIP () <> "[Link]") { // non si connette al
PC locale
// si connette al database di produzione
$ info ["host"] = " localhost ";
$ info ["user"] = "xxx";
$ info ["pass"] = "yyy";
$ info ["db"] = "production_db";
}
}
Esempio 2
È possibile utilizzare il login singolo e i Livelli utente dinamici comuni per più progetti, a
condizione che TUTTI i progetti utilizzino lo stesso nome di progetto e le stesse tabelle di
sicurezza avanzate (ad es. Tabella utente, Tabella dei livelli utente e Tabella
autorizzazioni autorizzazione utente). Se tutti i progetti utilizzano lo stesso database e le
stesse tabelle di sicurezza avanzate, quest'ultima condizione viene soddisfatta
automaticamente. Tuttavia, se i progetti utilizzano database diversi, è possibile utilizzare
questo evento per modificare le informazioni di connessione in modo che l'utente possa
ottenere correttamente i Livelli utente dinamici dalle comuni tabelle di sicurezza
avanzate durante il login, ad es.
//
Funzione
MySQL / PostgreSQL Database_Connecting (& $ info) { // var_dump
($ info);
if (preg_match ('/ login | userpriv /', CurrentPageID ()) { //
[Link] o [Link]
// si connettono al database comune con le comuni tabelle
Advanced Security
$ info ["host"] = "localhost" ;
$ info ["user"] = "xxx";
$ info ["pass"] = "yyy";
$ info ["db"] = "common_db";
}
}
[Link] 7/54
26/5/2018 Eventi server e script client
Database_Connected Questo evento verrà attivato da tutte le pagine PHP dopo la connessione al database.
Nota : questa è una funzione globale.
Esempio
Language_Load Questo evento verrà generato quando viene caricato il file della lingua. Puoi usarlo per
cambiare le frasi della lingua se necessario. Nota : questo evento è un membro della
classe di lingua.
Esempio 1
function Language_Load () {
$ this-> setPhrase ("MyID", "MyValue"); // Fai riferimento al
file di lingua per la frase effettiva id
$ this-> setPhraseClass ("MyID", "glyphicon glyphicon-xxx
ewIcon"); // Fai riferimento a
[Link] per il nome
dell'icona
}
Esempio 2
function Language_Load () {
$ this-> Type = "DROPDOWN"; // Imposta il tipo, i tipi
supportati sono: LI / DROPDOWN (per l'uso con la barra di
navigazione superiore) o SELECT / RADIO (NON per l'uso con la barra
di navigazione superiore) // $ this-> Template = "<My JsRender
template>"; // O usa il modello JsRender personalizzato }
Page_Loading Questo evento verrà chiamato da tutte le pagine PHP all'inizio della pagina. Se le pagine
coinvolgono la connessione al database, verranno chiamate dopo la connessione al
database e prima dell'evento Page_Load . Nota: questa è una funzione globale,
NON membro della classe di pagina.
Page_Rendering Questo evento verrà chiamato da tutte le pagine PHP prima dell'esecuzione dell'HTML per
la pagina. Nota: questa è una funzione globale, NON membro della classe di
pagina.
Page_Unloaded Questo evento verrà chiamato da tutte le pagine PHP alla fine della pagina. Se le pagine
coinvolgono la connessione al database, verranno chiamate prima della chiusura della
connessione al database e dopo l' evento Page_Unload . Nota: questa è una
funzione globale, NON membro della classe di pagina.
[Link] 8/54
26/5/2018 Eventi server e script client
Codice globale Codice da includere in tutte le pagine PHP. Questo può contenere costanti, variabili,
funzioni e classi.
Esempio 1
Esempio 2
]);
$ s3client-> registerStreamWrapper ();
[Link] 9/54
26/5/2018 Eventi server e script client
User_CustomValidate Per uso con sicurezza. (Vedi Impostazioni di sicurezza ([Link]) ) Questo
evento viene attivato prima della convalida utente predefinita. È possibile utilizzare
questo evento per convalidare l'utente. Gli argomenti sono il nome utente e la password
che l'utente ha inserito. Ritorna TRUE se il nome utente e la password superano la tua
convalida personalizzata. Nota: questo evento è un membro della classe di
sicurezza.
Gli appunti
1. Se si utilizza l'autenticazione "Windows" o "LDAP" (vedere Impostazioni
avanzate ([Link]#custom) ), la restituzione di TRUE o FALSE in questo
evento non ha importanza. L'utente verrà convalidato da Windows o LDAP in
seguito.
2. Se si utilizza l'autenticazione "LDAP" (consultare Impostazioni avanzate
([Link]#custom) ), è possibile utilizzare questo evento per modificare il
nome utente e la password, se necessario, per la successiva convalida con il
server LDAP.
3. La convalida predefinita continuerà dopo che questo evento è stato attivato.
Se si restituisce TRUE, l'utente passerà sempre la convalida predefinita e
otterrà l'ID utente e il Livello utente, se presenti. Se si restituisce FALSE, la
convalida predefinita procede normalmente. Se si utilizza la sicurezza
avanzata, è ancora necessario la tabella utente per memorizzare le
informazioni dell'utente come ID utente e Livello utente, sebbene il
valore del campo password possa essere vuoto o qualsiasi valore se
si restituisce VERO.
Esempio
Rimuovere il nome del dominio in modo che corrisponda al nome utente nella tabella
utente (per ID utente / Livello sicurezza, se abilitato) dopo l'autenticazione di Windows,
se la tabella utente memorizza il nome utente senza nome dominio.
[Link] 10/54
26/5/2018 Eventi server e script client
Esempio
[Link] 11/54
26/5/2018 Eventi server e script client
User_Validated Per uso con sicurezza. (Vedi Impostazioni di sicurezza ([Link]) ) Questo
evento viene generato dopo aver convalidato l'utente con la tabella utente. Nota:
questo evento è un membro della classe di sicurezza.
Gli appunti
1. Questo evento non viene attivato per l'amministratore codificato (che non è
un utente nella tabella utente).
2. Se l'utente viene trovato nella tabella utente, l'argomento $ rs è un array, è
possibile ottenere un valore di campo di $ rs ['<nomecampo>'] . Se
l'utente non viene trovato, $ rs è NULL . Per impostazione predefinita, la
maggior parte delle informazioni utente sono già caricate nell'oggetto profilo
utente globale, Profile () , ma le informazioni non includono il campo
password, campi BLOB e campi memo, è possibile utilizzare questo evento
per ottenere maggiori informazioni dalla tabella utente.
3. È possibile utilizzare questo evento per sovrascrivere il nome utente, l'ID
utente, l'ID utente principale e il Livello utente (se ID utente / Livello di
sicurezza è abilitato) per l'utente convalidato dal metodo LoginUser ()
della classe di sicurezza. Gli argomenti del metodo sono:
function LoginUser ($ userName = NULL, $ userID = NULL, $
parentUserID = NULL, $ userLevel = NULL)
Se qualsiasi argomento è NULL, la proprietà corrispondente non sarà
interessata.
Esempio 1
Esempio 2
Verifica se una password utente è scaduta dal codice personalizzato con Abilita
scadenza password (vedi Impostazioni di sicurezza ([Link]) ) abilitato
[Link] 12/54
26/5/2018 Eventi server e script client
Esempio 1
Esempio 2
[Link] 13/54
26/5/2018 Eventi server e script client
MenuItem_Adding Questo evento viene attivato per voci di menu personalizzate prima che venga aggiunto
al menu. Le informazioni sulla voce di menu vengono passate all'evento come un'istanza
dell'oggetto cMenuItem (vedi sotto). Restituisci FALSE se non vuoi mostrare la voce del
menu. Se si restituisce TRUE, la voce di menu verrà aggiunta al menu, ma ciò non
significa che sarà sempre visualizzata. Una voce di menu verrà visualizzata solo se la sua
proprietà Allowed è VERO. Quando la voce di menu viene passata a questo evento, la
proprietà Allowed viene impostata in base alla sicurezza del livello utente del progetto,
tuttavia è possibile modificarla impostando $ Item-> Allowed come TRUE o FALSE in
base alle esigenze. Nota: questa è una funzione globale.
Esempio 1
Mostra solo una voce di menu dopo che l'utente ha effettuato l'accesso
Esempio 2
Nota Se il tuo progetto è multi-lingua, $ Item-> Text sarà diverso per ogni
lingua, puoi invece selezionare $ Item-> Name o $ Item-> Url . Controlla
l'[Link] generato per vedere i nomi degli oggetti o gli URL.
[Link] 14/54
26/5/2018 Eventi server e script client
Menu_Rendering Questo evento viene attivato prima del rendering del menu. Puoi manipolare le voci di
menu in questo evento. L'argomento è l'oggetto menu. (Vedere l' oggetto Menu di
seguito.) Nota: questa è una funzione globale.
Esempio 1
Aggiungi una voce di menu aggiuntiva al menu solo per gli utenti registrati.
Esempio 2
Esempio 3
Menu_Rendered Questo evento viene attivato dopo il rendering del menu. Potresti voler ripulire in questo
evento se hai creato qualcosa nell'evento Menu_Rendering . L'argomento è l'oggetto
menu. (Vedere l' oggetto Menu di seguito.) Nota: questa è una funzione globale.
[Link] 15/54
26/5/2018 Eventi server e script client
Esempio
Esempio
Concedere più permessi all'utente e lasciare all'utente più permessi rispetto al suo Livello
utente per la tabella corrente.
[Link] 16/54
26/5/2018 Eventi server e script client
Esempio
Modificare l'ID utente dell'utente nell'ID utente del suo utente principale e consentire
all'utente di accedere a più record (accessibili dall'utente padre).
Esempio
User_PasswordExpired Questo evento verrà chiamato se la password dell'utente è già scaduta. Le informazioni
dell'utente vengono passate all'evento come argomento, puoi ottenere le informazioni
utente da $ rs ["<fieldname>"] dove <fieldname> è un nome di campo della tabella
utente. Nota: questo evento è un membro della classe di sicurezza.
AuditTrail_Inserting Questo evento verrà chiamato prima che venga scritto un record di audit trail. Le
informazioni di audit trail vengono passate all'evento come argomento, è possibile
ottenere le informazioni da $ rsnew ["<fieldname>"] dove <fieldname> è il nome del
campo della traccia di controllo. Restituisci False per annullare l'inserimento. Nota:
questa è una funzione globale.
Specifica tabella -> Comune (Nota: questi eventi sono membri della classe di pagine)
[Link] 17/54
26/5/2018 Eventi server e script client
Recordset_Selecting Questo evento verrà chiamato prima di selezionare i record. L'argomento dell'evento è il
filtro (parte della clausola WHERE dell'SQL) per la selezione dei record, è possibile
personalizzare il filtro per modificare i record da selezionare.
Esempio
Aggiungi il tuo filtro. Si noti che il filtro $ può avere un valore, se si desidera aggiungere
un filtro aggiuntivo, aggiungere il filtro ad esso, non sostituirlo.
Recordset_Selected Questo evento verrà chiamato dopo aver selezionato i record. Nota: l'argomento è
l'oggetto recordset (non array).
Recordset_SearchValidated Questo evento verrà chiamato dopo l' evento Form_CustomValidate e il criterio di
ricerca viene assegnato agli oggetti tabella / campo. È possibile modificare i criteri di
ricerca in questo evento.
Questo evento è un membro della classe del tavolo. Non ci sono argomenti per questo
evento. Per modificare i criteri di ricerca rapida, modificare la proprietà
BasicSearchKeyword e BasicSearchType dell'oggetto tabella. Per modificare i criteri
di ricerca avanzata, modificare la proprietà AdvancedSearch (che è un oggetto della
classe cAdvancedSearch) dell'oggetto campo.
Esempio
function Recordset_SearchValidated () {
$ this-> MyField1-> AdvancedSearch-> SearchValue = "i tuoi
criteri di ricerca"; // Cerca valore
}
Recordset_Searching Questo evento verrà chiamato prima che il criterio di ricerca venga salvato per la
sessione. L'argomento dell'evento è la parte della clausola WHERE creata dai criteri di
ricerca rapida / estesa / avanzata. È possibile modificare la clausola WHERE in questo
evento.
Esempio
Cerca un campo DATE MySQL per una data selezionata o entro 3 giorni dalla data
selezionata.
Row_Delet ing Questo evento verrà chiamato prima di eliminare un record. L'argomento dell'evento è il
record da eliminare come matrice.
[Link] 18/54
26/5/2018 Eventi server e script client
Row_Deleted Questo evento verrà chiamato dopo aver cancellato un record. L'argomento dell'evento è
il record cancellato come array.
Esempio
Elimina i record di dettaglio dalla tabella dei dettagli dopo che il record principale è stato
cancellato.
Row_Inserting Questo evento verrà chiamato prima di inserire un record. Gli argomenti dell'evento sono
gli array del vecchio (se record di copia) e il nuovo record da inserire. È possibile
modificare i valori in $ rsnew.
Esempio
Row_Inserted Questo evento verrà chiamato dopo aver inserito un record. Gli argomenti dell'evento
sono gli array del vecchio (se record di copia) e il nuovo record appena inserito.
Esempio
Row_Rendering Questo evento verrà chiamato prima del rendering (applicando le impostazioni Visualizza
/ Modifica tag) come record.
[Link] 19/54
26/5/2018 Eventi server e script client
Esempio
function Row_Rendered () {
// Cambia il colore della riga nella pagina Elenco in base alle
classi Bootstrap
se ($ this-> Trademark-> ViewValue == "BMW") // Elenca solo la
pagina
$ this-> RowAttrs ["class"] = " Informazioni";
// Cambia il colore della cella della tabella
if ($ this-> PageID == "lista" || $ this-> PageID ==
"visualizza") { // List / Visualizza la pagina solo
se ($ this-> Cyl-> CurrentValue == 4) {
$ this-> Cyl-> CellAttrs ["style"] = "background-color:
#ffcccc";
} elseif ($ this-> Cyl-> CurrentValue == 6) {
$ this-> Cyl-> CellAttrs ["style"] = "background-color:
# ffcc99";
Row_Selecting Questo evento verrà chiamato prima di selezionare un record. L'argomento dell'evento è
il filtro (parte della clausola WHERE dell'SQL) per la selezione del record, è possibile
personalizzare il filtro per modificare il record da selezionare.
[Link] 20/54
26/5/2018 Eventi server e script client
Row_Selected Questo evento verrà chiamato dopo aver selezionato un record. L'argomento è il record
selezionato come matrice. L'evento è ancora attivato quando si inserisce un nuovo
record, ma in tal caso non esiste una riga "selezionata" e l'argomento è una matrice con
tutti i valori di campo come NULL.
Esempio
Row_UpdateConflict Questo evento verrà chiamato se vengono rilevati dei conflitti prima di aggiornare un
record (se Verifica conflitti è abilitato, vedere Impostazione tabella ([Link]) ).
Gli argomenti dell'evento sono il vecchio record (come array) e il nuovo record (come
array) da aggiornare.
È possibile utilizzare questo evento per risolvere i conflitti in base ai propri criteri. Se si
desidera ignorare i conflitti o se sono stati risolti i conflitti nell'evento (impostando nuovi
valori nell'argomento rsnew) e si desidera continuare l'aggiornamento, restituire FALSE.
Altrimenti, restituire VERO. Di default l'evento restituisce TRUE.
Row_Updating Questo evento verrà chiamato prima di aggiornare un record. Gli argomenti dell'evento
sono gli array del vecchio e del nuovo record da aggiornare.
Esempio
Row_Updated Questo evento verrà chiamato dopo aver aggiornato un record. Gli argomenti dell'evento
sono gli array del vecchio e del nuovo record aggiornati.
Esempio
Dopo aver aggiornato un campo nella tabella dei dettagli, aggiornare un campo nella
tabella principale.
[Link] 21/54
26/5/2018 Eventi server e script client
Grid_Inserting Per l'utilizzo con Grid-Add per una tabella e Master / Detail-Add per una tabella di
dettaglio, questo evento verrà chiamato prima di inserire i record. Questo evento non ha
argomenti.
Nota Se devi solo controllare un singolo record, non è necessario utilizzare questo
evento, usa semplicemente Row_Inserting (vedi sopra) che verrà chiamato per
ogni riga nella griglia.
Esempio
Controlla tutti i record prima di inserirli. Si noti che questo evento viene chiamato prima
di Row_Inserting , i valori dei campi non sono ancora stati caricati, ma è possibile
caricarli da soli.
function Grid_Inserting () {
$ rsnew = $ this-> GetGridFormValues (); // Ottieni i valori
del modulo dei nuovi record come una matrice di array
// var_dump ($ rsnew); morire(); // Stampa i record e termina
lo script
$ sum = 0;
foreach ($ rsnew as $ row) // Passa attraverso i nuovi record
$ sum + = intval ($ row ["Percentage"]);
if ($ sum <100) {
// Per annullare, impostare il valore di ritorno su False
$ this-> setFailureMessage ("Il totale delle percentuali
deve essere 100.");
return FALSE;
} return TRUE; }
Grid_Inserted Per l'uso con Grid-Add per una tabella e Master / Detail-Add per una tabella di
dettaglio, questo evento verrà chiamato dopo aver inserito tutti i record. L'argomento
dell'evento ( $ rsnew ) è una matrice di record inseriti (recuperati dal database).
Ad esempio, è possibile utilizzare questo evento per aggiornare un campo nella tabella
principale (simile all'esempio per Row_Updated in alto) dopo Master / Detail-Add .
[Link] 22/54
26/5/2018 Eventi server e script client
Grid_Updating Per l'uso con Grid-Edit per una tabella e Master / Detail-Edit per una tabella di
dettaglio, questo evento verrà chiamato prima di aggiornare i record. L'argomento
dell'evento ( $ rsold ) è una matrice di record da aggiornare (recuperati dal database).
Nota Se devi solo controllare un singolo record, non è necessario utilizzare questo
evento, usa semplicemente Row_Updating (vedi sopra) che verrà chiamato per
ogni riga nella griglia.
Esempio
Controllare tutti i record prima dell'aggiornamento. Si noti che questo evento viene
chiamato prima di Row_Updating , i valori dei campi non sono ancora stati caricati, ma
è possibile caricarli da soli.
return TRUE;
}
Grid_Updated Per l'utilizzo con Grid-Edit per una tabella e Master / Detail-Edit per una tabella di
dettaglio, questo evento verrà chiamato dopo aver aggiornato tutti i record. L'argomento
dell'evento ( $ rsold e $ rsnew ) è una matrice di record prima e dopo l'aggiornamento
(recuperati dal database).
Ad esempio, è possibile utilizzare questo evento per aggiornare un campo nella tabella
principale (simile all'esempio per Row_Updated sopra) dopo Master / Detail-Edit .
[Link] 23/54
26/5/2018 Eventi server e script client
Email_Sending Questo evento viene generato prima dell'invio della notifica via email. È possibile
personalizzare il contenuto dell'email utilizzando questo evento. L'evento Email_Sending
ha i seguenti parametri:
Se aggiungi, il nuovo record nel formato dell'array può essere accessibile da $ Args
["rsnew"]. Se Copia, il vecchio record nel formato dell'array può essere accessibile da $
Args ["rsold"]. Se Modifica / Aggiorna, i vecchi dati dei record nel formato dell'array
possono essere accessibili da $ Args ["rsold"], i nuovi dati dei record nel formato
dell'array possono essere accessibili da $ Args ["rsnew"] . Se Registra, il nuovo record
nel formato dell'array può essere accessibile da $ Args ["rs"]. Puoi ottenere un valore di
campo, ad es
Esempio
Supponiamo che ci sia un campo email nel record e che tu voglia cambiare il destinatario
al valore di quel campo.
[Link] 24/54
26/5/2018 Eventi server e script client
Lookup_Selecting Questo evento viene generato prima di creare l'SQL per selezionare i record dalla tabella
di ricerca. Puoi usare questo evento per cambiare i filtri.
Nel caso, l'SQL e il filtro per la ricerca possono essere visualizzati da:
d ID base di date
f Modello di filtro per il campo filtro <n> (dove n = da 1 a 4), per impostazione
<n> predefinita è nel formato di "FilterField <n> = {filter_value}" dove "
{filter_value}" deve essere sostituito dal valore selezionato ) inviato dal lato
client da parte di Ajax.
t Il tipo di dati del campo filtro. Non modificare a meno che non si modifichi il
<n> campo filtro in f <n>.
Esempio 1
Esempio 2
Esempio
Si supponga di avere 2 campi ID utente nella tabella corrente e nella tabella utente e che
si desideri filtrare in base ai campi ID utente.
[Link] 25/54
26/5/2018 Eventi server e script client
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_Unload Questo evento verrà chiamato prima della chiusura della connessione al database.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento è
l'URL da reindirizzare a.
Per impostazione predefinita, dopo aver inserito un utente del record viene reindirizzato
alla pagina Elenco. Puoi cambiarlo usando Return Page (vedi Table Setup
([Link]) ). Tuttavia, se si desidera modificare il codice, è anche possibile
utilizzare questo evento.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione.
Esempio
[Link] 26/54
26/5/2018 Eventi server e script client
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. In generale, è possibile accedere ai dati
del modulo da $ this -> <Field> -> FormValue (ad es. $ This-> HP-> FormValue). In
alternativa, è possibile ottenere prima tutti i valori del modulo in un array, ad es
Esempio
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_Unload Questo evento verrà chiamato prima della chiusura della connessione al database.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Per impostazione predefinita, dopo l'eliminazione dei record, l'utente viene reindirizzato
alla pagina Elenco. Puoi cambiarlo usando questo evento.
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_Unload Questo evento verrà chiamato prima della chiusura della connessione al database.
[Link] 27/54
26/5/2018 Eventi server e script client
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Esempio 1
function Page_Load () {
$ item = @ $ this-> ExportOptions-> Items ["pdf"];
se ($ item) $ item-> Visible = FALSE; }
Esempio 2
function Page_Load () {
$ item = & $ this-> ExportOptions-> Add ("MyName");
$ item-> Body = "<a href='MyURL'> My Link </a>";
}
Esempio 3
Aggiungi un'azione personalizzata per inviare i record selezionati tramite POST HTTP
function Page_Load () {
$ this-> CustomActions ["star"] = "Aggiungi stella"; // Dove
"star" è l'id e "Add Star" è la didascalia dell'azione
personalizzata
}
[Link] 28/54
26/5/2018 Eventi server e script client
Nota Per elaborare l'azione, è anche necessario scrivere un gestore con l' evento
del server Row_CustomAction (vedere di seguito).
Esempio 4
function Page_Load () {
$ this-> CustomActions ["star"] = new cListAction ("stella",
"Aggiungi stella", IsLoggedIn (), EW_ACTION_AJAX,
EW_ACTION_MULTIPLE, "Aggiungi stella ai record selezionati?",
"glyphicon glyphicon-star ewIcon ");
}
Nota Per elaborare l'azione, è anche necessario scrivere un gestore con l' evento
del server Row_CustomAction (vedere di seguito).
Esempio 5
function Page_Load () {
$ this-> ExportExcelCustom = FALSE; // Disabilita utilizzando i
modelli personalizzati per l'esportazione in Excel
}
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_Unload Questo evento verrà chiamato prima della chiusura della connessione al database.
[Link] 29/54
26/5/2018 Eventi server e script client
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti prima della tabella principale.
Esempio
function Page_DataRendering () {
$ this-> MyField-> Visible = FALSE; // Nascondi un campo
chiamato "MyField"
}
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti dopo la tabella principale.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. Vedere la descrizione di
Form_CustomValidate per la pagina Aggiungi / Copia sopra.
ListOptions_Load Questo evento verrà chiamato prima che la tabella principale sia resa. Usa questo evento
per modificare le colonne non di dati della tabella principale (cioè i link e la casella di
controllo per ogni record). Puoi modificare queste colonne o aggiungere le tue colonne
usando questo evento. Puoi ottenere una colonna per nome usando $ this->
ListOptions-> Item ["name"] .
Nota I seguenti nomi predefiniti sono riservati, non li usano per le tue colonne.
Questi nomi sono sensibili al maiuscolo / minuscolo e sono in minuscolo, ad
eccezione dei nomi delle tabelle di dettaglio.
casella di controllo
vista
copia
Elimina
modificare
detail_ <DetailTable> - Colonna della tabella dei dettagli
dettagli : la colonna Multiple Master / Detail
anteprima - colonna per la riga di anteprima dell'estensione Anteprima
dettagli (solo per utenti registrati)
sequenza - colonna per numero di sequenza
pulsante - colonna per il gruppo di pulsanti o il menu a discesa
Esempio 1
function ListOptions_Load () {
$ item = & $ this-> ListOptions-> Add ("new");
$ item-> Header = "MyCaption"; // Imposta l'intestazione della
colonna (per la pagina List)
$ item-> OnLeft = TRUE; // Collega a sinistra
$ item-> MoveTo (0); // Sposta la colonna sull'indice
specificato
}
[Link] 30/54
26/5/2018 Eventi server e script client
Esempio 2
function ListOptions_Load () {
$ this-> ListOptions-> Items ["view"] -> Visible = FALSE;
}
Esempio 3
function ListOptions_Load () {
$ this-> DetailPages-> Items ["MyDetailTable"] -> Visible =
FALSE;
}
[Link] 31/54
26/5/2018 Eventi server e script client
ListOptions_Rendering Questo evento verrà chiamato prima che le opzioni di elenco vengano visualizzate. Per
accedere all'oggetto campo della riga corrente, puoi usare $ this -> <Field> ->
<Property> (es. $ This-> HP-> CurrentValue ).
Esempio 1
function ListOptions_Rendering () {
$ GLOBALS ["orderdetails_grid"] -> DetailAdd = (... condizione
...); // Imposta su TRUE o FALSE condizionatamente
$ GLOBALS ["orderdetails_grid"] -> DetailEdit = (... condizione
...); // Imposta su TRUE o FALSE condizionatamente
$ GLOBALS ["orderdetails_grid"] -> DetailView = (... condizione
...); // Imposta su TRUE o FALSE in modo condizionale
}
Esempio 2
Aggiungi una classe CSS a tutte le celle (inclusa la cella di intestazione / piè di pagina) di
un campo nella pagina Elenco
function ListOptions_Rendering () {
$ this-> Category-> AddClass ("visible-lg"); // Aggiungi la
classe CSS per mostrare il campo solo per lo schermo grande
}
Gli appunti
1. Il metodo AddClass () aggiunge classe a tutte le celle, incluse quelle
nell'intestazione e nel piè di pagina della tabella. Non utilizzare questo
metodo se si desidera aggiungere solo la classe per la riga corrente.
2. Utilizzare questo esempio con attenzione se la pagina Elenco supporta In
linea / Grid-Aggiungi / Copia / Modifica. Se un campo è visibile solo sullo
schermo grande, non può essere aggiornato in schermi più piccoli.
[Link] 32/54
26/5/2018 Eventi server e script client
ListOptions_Rendered Questo evento verrà chiamato dopo il rendering delle opzioni di elenco. Utilizzare questo
evento per modificare il contenuto delle colonne non di dati per il record. Per accedere
all'oggetto campo della riga corrente, puoi usare $ this -> <Field> ->
<Property> (es. $ This-> HP-> CurrentValue ).
Esempio 1
function ListOptions_Rendered () {
if ($ this-> MyField-> CurrentValue == "xxx") {
$ this-> ListOptions-> Items ["new"] -> Body = "yyy";
} else {
$ this-> ListOptions-> Items ["new"] -> Clear (); //
Imposta corpo = ""
}
}
Esempio 2
function ListOptions_Rendered () {
$ this-> ListOptions-> Items ["new"] -> Body = "<a href = \" #
\ "onclick = \" restituisce ew_SubmitAction (event, {action:
'star', metodo: 'ajax', msg: 'Aggiungi stella?', chiave: ". $ this-
> KeyToJson ()."}); \ "> Aggiungi stella </a>";
}
Nota Per elaborare l'azione, è anche necessario scrivere un gestore con l' evento
del server Row_CustomAction (vedere di seguito).
[Link] 33/54
26/5/2018 Eventi server e script client
Row_CustomAction Se è stato utilizzato l' evento server Page_Load (vedere sopra) per aggiungere
un'azione personalizzata alla pagina Elenco, la pagina mostrerà la colonna della casella di
controllo per consentire agli utenti di selezionare i record (simile a Multi-Update e Mulit-
Delete). Quando l'utente fa clic sul link o sul pulsante di azione personalizzato, la pagina
verrà postata su se stessa e questo evento verrà attivato (dopo Page_Load e prima di
Page_Render ) per ciascuna riga selezionata per elaborare l'azione personalizzata.
Restituisce TRUE per passare al record successivo o restituire FALSE per interrompere
l'azione personalizzata.
Esempio
Aggiorna lo stato dei record selezionati, assumendo che la tabella abbia un campo
denominato "Speciali" per la memorizzazione dello stato.
[Link] 34/54
26/5/2018 Eventi server e script client
Page_Exporting Questo evento verrà chiamato prima dell'esportazione della pagina. È possibile utilizzare
questo evento per aggiungere il codice aggiuntivo all'inizio del file da esportare.
Restituisci FALSE per saltare l'esportazione predefinita e utilizzare l' evento Row_Export
(vedi sotto). Restituisce TRUE per utilizzare l'esportazione predefinita e saltare l' evento
Row_Export . Controlla $ this-> Esporta per il tipo di esportazione (ad esempio
"excel", "word"). Il contenuto del documento di esportazione è $ this->
ExportDoc-> Text (eccetto PHPExcel / PHPWord).
Esempio
function Page_Exporting () {
if ($ this-> Export == "excel") {
$ this-> ExportDoc-> Text = "<p> My Title </ p>"; //
Aggiungi un titolo
return FALSE; // Restituisce FALSE per saltare
l'esportazione predefinita e utilizzare l'evento Row_Export
}
return TRUE; // Restituisce TRUE per utilizzare l'esportazione
predefinita e saltare l'evento Row_Export
}
Row_Export Se si restituisce FALSE nell'evento Page_Exporting (vedere sopra), questo evento verrà
chiamato quando viene esportata una riga per l'esportazione nel proprio codice.
Gli appunti
1. Se si restituisce TRUE nell'evento Page_Exporting (vedere sopra), verrà
utilizzata l'esportazione predefinita e questo evento NON verrà chiamato.
2. Se si utilizzano i modelli personalizzati (vedere Modelli personalizzati
([Link]) ), questo evento può essere sovrascritto. È possibile
disabilitare l'uso di modelli personalizzati per report, vedere l'esempio di
Page_Load sopra.
Esempio
[Link] 35/54
26/5/2018 Eventi server e script client
Page_Exported Questo evento verrà chiamato dopo che la pagina è stata esportata. È possibile utilizzare
questo evento per aggiungere il codice aggiuntivo alla fine del file da esportare.
Esempio
function Page_Exported () {
if ($ this-> Export == "excel")
$ this-> ExportDoc-> Text. = "my footer"; // Aggiungi un
footer
// die ($ this-> ExportDoc-> Text); // Visualizza l'intero
documento di esportazione per il debug
}
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_Unload Questo evento verrà chiamato prima della chiusura della connessione al database.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. Vedere la descrizione di
Form_CustomValidate per la pagina Aggiungi / Copia sopra.
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_Unload Questo evento verrà chiamato prima della chiusura della connessione al database.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
[Link] 36/54
26/5/2018 Eventi server e script client
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_Unload Questo evento verrà chiamato prima della chiusura della connessione al database.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Per impostazione predefinita, l'utente viene reindirizzato alla pagina Elenco dopo che i
criteri di ricerca sono stati elaborati. Puoi cambiarlo usando questo evento.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. Vedere la descrizione di
Form_CustomValidate per la pagina Aggiungi / Copia sopra.
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_Unload Questo evento verrà chiamato prima della chiusura della connessione al database.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
[Link] 37/54
26/5/2018 Eventi server e script client
Page_Exporting Questo evento verrà chiamato prima dell'esportazione della pagina. È possibile utilizzare
questo evento per aggiungere il codice aggiuntivo all'inizio del file da esportare.
Restituisci FALSE per saltare l'esportazione predefinita e utilizzare l' evento Row_Export
(vedi sotto). Restituisce TRUE per utilizzare l'esportazione predefinita e saltare l' evento
Row_Export . Controlla $ this-> Esporta per il tipo di esportazione (ad esempio
"excel", "word"). Il contenuto del documento di esportazione è $ this->
ExportDoc-> Text .
Row_Export Se si restituisce FALSE nell'evento Page_Exporting (vedere sopra), questo evento verrà
chiamato quando viene esportata una riga per l'esportazione nel proprio codice.
L'argomento ( $ rs ) è un array del record da esportare. I valori sono valori di database
non formattati. Se si desidera esportare valori formattati, utilizzare $ this->
MyField-> ViewValue .
Page_Exported Questo evento verrà chiamato dopo che la pagina è stata esportata. È possibile utilizzare
questo evento per aggiungere il codice aggiuntivo alla fine del file da esportare.
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_Unload Questo evento verrà chiamato prima della chiusura della connessione al database.
Page_DataRendering Questo evento verrà chiamato prima che il contenuto della pagina venga emesso. Puoi
utilizzare questo evento per aggiungere contenuti nella parte superiore del contenuto
della pagina.
Page_DataRendered Questo evento verrà chiamato dopo l'uscita del contenuto della pagina. Puoi utilizzare
questo evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
[Link] 38/54
26/5/2018 Eventi server e script client
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Di default, l'utente viene reindirizzato alla pagina predefinita (ad es. [Link]) dopo il
login riuscito. Puoi cambiarlo usando questo evento.
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Di default, l'utente viene reindirizzato alla pagina predefinita (ad es. [Link]) dopo il
login riuscito. Puoi cambiarlo usando questo evento.
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
User_LoggingIn Questo evento verrà chiamato prima di convalidare nome utente e password.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. Ispezionare la sorgente HTML della
pagina nel browser per visualizzare i nomi degli elementi del modulo.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Di default, l'utente viene reindirizzato alla pagina predefinita (ad es. [Link]) dopo il
login riuscito. Puoi cambiarlo usando questo evento.
[Link] 39/54
26/5/2018 Eventi server e script client
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Di default, l'utente viene reindirizzato alla pagina predefinita (ad es. [Link]) dopo il
login riuscito. Puoi cambiarlo usando questo evento.
Email_Sending Questo evento viene generato prima dell'invio della notifica via email. È possibile
personalizzare il contenuto dell'email utilizzando questo evento. L'evento Email_Sending
ha i seguenti parametri:
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. Vedere la descrizione di
Form_CustomValidate per la pagina Aggiungi / Copia sopra.
User_Registered Questo evento viene attivato dopo la corretta registrazione di un nuovo utente.
L'argomento è un recordset del nuovo record nella tabella utente.
User_Activated Questo evento viene attivato dopo l'attivazione di un nuovo utente (se è richiesta
l'attivazione da parte dell'utente, vedere Impostazioni di sicurezza ([Link]) ).
L'argomento è un recordset del nuovo record nella tabella utente.
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
[Link] 40/54
26/5/2018 Eventi server e script client
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Di default, l'utente viene reindirizzato alla pagina predefinita (ad es. [Link]) dopo il
login riuscito. Puoi cambiarlo usando questo evento.
Email_Sending Questo evento viene generato prima dell'invio della notifica via email. È possibile
personalizzare il contenuto dell'email utilizzando questo evento. L'evento Email_Sending
ha i seguenti parametri:
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. Ispezionare la sorgente HTML della
pagina nel browser per visualizzare i nomi degli elementi del modulo.
Page_Render Questo evento verrà chiamato prima dell'emissione dell'HTML per la pagina. È possibile
utilizzare questo evento per apportare alcune modifiche dell'ultimo minuto alla pagina
prima che venga emessa.
Page_DataRendering Questo evento verrà chiamato dopo che [Link] è incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte superiore del contenuto della pagina.
Page_DataRendered Questo evento verrà chiamato prima che il [Link] sia incluso. Puoi utilizzare questo
evento per aggiungere contenuti nella parte inferiore del contenuto della pagina.
Page_Redirecting Questo evento verrà chiamato prima di reindirizzare ad un'altra pagina. L'argomento
dell'evento è l'URL da reindirizzare a.
Di default, l'utente viene reindirizzato alla pagina di accesso dopo aver effettuato il login
con successo. Puoi cambiarlo usando questo evento.
Email_Sending Questo evento viene generato prima dell'invio della notifica via email. È possibile
personalizzare il contenuto dell'email utilizzando questo evento. L'evento Email_Sending
ha i seguenti parametri:
[Link] 41/54
26/5/2018 Eventi server e script client
Message_Showing Questo evento viene generato prima che venga mostrato il messaggio memorizzato nella
variabile di sessione. Puoi usare questo evento per cambiare il messaggio che viene
passato all'evento come argomento.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. Ispezionare la sorgente HTML della
pagina nel browser per visualizzare i nomi degli elementi del modulo.
User_RecoverPassword Questo evento viene generato dopo il recupero della password. L'argomento è un
recordset del record dell'utente nella tabella utente.
Client Script : il primo blocco di JavaScript da includere all'inizio della pagina, puoi inserire le tue variabili e funzioni
JavaScript lì. Il tag View (per la visualizzazione) e Edit Tag (per l'input) dei campi supporta gli attributi personalizzati
(vedi Field Setup ([Link]) ) in modo che tu possa aggiungere i tuoi attributi per lavorare con il tuo JavaScript
incluso qui.
Startup Script - il secondo blocco di JavaScript da includere alla fine della pagina, puoi inserire qui il codice per
"avviare" il tuo JavaScript.
Nota Nella tabella seguente, il <fieldname> nel codice rappresenta il nome della variabile di campo. In generale,
se il nome del campo è alfanumerico, il nome della variabile di campo è uguale al nome del campo. Altrimenti, gli
spazi vengono sostituiti da caratteri di sottolineatura e altri caratteri non alfanumerici vengono sostituiti dalla loro
rappresentazione in forma esadecimale del loro valore unicode. Se la variabile è una parola riservata o inizia con
una cifra, verrà anteposta con un carattere di sottolineatura. In caso di dubbi, controlla sempre l'origine HTML
nel browser per verificare l'ID, il nome e altri attributi degli elementi effettivi.
Script del cliente Lo script verrà inserito nell'intestazione e quindi incluso in tutte le pagine con l'intestazione.
Esempio
[Link] 42/54
26/5/2018 Eventi server e script client
Script di avvio Lo script verrà inserito nel piè di pagina e quindi incluso in tutte le pagine con il piè di
pagina. Questo è un evento molto utile che viene attivato per tutte le pagine con il piè di
pagina, puoi quasi fare tutto cambiando il DOM del documento.
Esempio
Codice globale Codice JavaScript da includere in tutte le pagine con intestazione. Questo può contenere
costanti, variabili e funzioni globali.
Script del cliente Lo script verrà posizionato dopo l'intestazione. Questo potrebbe contenere le tue variabili
JavaScript e le funzioni per la pagina. Puoi anche utilizzare questo evento per sottoscrivere
eventi JavaScript.
Esempio 1
[Link] ({
// LastPageSubmit: true, // Abilita pulsante di invio solo per
l'ultima pagina
// HideDisabledButton: true, // Nascondi pulsante di invio
disattivato
// HideInactivePages: true, // Nascondi pagine inattive
// HideTabs: true, // Nascondi tutte le schede
// ShowPagerBottom: true, // Mostra il pager in basso
// PagerTemplate: '<nav> <ul class = "cercapersone"> <li class =
"ewPrev precedente"> <a href = "# "> <span class =" icon-prev "> </
span> {prec} </a> </ li> <li class =" next ewNext "> <a href="#">
{successivo} <span class = "icona-next"> </ span> </a> </ li> </ ul>
</ nav>'
// Modello di cercapersone LockTabs: true, // Imposta le schede
non attive come disabilitate
ShowPagerTop: true // Mostra il cercapersone in cima
});
Esempio 2
[Link] 43/54
26/5/2018 Eventi server e script client
Esempio 3
Esempio 4
Script di avvio La sceneggiatura verrà posizionata prima del piè di pagina. Questo è un evento molto utile
che puoi quasi fare tutto cambiando il DOM del documento.
L'oggetto jQuery del campo è l'oggetto jQuery dell'elemento di input del campo. (Si noti che
se Modifica tag del campo è CHECKBOX o RADIO, l'oggetto jQuery può contenere più di un
elemento.)
.value .value () ottiene il valore del campo, .value (valore) imposta il valore del
([valore]) campo.
[Link] 44/54
26/5/2018 Eventi server e script client
.Visible .visible () ottiene la visibilità del campo, .visible (valore) imposta la visibilità
([valore]) del campo. Il valore dovrebbe essere un valore booleano.
Nota
1. Questo metodo mostra / nasconde la riga del campo (cioè
<tr> o <div>), NON solo gli elementi di input del campo stesso
nella pagina Aggiungi / Modifica.
2. Il setter NON è lo stesso del metodo .toggle () di jQuery.
.riga() Ottieni l'oggetto jQuery della riga (<tr> o <div>) del campo.
Gli appunti
1. Se aggiungi / modifica la pagina, la riga è <tr> o <div> del
campo.
2. Se la pagina Grid, la riga è il <tr> del record.
.toJsDate Ottieni il valore di input come oggetto Date JavaScript (per impostazione
() predefinita il valore di input è stringa).
Esempio 1
Aggiungi evento onchange al campo denominato "Field1" nella pagina Aggiungi / Modifica
per modificare altri campi mediante il plugin jQuery .fields ()
Esempio 2
Aggiungi evento onclick al campo denominato "Campo2" che utilizza CHECKBOX come
Modifica tag.
[Link] 45/54
26/5/2018 Eventi server e script client
Esempio 3
Esempio 4
$ (function () {
[Link] (2, false); // Hide the 2nd page
});
[Link] 46/54
26/5/2018 Eventi server e script client
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. Nota: questa funzione è un membro della
classe di pagine JavaScript.
Nota Se si utilizza questo evento lato client, assicurarsi di aver abilitato la convalida
sul lato client, vedere Convalida in Impostazioni PHP ([Link]) .
L'oggetto modulo HTML è accessibile dal parametro fobj . Puoi anche usare il plugin jQuery
.fields () in questo evento.
Esempio 1
Esempio 2
Esempio 3
[Link] 47/54
26/5/2018 Eventi server e script client
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. L'oggetto modulo è accessibile dal
parametro fobj . Restituisce false se i valori del modulo non superano la convalida.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. Restituisce false se i valori del modulo non
superano la convalida.
Si noti che i nomi degli elementi del modulo sono diversi in modalità Inline Aggiungi / Copia
/ Modifica o Griglia-Aggiungi / Modifica della pagina Elenco. Sono denominati "x0_ <nome
campo>" in Inline-Aggiungi / Copia, come "x1_ <nome campo>" in modalità Inline-Edit e
come "x1_ <nome campo>", "x2_ <nome campo>", ecc. In Grid -Aggiunta / Modifica
poiché ci sono più righe. Ispezionare gli elementi nel browser per verificare i nomi effettivi
degli elementi del modulo.
Nota Form_CustomValidate viene generato per OGNI riga nella griglia. Puoi anche
usare il plugin jQuery .fields () (vedi sopra) per manipolare i campi, ma ricorda
che i campi di ritorno del plug-in della sola riga CORRENTE. Se è necessario accedere
ai campi in altre righe, utilizzare [Link] o jQuery con i selettori CSS.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. L'oggetto modulo è accessibile dal
parametro fobj . Restituisce false se i valori del modulo non superano la convalida.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. L'oggetto modulo è accessibile dal
parametro fobj . Restituisce false se i valori del modulo non superano la convalida.
[Link] 48/54
26/5/2018 Eventi server e script client
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. L'oggetto modulo è accessibile dal
parametro fobj . Restituisce false se i valori del modulo non superano la convalida.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. L'oggetto modulo è accessibile dal
parametro fobj . Restituisce false se i valori del modulo non superano la convalida.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. L'oggetto modulo è accessibile dal
parametro fobj . Restituisce false se i valori del modulo non superano la convalida.
Form_CustomValidate Questo evento viene attivato dopo la normale convalida del modulo. Puoi usare questo
evento per fare la tua convalida personalizzata. L'oggetto modulo è accessibile dal
parametro fobj . Restituisce false se i valori del modulo non superano la convalida.
Nota Si consiglia di sviluppare gli eventi server e gli script client nello script generato in modo da poterli
modificare e testare immediatamente. Al termine dello script personalizzato, copialo nell'editor di script
personalizzato PHPMaker e salvalo.
Oggetto pagina
L'oggetto Pagina è generato per la maggior parte delle pagine. È possibile accedere alle proprietà dell'oggetto utilizzando
la -> notazione (ad esempio, CurrentPage () -> PageID ). La classe di pagina eredita dalla classe della tabella
generata per ogni tabella. I metodi e le proprietà della classe di pagina variano a seconda della pagina, per l'elenco
completo di metodi e proprietà, fare riferimento alla classe di pagina generata negli script generati e alla classe "c
<Tabella>" (ad esempio cCars) nel file generato " <Table> [Link]".
[Link] 49/54
26/5/2018 Eventi server e script client
Campo Oggetto
Un oggetto <Campo> viene generato per ogni campo in una tabella. Ad esempio, l'oggetto "Trademark" viene generato
per il campo "Trademark" nella tabella "Auto". È possibile accedere alle proprietà dell'oggetto utilizzando la -> notazione
(ad es. CurrentPage () -> Marchi-> Valore corrente ). Per l'elenco completo di metodi e proprietà, fare
riferimento alla classe "cField" nel file generato "phpfn * .php".
Oggetto di sicurezza
L'oggetto di sicurezza viene utilizzato per memorizzare le attuali impostazioni di sicurezza avanzata. Fare riferimento alla
classe "cAdvancedSecurity" nel file generato "phpfn * .php" per l'elenco completo di metodi e proprietà.
Oggetto Menu
L'oggetto Menu contiene tutte le informazioni di un menu, l'istanza del menu verrà passata agli eventi Menu_Rendering
come argomento e ti consentirà di lavorare con il menu. Fare riferimento alla classe "cMenu" nel file generato "ewshared
* .php" per l'elenco completo di metodi e proprietà.
Oggetto MenuItem
L'oggetto MenuItem contiene tutte le informazioni della voce di menu, l'istanza della voce di menu verrà passata alla
voce MenuItem_Adding come argomento e consentirà di lavorare con la voce di menu. Fare riferimento alla classe
"cMenuItem" nel file generato "ewshared * .php" per l'elenco completo di metodi e proprietà.
Oggetto ListOpions
L'oggetto ListOptions contiene tutte le informazioni delle colonne non di dati nella tabella principale della pagina Elenco.
Fare riferimento alla classe "cListOptions" nel file generato "phpfn * .php" per l'elenco completo di metodi e proprietà.
Oggetto ExportOpions
L'oggetto ExportOptions contiene tutte le informazioni dei collegamenti di esportazione nella pagina Elenco. È anche
un'istanza della classe "cListOptions". Fare riferimento alla classe "cListOptions" nel file generato "phpfn * .php" per
l'elenco completo di metodi e proprietà.
Language Object
La lingua Object consente di recuperare una frase della lingua attiva durante il runtime. La frase può essere recuperata
negli script generati usando metodi come Phrase, TablePhrase e FieldPhrase. Fare riferimento alla classe "cLanguage" nel
file generato "ewshared * .php" per l'elenco completo di metodi e proprietà.
Oggetto
breadcrumb L'oggetto breadcrumb contiene tutte le informazioni del breadcrumb nella parte superiore della pagina. Fare
riferimento alla classe "cBreadcrumb" nel file generato "phpfn * .php" per l'elenco completo di metodi e proprietà.
Ci sono altri oggetti nel codice generato, fare riferimento al codice sorgente del file "phpfn * .php" e "ewshared * .php"
nel modello o negli script generati.
Gli appunti
1. Nella tabella seguente, l'argomento $ dbname o $ tablename o $ fieldname è il nome della variabile del
database / tabella / campo . È case-sensitive. In generale, se il nome è alfanumerico, il nome della variabile
è uguale al nome. Altrimenti, gli spazi vengono sostituiti da caratteri di sottolineatura e altri caratteri non
alfanumerici vengono sostituiti dalla loro rappresentazione in forma esadecimale del loro valore unicode. Se
la variabile è una parola riservata, verrà anteposta con un carattere di sottolineatura. Se si utilizzano
database con lo stesso nome, controllare il nome della variabile del database nel modulo Aggiungi tabella
collegata , vedere Tabelle collegate ([Link]) .
2. Se MS Access, $ dbname è il nome del file del database senza l'estensione. Se Oracle, $ dbname è il nome
dello schema.
3. L'argomento tra parentesi quadre indica che l'argomento è facoltativo.
4. Se $ dbname non è specificato, si presume il database del progetto. Se $ dbname è specificato, viene
utilizzato il database specificato delle tabelle collegate.
[Link] 50/54
26/5/2018 Eventi server e script client
[Link] 51/54
26/5/2018 Eventi server e script client
[Link] 52/54
26/5/2018 Eventi server e script client
[Link] 53/54
26/5/2018 Eventi server e script client
Ci sono molte altre funzioni utili nel codice generato, fare riferimento al codice sorgente del file "phpfn * .php" e
"ewshared * .php" nel modello o negli script generati.
[Link] 54/54
The Page_DataRendered event is called before the footer.php file is included, allowing developers the opportunity to append additional dynamic content to the bottom section of a webpage. This event is important for delivering dynamic content because it ensures that any last-minute updates or real-time data can be incorporated just before the final page output, maintaining a fresh and relevant user experience. This capability is critical for live data displays, updating footer information based on recent user interactions, or dynamically adapting page information based on back-end calculations .
The Form_CustomValidate event in PHP applications allows for the creation of custom validation logic post the standard form validation. This event can enhance form integrity by enforcing additional business logic constraints, such as ensuring unique field values, meeting certain formatting criteria, or cross-field dependencies. Failing to implement effective custom validations can lead to data inconsistencies, security vulnerabilities like injection attacks, or user errors going unchecked, which could compromise application functionality and trustworthiness .
The Page_Redirecting event is triggered before the application redirects to another page. It plays a strategic role in optimizing user experience by allowing developers to dynamically alter redirection targets based on user roles, application state, or contextual actions. By customizing redirects, developers can streamline user workflows, direct users to relevant content or follow-up actions after certain triggers such as successful form submissions or key user actions, ensuring a seamless and intuitive application flow .
The Page_Render event is triggered before the HTML output for a webpage is generated. It allows developers to make final adjustments to the content, layout, or other aspects of a page just before it is sent to the user's browser. This event can be strategically used to enhance user interaction by dynamically altering the appearance of elements based on user data, session variables, or environmental factors such as time of access. Adjustments made during Page_Render can improve the personalization and relevance of a webpage, leading to better user engagement .
Leveraging the User_LoggingOut event allows applications to manage user session states effectively by executing custom logic before a user is logged out. This event can handle tasks such as logging session activities, clearing sensitive data, or managing post-logout redirection. From a security perspective, it ensures that sessions are terminated without leaving residual security risks, such as lingering session identifiers or cached information that could be exploited. However, improper handling or oversight in this event may lead to potential session hijacking or data exposure if sessions are not adequately cleared .
The User_PasswordExpired event is critical for security as it allows the application to handle scenarios where a user's password is past its validity period. This event offers developers the functionality to programmatically check if a user's password is expired and take necessary actions such as prompting the user to reset the password. Since secure password management is crucial for protecting user data and preventing unauthorized access, this event helps enforce the security policy by not allowing users access to critical features until the password is changed .
The User_Validated event is triggered after a user's credentials have been validated against a user table. This event allows developers to customize user profiles by adding additional information from the user table to the global user profile object. For instance, additional custom fields like 'Notes' can be added to a profile that are not typically included by default. This capability of the User_Validated event can be applied in scenarios such as conditional access control, providing specialized user dashboards, or extending user settings tailored to specific enterprise needs. This customization enhances security and usability by enabling personalized settings directly linked to a user's system profile .
Modifying user ID dynamics through the UserID_Loaded event impacts access control by allowing developers to add or change the list of accessible user IDs after they are initially loaded, thereby customizing which records a user can view or modify. Although this facilitates flexible access control tailored to operational needs or hierarchical structures, it poses potential security implications such as accidental over-permissioning or unauthorized access if not managed correctly. It's crucial that such modifications are approached with strict validation protocols to ensure compliance with security policies and prevent breaches .
PHP applications provide several mechanisms to modify user permissions dynamically after login, primarily through events such as UserLevel_Loaded and TablePermission_Loaded. These events allow developers to adjust user roles and table-specific permissions based on contextual conditions. For instance, upon user login, certain permissions may be elevated or restricted based on time-sensitive promotions, department requirements, or project assignments. A use-case example is dynamically granting edit permissions on an 'orders' table to a user named 'nancy' by utilizing TablePermission_Loaded, enabling role adaptability to operational needs without permanent alteration of user profiles .
The Email_Sending event in PHP applications is fundamental for enhancing communication capabilities, as it allows developers to programmatically control email content, recipients, and conditions before dispatch. This event supports customizations such as adding personalized content, conditional email delivery based on business logic, and monitoring or logging outgoing emails for audit purposes. Its benefits include greater flexibility in maintaining engagement with users, ensuring relevant information dissemination, and optimizing resource usage by preventing unnecessary email traffic .