/

Guida di riferimento a XcrudConfig

Ogni impostazione in src/Config.php, più i metodi helper statici disponibili sulla stessa classe Xcrud.

Connessione al database

ProprietàTipoPredefinitoDescrizione
$dbHoststring'localhost'Host MySQL/MariaDB.
$dbNamestring-Nome del database.
$dbUserstring-Utente del database.
$dbPassstring-Password del database.
$dbCharsetstring'utf8mb4'Charset della connessione, usato per costruire il DSN PDO tramite XcrudConfig::dsn().

UI e interfaccia

ProprietàTipoPredefinitoDescrizione
$uistring'tailwind'Selettore del tema - 'none', 'tailwind' o 'bootstrap'. Vedi Scegliere un framework UI.
$langstring''Codice lingua predefinito dell'interfaccia. '' significa le stringhe inglesi integrate in xcrud.js. Un codice non vuoto deve avere un corrispondente languages/{code}.ini; l'eventuale ->set_lang() di una pagina prevale su questa impostazione.
$columnVisibilityTogglebooltrueAggiunge un pulsante "Colonne" nella toolbar che permette all'operatore di mostrare/nascondere a piacere le colonne della griglia. Vale per l'intero sito, senza override per singola pagina.
$buttonTextbooltrueSe i pulsanti di azione riga (Modifica/Rimuovi/ogni ->button()) mostrano icona+etichetta, oppure solo l'icona con un tooltip al passaggio del mouse. Il proprio ->button_style() di una tabella può sovrascrivere questo comportamento per singola tabella.
$loadingIndicatorstring'text''text' (un'etichetta "Elaborazione…"), 'bar' (una barra di avanzamento condivisa in cima alla pagina), oppure 'spinner' (una piccola icona rotante) mentre una griglia si carica.
$intelligentColumnFitbooltruePredefinito per l'intero sito che nasconde le colonne in eccesso dietro un toggle di espansione per riga su contenitori stretti. Sovrascrivibile per singola pagina tramite ->intelligent_column_fit().
$intelligentColumnArrangementbooltruePredefinito per l'intero sito che ridispone ogni riga come scheda impilata su schermi larghi quanto un telefono. Sovrascrivibile per singola pagina tramite ->intelligent_column_arrangement().

Vedi Adattamento e disposizione intelligente delle colonne per un approfondimento sulle ultime due voci.

Paginazione, esportazione e importazione

ProprietàTipoPredefinitoDescrizione
$perPageint10Righe per pagina predefinite.
$perPageOptionsarray[10, 25, 50, 100]Dimensioni di pagina selezionabili mostrate nel controllo "righe per pagina".
$exportRowLimitint50000Numero massimo di righe che una singola richiesta di esportazione CSV/XLSX/PDF recupererà, indipendentemente da quante righe corrispondano effettivamente al filtro corrente.
$importRowLimitint5000Numero massimo di righe dati che una singola richiesta di importazione CSV inserirà. Tenuto molto più basso di $exportRowLimit - ogni riga esegue il proprio insert più gli hook.
$autocompleteLimitint8Numero massimo di suggerimenti live mostrati sotto il campo di ricerca mentre l'utente digita.

Vedi Esportazione CSV, XLSX e PDF.

Demo e playground

ProprietàTipoPredefinitoDescrizione
$demobooltrueAbilita un pulsante "Visualizza codice" su ogni form Aggiungi/Modifica, che mostra il codice PHP grezzo della pagina che lo ha definito. Disattivalo in produzione - vedi Distribuzione in produzione.

Librerie di terze parti

$libraries è un array di URL CDN (o della cartella locale libs/) che potenziano progressivamente alcuni campi. Se un URL non si carica, il campo torna al suo controllo HTML nativo invece di rompersi:

ChiavePotenzia
flatpickr_js / flatpickr_cssUn selettore data/data-ora più ricco sui campi data.
quill_js / quill_csschange_type('field', 'editor') - l'editor di testo ricco (WYSIWYG).
choices_js / choices_cssDropdown ricercabili/con tag per ->relation(..., search: true).
cropper_js / cropper_cssL'interfaccia interattiva di ritaglio drag-to-crop per change_type('field', 'image', '', ['manual_crop' => true]).

Upload

ProprietàTipoPredefinitoDescrizione
$uploadDirstring'media/'Dove vengono scritti i file caricati (relativo alla radice del progetto) - anche il percorso URL da cui vengono serviti.
$uploadMaxSizeint10 * 1024 * 1024 (10MB)Dimensione massima di upload in byte, applicata in aggiunta a qualunque limite già imposto da upload_max_filesize/post_max_size di php.ini.
$uploadAllowedImageExtarray['jpg','jpeg','png','gif','webp']Estensioni immagine consentite, verificate sia sul nome file sia sui dati immagine effettivamente rilevati.
$uploadAllowedFileExtarray['pdf','doc','docx','xls','xlsx','ppt','pptx','txt','csv','zip','mp3','mp4']Estensioni di file generiche consentite.
$uploadAllowedVideoExtarray['mp4','webm','ogg']Estensioni video consentite.

Vedi Upload di file e immagini.

Metodi helper statici su Xcrud

MetodoDescrizione
Xcrud::humanize(string $field): stringTrasforma un nome di campo in camelCase o snake_case in un'etichetta in Title Case - ad es. 'customerNumber'/'payment_date' diventano "Customer Number"/"Payment Date". La parola nuda "id" viene resa maiuscola come "ID".
Xcrud::html(string $html, ?string $text = null): arrayRacchiude markup ritenuto sicuro affinché il valore restituito da column_callback() venga renderizzato come vero HTML nella griglia invece di essere sottoposto a escape come testo semplice. Vedi Rendering personalizzato delle celle: badge e avatar.
Xcrud::uiAssets(): stringEmette il tag theme.js del tema attivo più eventuali asset CDN/font aggiuntivi in <head>, per una pagina senza widget che vuole comunque le globali JS del tema.
Xcrud::assetVersion(string $path): stringRestituisce una query string ?v=<mtime> per il cache-busting di un asset statico di proprietà di questo progetto (non per le librerie CDN, già versionate tramite URL).
echo Xcrud::humanize('paymentDate'); // "Payment Date"

// dentro un column_callback():
return Xcrud::html('<span class="badge">Paid</span>');