Download - TYPO3 TCA: Tips & Tricks

Transcript
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