typo3 tca: tips & tricks
DESCRIPTION
Uno sguardo sul mondo del TCA, il Table Configuration Array di TYPO3 che consente di integrare tabelle del database nella gestione di backend di TYPO3.TRANSCRIPT
Bologna 16/17 Novembre 2012
TCA: tips&tricks Mauro Lorenzutti
T3Camp Italia Il terzo evento italiano dedicato a TYPO3
Mauro Lorenzutti
CTO di Webformat
Sviluppatore e consulente TYPO3 dal 2004
TYPO3 Certified Integrator dal 2009
Sviluppatore di numerose estensioni, tra cui: DB Integration (wfqbe)
Webformat Shop System (extendedshop)
TYPO3-Alfresco Connector
TYPO3-Magento Connector
Contacts: [email protected]
www.webformat.com
http://it.linkedin.com/in/maurolorenzutti
http://twitter.com/MauroLorenzutti
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 2
Di cosa parleremo
Introduzione
Campi disponibili
Kickstarter
Type e palette
Wizard
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 3
extTables.php
pageTSConfig
Modulo List
Conclusioni
51 slide….
Tanta roba!!!
TCA?
TCA: Table Configuration Array
È un array globale che descrive ogni tabella e ogni campo del database di TYPO3
Viene usato per generare automaticamente: Le form di inserimento e editing di ogni tabella
La lista dei record nel modulo List
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 5
I file coinvolti
ext_tables.sql
Contiene il codice SQL per generare la tabella
ext_tables.php
Contiene l’array usato per generare la lista di record nel modulo List
tca.php
Contiene l’array che descrive ogni singolo campo usato per generare le form di
inserimento e modifica
locallang_db.xml Contiene le label da associare alla tabella e ad ogni campo
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 6
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 7
Pages
I tipi di campo disponibili
Input
Text
Check
Radio
Select
Group
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 8
None
Passthrough
User
Flex
Inline
Guardiamoli da vicino *http://www.flickr.com/photos/ranti/7666715742/
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 10
Input
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 11
Text
Check
Radio
Select
Select con pre-processing
Select da db
Group DB
Group File
None
Passthrough
Kickstarter
Tutti i campi visti fino a questo momento possono essere generati con il modulo Kickstarter
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 21
Kickstarter, appunto
Kickstarter velocizza la creazione di un modulo
Ci sono però molte funzionalità non definibili tramite il kickstarter
Ad es. i seguenti tipi di campo non sono supportati: User
Flex
Inline
Bisogna modificare manualmente i file seguenti: ext_tables.sql
ext_tables.php
tca.php
locallang_db.xml
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 22
User
Flex
Inline
Moltissime opzioni disponibili: http://typo3.org/documentation/document-library/ core-documentation/doc_core_tca/4.7.1/view/1/3/#id590095
Layout della form
Di default un campo sotto l’altro Form chilometriche…
Tre strumenti: Types
Palettes
--div--
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 26
Types
Visualizzazione di campi in base al valore di un campo
Definizione del “Type Field” nel ext_tables.php:
Definizione delle liste di campi nel tca.php:
Pag. 27
Palettes
Visualizzazione raggruppata dei campi
Definizione delle palettes nel tca.php:
Pag. 28
--div--
Visualizzazione a tab della form
Attivazione dei tab in ext_tables.php
Definizione dei tab nel tca.php
Pag. 29
Aggiornamento campi
Aggiornare un campo in funzione del valore inserito in un altro campo
requestUpdate
vs
AJAX
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 30
RequestUpdate
Aggiornare un campo in funzione del valore inserito in un altro campo
Nazione -> provincia Selezionata una nazione aggiorniamo la lista delle province
1. attivare il requestUpdate sul campo nazione (ext_tables.php)
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 31
RequestUpdate 2
2. legare i due campi (tca.php):
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 32
Aggiornamento via AJAX
Nazione -> provincia Selezionata una nazione aggiorniamo la lista delle province via AJAX
Due campi “user”: user_nazione
user_provincia
User_nazione lo abbiamo già visto nelle slide precedenti
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 33
User_provincia
Componenti AJAX 1
Registriamo un ajaxID nel file localconf.php:
Implementiamo la funzione richiamata dal javascript:
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 35
Componenti AJAX 2 Aggiungiamo il javascript alla funzione user_nazione:
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 36
Facile no? * http://www.flickr.com/photos/rainbow_warrior/199405178/
Wizard
E se l’inserimento del dato richiede una form più complessa?
Wizard disponibili: Add
Edit
List
Colorpicker
Forms
Table
Rte
Tsconfig
Browse_links
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 38
Modificare il TCA
E se volessimo modificare dei campi già esistenti?
Estensione custom
vs
extTables.php
vs
pageTSConfig
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 39
Modificare il TCA – estensione custom
Nel file ext_tables.php:
Attenzione all’ordine con cui TYPO3 include le estensioni
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 40
Modificare il TCA – extTables.php
Nel file typo3conf/extTables.php:
Viene incluso in coda alle estensioni
Non necessario inizializzare il TCA delle tabelle da modificare
Upgrade-safe
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 41
Modificare il TCA – pageTSConfig
Via TypoScript nel campo Page TSConfig: http://typo3.org/documentation/document-library/core-documentation/doc_core_tsconfig/4.7.0/view/1/4/#id701510
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 42
Ci siamo quasi…
Introduzione
Campi disponibili
Kickstarter
Type e palette
Wizard
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 43
extTables.php
pageTSConfig
Modulo List
Conclusioni
Listare i record
Gratis grazie al TCA:
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 44
Limiti del modulo List
Ricerca non strutturata
Funzionalità limitate
Soluzioni? Modulo custom:
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 45
DB Integration (wfqbe)
E se il modulo List non mi basta ma non so / voglio sviluppare un modulo di backend?
WFQBE:
http://typo3.org/extensions/repository/view/wfqbe
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 46
DB Management (wfqbe)
Pag. 47
Non abbiamo parlato di…
Configurazione RTE
Soft references
Configurazione e creazione wizard
Flexform
TCA nel frontend
Hook per intercettare eventi significativi sui record: Apertura
Salvataggio
Inserimento
Cancellazione
Molto altro ancora…
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 48
TCA Reference
http://typo3.org/documentation/document-library/core-documentation/doc_core_tca/
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 49
Conclusioni
Il TCA è potente e flessibile
Se qualcosa non è supportato…
si può implementare ;-)
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 50
Question time
Grazie a tutti per l’attenzione
I miei contatti:
http://it.linkedin.com/in/maurolorenzutti
http://twitter.com/MauroLorenzutti
Mauro Lorenzutti: TCA Tips & Tricks
Pag. 51