TYPO3 TCA: Tips & Tricks

Post on 02-Jul-2015

663 views 1 download

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

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: mauro.lorenzutti@webformat.com

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

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

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

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:

mauro.lorenzutti@webformat.com

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

http://twitter.com/MauroLorenzutti

Mauro Lorenzutti: TCA Tips & Tricks

Pag. 51