1.Prefazione
- Aggiungi un segnalibro a questo indirizzo
- Il codice in questo libro
- 1.1L’edizione TYPO3 CMS 7 LTS
- 1.2Formazione – Esperienza di Patrick
- 1.3Formazione – Esperienza di Gert-jan
- 1.4Riconoscimenti
- 1.5Traduzione
- 1.6Registro modifiche (changelog)
2.Sviluppo moderno di estensioni
- 2.1Un nuovo TYPO3 emerge
- 2.2Il Manifesto di Berlino
- 2.3L’ora di nascita di TYPO3 Flow (FLOW3)
- 2.4Come la fenice (Phoenix) dalle ceneri
- 2.5Il dilemma TYPO3
- 2.6La divisione
- 2.7La storia di Extbase e Fluid
- 2.7.1Compatibilità (Backport): Extbase e Fluid
- 2.7.2Programmazione su un livello avanzato
3.Programmazione orientata agli oggetti
- OOP in Extbase e Fluid
- 3.1Classi e oggetti
- Direttive di codifica TYPO3
- Sintassi
- 3.2Metodi
- 3.2.1L’operatore freccia (Arrow Operator)
- 3.2.2Il costruttore (Constructor)
- 3.2.3L’accesso mediante
$this - 3.2.4Caricare metodi con contenuto
- 3.3L’ereditarietà delle classi (Inheritance)
- 3.3.1L’accesso mediante
parent(genitore) - 3.3.2Verifying Class Derivation
- 3.4Classi astratte
- 3.5Interfaccie (Interface)
- 3.6Visibilità: pubblico e protetto
- Visibilità in Extbase e Fluid
- 3.6.1‘Getter’ e ‘Setter’
- 3.7Cenno sul genere (Type Hints)
- 3.8Chiamate statici
- 3.9‘Namespaces’
- 3.10Modelli importanti di progettazione
- 3.10.1Singleton
- 3.10.2Prototype
- 3.10.3Dependency Injection
- 3.11Annotazioni
4.Progettazione guidata dal Dominio
- Definizione di DDD
- 4.1Ignoranza sull’infrastruttura
- 4.2Architettura a strati verticali
- 4.3Il modello di dominio
- 4.3.1Linguaggio ubiquitario
- Approccio pragmatico
- 4.3.2Blocchi da costruzione di DDD
- 4.4Strutturare DDD
- 4.4.1Bounded Context(contesto delimitato)
- 4.4.2Context Maps (contesto mappato)
- 4.4.3Core Domain (nucleo del dominio)
- 4.4.4Shared Kernel (kernel condiviso)
- 4.4.5Riassunto capitolo
- 4.4.6Ulteriori riferimenti
5.Panoramica di Extbase
- 5.1Installazione di Extbase & Fluid
- I numeri versione di estensioni del sistema
- 5.1.1Conservare Commenti PHP Doc
- 5.2Installazione del estensione
efempty - Extensions, Plugins and Modules
- 5.3Perlustrazione dell’estensione
efempty - 5.3.1File
ext_emconf.phpeext_icon.gif - 5.3.2File
ext_tables.php - Plugin multiple in un estensione
- 5.3.3File
ext_localconf.php - 5.3.4Controller
Pluswerk\Efempty\Controller\StartController - 5.3.5Dominio
Pluswerk\Efempty\Domain\Model\Start - 5.3.6Resa Attraverso View
- Annotazione dei file del template
- 5.3.7La Chiamata Show-Action
6.Realizzazione del modello (Modellazione)
- 6.1Modello usato in questo Libro
- 6.2Concetto di base
- 6.2.1Il glossario
- 6.2.2Creare il modello
- 6.3Modellazione in Extbase - Extension Builder
- Interamente in inglese!
- Non fidarti troppo dell Extension Builder!
- Attuale versione di sviluppo del Extension Builder
- 6.3.1Proprietà dell’estensione
- Seguire le istruzioni e gli esempi
- 6.3.2Modello di domonio
- L’ordine in qui crei fa differenza
- 6.3.3Proprietà del modello
- 6.3.4Rapporti nel modello
- 6.4Rettifiche per le classi Autoload
- 6.5Installazione dell’estensione
- 6.6Analisi dei file creati da Extension Builder
- 6.7Ulteriori funzioni di Extension Builder
- 6.7.1Duplicato di scorta (backup)
- 6.7.2Modificare il modello
- 6.7.3Class Builder
7.Preparazione
- 7.1Frontend frameworks (strutture ‘vetrina’)
- 7.2Caricare TypoScript statico
- 7.3Caricare file CSS
- 7.4Impostazioni ‘IDE’
- 7.4.1PhpStorm: Crea progetto
- 7.4.2PhpStorm: File core (nucleo) di Typo3 da includere
- 7.4.3PhpStrom: Includere file schema di Fluid
- 7.4.4PhpStorm: Consigli sulla risoluzione di classi
- 7.4.5Estensione TYPO3
phpstorm - 7.5Messaggi d’errore in TYPO3
- 7.6Svuotare la cache di sistema
8.Il processo CRUD
- 8.1Creare un oggetto (Create)
- 8.1.1Creare l’azione nel Controller
- 8.1.2Creare il template di listAction
- Generare una View senza resa
- 8.1.3Creare blog statici
- 8.1.4Persistenza dei blog
- Persistenza Implicita
- 8.1.5Il ‘Persistence Manager’: Persistenza Manuale
- API pubblico
- 8.1.6Creare un’Azione propria
- Redirect
- 8.1.7Modulo per creare un oggetto
- 8.2Visualizzare un oggetto (Read)
- 8.3Aggiornare un oggetto (Update)
- 8.4Eliminare un oggetto (Delete)
- Esercizio
- 8.5Migliorare l’aspetto
- 8.6Riassunto capitolo
9.Modelli in Fluid: Templates, Layouts e Partials
- 9.1Creare e referenziare layout
- Sezioni facoltative
- 9.2Partials
- 9.2.1Partials semplici
- Sottocartelle per partial e layout e l’estensioni dei template
- 9.2.2Partials complessi
- Passare arguments a partials
- Esercizio
10.Gestione query e repository
- 10.1Struttura di un classe repository
- 10.2Funzioni repository per operazioni di scrittura
- 10.3Funzioni repository per operazioni di lettura
- 10.4Struttura predefinita di una query
- 10.4.1Approfondimento: Debugging (rimozione errori)
- 10.5Aggiustare una query
- Il codice in Extbase
- 10.5.1Determinare il risultato
- 10.5.2Manipolare il risultato
- 10.5.3Congiunzione logica
- 10.5.4SQL nativo
- 10.5.5Impostazioni della query
- 10.6Esempio: Cerca parola chiave nel titolo
- 10.7Ricerca dinamica nel Repository
- Convertire caratteri speciali (Escape)
- 10.8Approfondimento: L’oggetto
Request
11.Configurazione TypoScript e FlexForm
- 11.1TypoScript
- 11.1.1Ambito del Setup
- 11.1.2Struttura di base
- 11.1.3Opzioni:
view(vista) - 11.1.4Opzioni:
persistence(memoria) - 11.1.5Opzioni:
objects(oggetti) - Classe Autoloader
- 11.1.6Opzioni:
features(funzionalità) - 11.1.7Opzioni:
mvc - 11.1.8Opzioni:
settings(impostazioni) - 11.1.9Opzioni:
_LOCAL_LANG - 11.1.10Opzioni:
_CSS_DEFAULT_STYLE - 11.2FlexForm
- Sovrascrivere il TCA
- 11.2.1Configurazione FlexForm
- Salvare sempre il FlexForm
- Errore nella determinazione della configurazione
- 11.2.2SCA (Controllo di Azioni commutabili)
- FlexForm perseveranti
- 11.3TypoScript per le sezioni successive di questo Libro
- Accesso alle impostazioni in altre aree
- 11.4TypoScript per i moduli di backend
12.Validazione e gestione errori
- 12.1Momento di validazione
- 12.2Gestione errori
- 12.3Panoramica della convalida
- Quando avviene una validazione?
- 12.4Convalida delle proprietà
- 12.4.1Validatori Incorporati
- 12.4.2Validatori multipli
- 12.4.3Validatori propri
- Valore restituito da
isValid() - 12.5Convalida dei oggetti
- Cartella differente per i validatori di oggetti
- 12.6Convalida delle azioni
- 12.7Visualizzazione errori nei moduli
- 12.7.1Opzione 1: con mezzi presenti
- 12.7.2Opzione 2: con un ViewHelper
13.Relazioni
- 13.1Rapporti nel modello di dominio
- 13.2La matrice di configurazione (TCA)
- 13.2.1TCA:
ctrl - 13.2.2TCA:
interface - 13.2.3TCA:
types - 13.2.4TCA:
palettes - 13.2.5TCA:
columns - Accesso al database di basso livello
- 13.3Il processo CRUD per Post
- 13.3.1Preparazione
- 13.3.2Creare Post (Create)
- Esercizio
- 13.3.3Leggere Post (Read)
- 13.3.4Aggiornare Post (Update)
- 13.3.5Eliminare Post (Delete)
- 13.4Rapporto m:n con Tag come esempio
- 13.4.1Creare Tag nel backend
- 13.4.2Repository per Tag
- 13.4.3Rettifiche del Post Controller
- 13.4.4Rettifiche dei Templates e Partials
- 13.4.5Mostrare Tag in un elenco
- Attributo
iterationin for-ViewHelper - 13.5Rapporto 1:1 con Autori come esempio
- 13.5.1Creazione di utenti e gruppi Frontend
- 13.5.2Collegare l’oggetto di dominio autore alla tabella fe_users
- 13.5.3Definire l’autore per la creazione e modifica di un post
- 13.5.4Utente connesso come autore
- 13.6Commenti & AJAX
- 13.6.1Registrare l’azione AJAX
- 13.6.2Visualizzazione dei commenti
- 13.6.3Gestore JavaScript
- console.log e IE
- 13.6.4Azione AJAX nel Post Controller
- 13.6.5Definire tipo di pagina AJAX in TypoScript
- Commenti solo per gli utenti registrati
14.Creare i propri ViewHelper
- 14.1Dichiarazione del Namespace
- 14.2ViewHelper Testo
- 14.2.1Parametri via attributi
- 14.2.2Parametri via contenuto
- 14.2.3ViewHelper ‘TSFE’
- 14.3ViewHelper Tag
- Argomenti tag universali
- 14.4ViewHelper if (se)
- 14.5ViewHelper Widget
- 14.5.1Widget di ordinamento
- 14.5.2Widget da A alla Z
15.Multi-Lingua
- 15.1Configurazione lingua
- 15.2Etichette in lingua
- 15.3Etichette in lingua con segnaposti
- 15.4Sovrascrivere etichette in lingua con TypoScript
- 15.5Etichette in lingua in PHP
- 15.6Multi-Lingua per oggetti del dominio
- 15.6.1Database e TCA
- 15.6.2Creare lingue nel Backend
- 15.6.3Tradurre una registrazione
- 15.6.4Indirizzare il repository correttamente
- 15.6.5Creare registrazioni tradotte
16.Moduli di Backend
- 16.1Registerare il modulo
- 16.2Archivio per etichette in lingua
- 16.3TypoScript
- 16.4Repository commenti
- 16.5Controller commenti
- 16.6Templates
- 16.6.1Sintassi del markup nel Backend
- 16.6.2Azione “Index” (indicizzare)
- 16.6.3Azione “List” (elencare)
- 16.6.4Pulsanti CSH
- 16.6.5Menu “Action”
- 16.6.6Pulsante scelta rapida
- 16.6.7Pulsante icona
17.Mappatore di proprietà
- 17.1Esempio 1: Tipo semplice
- 17.2Esempio 2: Tipo complesso
- 17.3Configurazione del mappatore
- 17.4Configurazione del mappatore nella Stack del MVC
- IDE sintassi conforme
- 17.5Aspetti di sicurezza
- 17.6Sequenza conversioni dei tipi di dati
- 17.6.1Risoluzione automatica di TypeConverter
18.Best Practices
- 18.1Messaggi flash
- 18.1.1Code di multeplici messaggi flash
- 18.1.2Accesso nel Controller
- 18.2Caricare plugin con TypoScript
- 18.3Feed RSS
- 18.3.1Icona Font Awesome
- 18.3.2Registrare azioni RSS
- 18.3.3Azioni RSS nel controllore Blog
- 18.3.4Vista in XML
- 18.3.5Aggiungere il campo
crdate - 18.3.6Setup con TypoScript
- 18.4Il UriBuilder
- 18.5Caricare Archivi
- 18.5.1Rettifiche al modello di dominio
- 18.5.2Aggiunta di un campo Upload
- 18.5.3Rettifiche al controllore Blog
- 18.5.4Rettifiche al modello Blog
- 18.5.5Rettifiche TCA
- 18.6Caricare attraverso ‘FAL’
- 18.6.1Modello di dominio Blog
- 18.6.2Riferire ai file nel modello (FileReference)
- 18.6.3Banca dati
- 18.6.4TCA del modello di dominio Blog
- 18.6.5TypoScript
- 18.6.6Posizione di archiviazione
- 18.6.7Campo Upload nel Template Form-
- 18.6.8Immagine nel Template Show-
- 18.6.9ViewHelper
Form.Upload - 18.6.10Controllore Blog
- 18.6.11Registrazione del Convertitore
- 18.6.12Convertitore FileReference Caricati
- 18.7File Abstraction Layer (FAL)
- 18.7.1Banca dati
- 18.7.2Table Configuration Array (TCA)
- 18.7.3XLIFF
- 18.7.4Modello di dominio
- 18.7.5Template Show- controllore Post
- 18.8stdWrap nelle impostazioni
- 18.9Signal Slot Dispatcher
- 18.9.1Segnali
- 18.9.2Slot
- 18.9.3Segnali Incorporati
- 18.9.4Esempio del’uso di Segnali Incorporati
- Accesso in scrittura tramite slot
- 18.9.5Creazione dei propri Segnali
- 18.10API Categorie
- 18.11Modelli Extbase
- 18.12Compiti di pianificazione
- 18.13JSON View
- 18.13.1Resa JSON nel esempio Blog
19.PHP 7
- 19.1Messaggio di errore FileReference: “should be compatible”
20.Riferimenti
- 20.1File
ext_emconf.php - 20.2Tipi di campo nel FlexForm
- 20.2.1Campo testo
- 20.2.2Campo Data
- 20.2.3Casella di spunta (Checkbox)
- 20.2.4Area di testo (Textarea)
- 20.2.5Textarea con RTE
- 20.2.6Pulsanti di scelta
- 20.2.7Elenco di scelta (Selectbox)
- 20.2.8Selectbox (Multipla)
- 20.2.9Browser di pagine