TYPO3 TCA: Tips & Tricks

Post on 02-Jul-2015

662 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

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