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.
5. 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
6. 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
21. Kickstarter
Tutti i campi visti fino a questo momento possono essere generati
con il modulo Kickstarter
Mauro Lorenzutti: TCA Tips & Tricks Pag. 21
22. 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
26. Layout della form
Di default un campo sotto l’altro
Form chilometriche…
Tre strumenti:
Types
Palettes
--div--
Mauro Lorenzutti: TCA Tips & Tricks Pag. 26
27. 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
29. --div--
Visualizzazione a tab della form
Attivazione dei tab in ext_tables.php
Definizione dei tab nel tca.php
Pag. 29
30. Aggiornamento campi
Aggiornare un campo in funzione del valore inserito in un altro
campo
requestUpdate
vs
AJAX
Mauro Lorenzutti: TCA Tips & Tricks Pag. 30
31. 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
33. 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
35. Componenti AJAX 1
Registriamo un ajaxID nel file localconf.php:
Implementiamo la funzione richiamata dal javascript:
Mauro Lorenzutti: TCA Tips & Tricks Pag. 35
37. Facile no?
* http://www.flickr.com/photos/rainbow_warrior/199405178/
38. 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
39. 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
40. 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
41. 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
42. 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
43. Ci siamo quasi…
Introduzione
Campi disponibili
Kickstarter
Type e palette extTables.php
Wizard pageTSConfig
Modulo List
Conclusioni
Mauro Lorenzutti: TCA Tips & Tricks Pag. 43
44. Listare i record
Gratis grazie al TCA:
Mauro Lorenzutti: TCA Tips & Tricks Pag. 44
45. Limiti del modulo List
Ricerca non strutturata
Funzionalità limitate
Soluzioni? Modulo custom:
Mauro Lorenzutti: TCA Tips & Tricks Pag. 45
46. 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
50. Conclusioni
Il TCA è potente e flessibile
Se qualcosa non è supportato…
si può implementare ;-)
Mauro Lorenzutti: TCA Tips & Tricks Pag. 50
51. Question time
Grazie a tutti per l’attenzione
I miei contatti:
mauro.lorenzutti@webformat.com
http://it.linkedin.com/in/maurolorenzutti
http://twitter.com/MauroLorenzutti
Mauro Lorenzutti: TCA Tips & Tricks Pag. 51