TYPO3 TCA: Tips & Tricks

51
Bologna 16/17 Novembre 2012 TCA: tips&tricks Mauro Lorenzutti T3Camp Italia Il terzo evento italiano dedicato a TYPO3

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 of TYPO3 TCA: Tips & Tricks

Page 1: TYPO3 TCA: Tips & Tricks

Bologna 16/17 Novembre 2012

TCA: tips&tricks Mauro Lorenzutti

T3Camp Italia Il terzo evento italiano dedicato a TYPO3

Page 2: TYPO3 TCA: Tips & Tricks

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

Page 3: TYPO3 TCA: Tips & Tricks

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….

Page 4: TYPO3 TCA: Tips & Tricks

Tanta roba!!!

Page 5: TYPO3 TCA: Tips & Tricks

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

Page 6: TYPO3 TCA: Tips & Tricks

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

Page 7: TYPO3 TCA: Tips & Tricks

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 7

Pages

Page 8: TYPO3 TCA: Tips & Tricks

I tipi di campo disponibili

Input

Text

Check

Radio

Select

Group

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 8

None

Passthrough

User

Flex

Inline

Page 9: TYPO3 TCA: Tips & Tricks

Guardiamoli da vicino *http://www.flickr.com/photos/ranti/7666715742/

Page 10: TYPO3 TCA: Tips & Tricks

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 10

Input

Page 11: TYPO3 TCA: Tips & Tricks

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 11

Text

Page 12: TYPO3 TCA: Tips & Tricks

Check

Page 13: TYPO3 TCA: Tips & Tricks

Radio

Page 14: TYPO3 TCA: Tips & Tricks

Select

Page 15: TYPO3 TCA: Tips & Tricks

Select con pre-processing

Page 16: TYPO3 TCA: Tips & Tricks

Select da db

Page 17: TYPO3 TCA: Tips & Tricks

Group DB

Page 18: TYPO3 TCA: Tips & Tricks

Group File

Page 19: TYPO3 TCA: Tips & Tricks

None

Page 20: TYPO3 TCA: Tips & Tricks

Passthrough

Page 21: TYPO3 TCA: Tips & Tricks

Kickstarter

Tutti i campi visti fino a questo momento possono essere generati con il modulo Kickstarter

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 21

Page 22: TYPO3 TCA: Tips & Tricks

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

Page 23: TYPO3 TCA: Tips & Tricks

User

Page 24: TYPO3 TCA: Tips & Tricks

Flex

Page 26: TYPO3 TCA: Tips & Tricks

Layout della form

Di default un campo sotto l’altro Form chilometriche…

Tre strumenti: Types

Palettes

--div--

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 26

Page 27: TYPO3 TCA: Tips & Tricks

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

Page 28: TYPO3 TCA: Tips & Tricks

Palettes

Visualizzazione raggruppata dei campi

Definizione delle palettes nel tca.php:

Pag. 28

Page 29: TYPO3 TCA: Tips & Tricks

--div--

Visualizzazione a tab della form

Attivazione dei tab in ext_tables.php

Definizione dei tab nel tca.php

Pag. 29

Page 30: TYPO3 TCA: Tips & Tricks

Aggiornamento campi

Aggiornare un campo in funzione del valore inserito in un altro campo

requestUpdate

vs

AJAX

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 30

Page 31: TYPO3 TCA: Tips & Tricks

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

Page 32: TYPO3 TCA: Tips & Tricks

RequestUpdate 2

2. legare i due campi (tca.php):

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 32

Page 33: TYPO3 TCA: Tips & Tricks

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

Page 34: TYPO3 TCA: Tips & Tricks

User_provincia

Page 35: TYPO3 TCA: Tips & Tricks

Componenti AJAX 1

Registriamo un ajaxID nel file localconf.php:

Implementiamo la funzione richiamata dal javascript:

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 35

Page 36: TYPO3 TCA: Tips & Tricks

Componenti AJAX 2 Aggiungiamo il javascript alla funzione user_nazione:

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 36

Page 37: TYPO3 TCA: Tips & Tricks

Facile no? * http://www.flickr.com/photos/rainbow_warrior/199405178/

Page 38: TYPO3 TCA: Tips & Tricks

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

Page 39: TYPO3 TCA: Tips & Tricks

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

Page 40: TYPO3 TCA: Tips & Tricks

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

Page 41: TYPO3 TCA: Tips & Tricks

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

Page 43: TYPO3 TCA: Tips & Tricks

Ci siamo quasi…

Introduzione

Campi disponibili

Kickstarter

Type e palette

Wizard

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 43

extTables.php

pageTSConfig

Modulo List

Conclusioni

Page 44: TYPO3 TCA: Tips & Tricks

Listare i record

Gratis grazie al TCA:

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 44

Page 45: TYPO3 TCA: Tips & Tricks

Limiti del modulo List

Ricerca non strutturata

Funzionalità limitate

Soluzioni? Modulo custom:

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 45

Page 46: TYPO3 TCA: Tips & Tricks

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

Page 47: TYPO3 TCA: Tips & Tricks

DB Management (wfqbe)

Pag. 47

Page 48: TYPO3 TCA: Tips & Tricks

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

Page 50: TYPO3 TCA: Tips & Tricks

Conclusioni

Il TCA è potente e flessibile

Se qualcosa non è supportato…

si può implementare ;-)

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 50

Page 51: TYPO3 TCA: Tips & Tricks

Question time

Grazie a tutti per l’attenzione

I miei contatti:

[email protected]

http://it.linkedin.com/in/maurolorenzutti

http://twitter.com/MauroLorenzutti

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 51