Upload
mauro-lorenzutti
View
664
Download
1
Embed Size (px)
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.
Citation preview
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