SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
www.t3campitalia.it 2014
morini@gammsystem.com
T3Camp Italia
Milano, 14 e 15 Marzo 2014
Fluid Powered TYPO3
Maurizio Morini

Gamm System Srl
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Sono Maurizio Morini
socio fondatore di Gamm System
mi occupo della progettazione
di siti internet basati su TYPO3
2
Questo intervento si rivolge ai web designer senza
particolari conoscenze di sviluppo TYPO3
e tratta di templating attraverso il 

framework Fluid Powered TYPO3
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Contesto
3
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Evoluzione TYPO3
4
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Framework di sviluppo
5
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Pattern MVC
6
Model ControllerView
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
7
Fluid
Pattern MVC
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Fluid
Fluid è un linguaggio di templating che oltre a
formattare i contenuti permette di processare
l’output attraverso i suoi helper tag, meglio
conosciuti come ViewHelper
8
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
www.fedext.net
9
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
FedExt
Utilizza Fluid per ogni singolo aspetto di
design e layout dell’output TYPO3
quindi
mi posso concentrare sulla costruzione dei
templates utilizzando solamente Fluid assieme
ai soliti strumenti (html, css e javascript)
10
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Flux
• Flux è il cuore di ogni extension FedExt

ed il suo scopo è di integrare un Flex Form
dinamico direttamente all’interno del
template Fluid
• Flux permette di creare form fields di
configurazione all’interno degli header di
pagina e nei contenuti.
11
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
VHS
• VHS è una libreria di ViewHelpers che
permettono funzioni avanzate di
formattazione, interazione e
manipolazione dei dati all’interno di un
template Fluid
12
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Fluid Pages
• Fluid Pages è una extension con l’unico
compito di interagire con il backend
TYPO3 per il rendering dei template di
pagina Fluid
13
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Fluid Content
• Fluid Content, come Fluid Pages, ha il
compito di interagire con il backend
TYPO3 e permette ad un singolo template
Fluid di essere usato come content
element.
14
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
FedExt Core
15
Fluid
Content
Fluid
Pages
Flux
VHS
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Implementazione
16
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Creazione extension
• Creo con Extension Builder
una ext vuota:
fluidcontent_t3campitalia
• Creo un file di configurazione
typoscript
• Modifico ext_table.php per
includere il setup typoscript e
registrare la extension come
provider di page template e
content template
17
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Configuration/Typoscript/setup.txt
plugin.tx_fluidcontentt3campitalia.view {!
!
! templateRootPath = !
EXT:fluidcontent_t3campitalia/Resources/Private/Templates/!
!
! partialRootPath = !
EXT:fluidcontent_t3campitalia/Resources/Private/Partials/ !
!
! layoutRootPath = !
EXT:fluidcontent_t3campitalia/Resources/Private/Layouts/!
!
} !
18
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
ext_table.php
TYPO3CMSCoreUtilityExtensionManagementUtility::addStaticFile($_EXTKEY,
'Configuration/TypoScript', 'fluidcontent_t3campitalia');!
!
Tx_Flux_Core::registerProviderExtensionKey('fluidcontent_t3campitalia',
‘Page');!
!
Tx_Flux_Core::registerProviderExtensionKey('fluidcontent_t3campitalia',
'Content');!
19
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Templates Fluid
• Layouts: creano la struttura generale della
pagina e sono utilizzati da più templates
• Templates: sono il vero e proprio template
referenziato dal Controller per il rendering
dell’output della ext.
• Partials: sono templates di parti di codice
utilizzate in più Layouts/Templates
20
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
fluidcontent_t3campitalia
21
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resource/Private
22
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Public
23
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Fluidpages
24
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Frontend
25
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Layouts/Page.html
{namespace v=Tx_Vhs_ViewHelpers}!
<f:layout name="Page" />!
!
<v:asset.style name=“bootstrap-css" !
path="EXT:fluidcontent_t3campitalia/Resources/Public/bootstrap.min.css"/>!
<v:asset.style name="main-css" dependencies=“bootstrap-css" !
path="EXT:fluidcontent_t3campitalia/Resources/Public/main.css"/>!
!
<v:asset.script name="jquery" allowMoveToFooter="false"!
path="EXT:fluidcontent_t3campitalia/Resources/Public/jquery-1.9.0.min.js"/>!
<v:asset.script name="bootstrap-core" dependencies="jquery"!
path="EXT:fluidcontent_t3campitalia/Resources/Public/bootstrap.min.js"/>!
!
<div class=“container {settings.pageClass}"> !
! <f:render section="Header" partial=“Header" arguments="{_all}"/>!
! <f:render section="Content"></f:render> !
</div>
26
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
https://fedext.net/viewhelpers
27
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Templates/Page/FontPage.html
{namespace v=Tx_Vhs_ViewHelpers}!
{namespace flux=Tx_Flux_ViewHelpers}!
!
<f:layout name="Page" />!
!
<f:section name="Configuration">!
! <flux:flexform !
! ! id="front" !
! ! label="Front Page" !
! ! icon="{f:uri.resource(path: ‘Icons/t3camp_2014_mid.png')}">!
!
<!-- Input field variabile 'pageClass' -->!
<flux:flexform.field.input !
! ! ! label="classe pagina" !
! ! ! name="settings.pageClass" !
! ! ! default="Frontpage-css-class"/>!
!
Continua»
28
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Templates/Page/FontPage.html
<!-- Backend layout grid -->!
! ! <flux:flexform.grid> !
! ! ! <flux:flexform.grid.row> !
! ! ! ! <flux:flexform.grid.column !
! ! ! ! ! colPos="0" !
! ! ! ! ! label="Sidebar" !
! ! ! ! ! name=“Sidebar">!
! ! ! ! </flux:flexform.grid.column> !
!
! ! ! ! <flux:flexform.grid.column !
! ! ! ! ! colPos="1" label="Content" name=“Content">!
! ! ! ! </flux:flexform.grid.column> !
!
! ! ! </flux:flexform.grid.row> !
! ! </flux:flexform.grid> !
! </flux:flexform>!
</f:section>!
Continua»
29
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Templates/Page/FontPage.html
!
<f:section name="Content">!
! <div class=“row">!
!
! ! <div class="col-md-4" id="sidebar-col"> !
! ! ! <v:page.content.render column="0"></v:page.content.render> !
! ! </div> !
!
! ! <div class="col-md-8" id="content-col"> !
! ! ! <v:page.content.render column="1"></v:page.content.render> !
! ! </div> !! !
!
! </div>!
</f:section>!
!
</div>
30
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Backend: header di pagina
31
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Backend: header di pagina
32
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Partials/Header.html
{namespace v=Tx_Vhs_ViewHelpers}!
<f:layout name="Page"/>!
!
! <f:section name="Header">!
!
! ! <v:switch value="{page.uid}">!
! ! ! <v:case case="113" break="true">!
!
! ! ! ! <header class="jumbotron" role="banner">!
! ! ! ! ! <f:image !
src="EXT:fluidcontent_t3campitalia/Resources/Public/Icons/logo.png" !
! ! ! ! ! alt="Logo" !
! ! ! ! ! class=“pull-left"/>!
!
! ! ! ! ! <h1>Pagina T3CampItalia</h1>!
! ! ! ! </header>!
!
! ! ! </v:case>!
Continua»
33
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Partials/Header.html
!
! ! ! <v:case case="default">!
!
! ! ! ! <header class="jumbotron" role="banner">!
!
! ! ! ! ! <h1>Page</h1>!
!
! ! ! ! </header>!
!
! ! ! </v:case>!
! ! </v:switch>!
! </f:section>!
!
</div>!
34
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Frontend
35
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Fluidcontent
36
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Backend: header di pagina
37
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Layouts/Content.html
<f:layout name="Content"/>!
!
<f:render section="Main"/>
38
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Templates/Content/Alert.html
{namespace flux=Tx_Flux_ViewHelpers}!
{namespace v=Tx_Vhs_ViewHelpers}!
<f:layout name="Content" />!
!
<f:section name="Configuration">!
! <flux:flexform wizardTab="Media" !
! ! label="Alert box" !
! ! description="Esempio di Fluidcontent per T3CampItalia 2014"
id="alert" !
! ! icon="{v:extension.path.resources(path: ‘Icons/
t3camp_2014_mid.png')}">!
!
! ! <flux:flexform.field.input name="header" label="Header" />!
! ! <flux:flexform.field.input name="closeLinkText" label="Close Link"/>!
! ! <flux:flexform.field.select name="class"
items="warning,info,success,danger" default="warning" label="Type" />!
! ! <flux:flexform.field.checkbox label="Is Block?" name="isBlock" />!
! ! !
Continua»
39
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Templates/Content/Alert.html
! ! <flux:flexform.grid>!
! ! ! <flux:flexform.grid.row>!
! ! ! ! <flux:flexform.grid.column>!
!
! ! ! ! ! <flux:flexform.content name="content" />!
!
! ! ! ! </flux:flexform.grid.column>!
! ! ! </flux:flexform.grid.row>!
! ! </flux:flexform.grid>!
! </flux:flexform>! !
</f:section>!
!
!
!
!
Continua»
40
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Resources/Private/Templates/Content/Alert.html
!
!
<f:section name="Main">!
! <div class="alert alert-{class} {f:if(condition: isBlock, then: ‘alert-
block')}">!
!
! ! <f:if condition="{closeLinkText}">!
! ! ! <a class="close" data-dismiss=“alert">!
! ! ! ! <f:format.raw>{closeLinkText}</f:format.raw>!
! ! ! </a>!
! ! </f:if>!
!
! ! <f:if condition="{header}">!
! ! ! <h1 class="alert-heading">{header}</h1>!
! ! </f:if>!
!
! ! <flux:flexform.renderContent area="content" />!
! </div>!
</f:section>!
41
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Backend: Fluidcontent disponibile in add content
42
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Backend: Edito il Fluidconten
43
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Backend: Edito il Fluidconten
44
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Backend: Edito il Fluidconten
45
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Backend: header di pagina
46
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Conclusioni
47
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Confronto con TV
• Nessuna informazioni di templates è memorizzata nel
database
• Quando si cambia il template non bisogna rimappare i
contenuti
• Typoscript viene utilizzato solo per configurazioni: con
FedExt i menu vengono creati nel template Fluid
• Fluid è utilizzato per tutti gli aspetti di definizione dei
templates e per processare i dati da visualizzare.
• Attraverso Flux posso parametrizzare e configurare i
template di pagina e di contenuti, fornendo tantissime
opzioni agli editori.
48
Pagina
www.t3campitalia.it 2014
morini@gammsystem.com
Fluid Powered TYPO3
Riferimenti
49
Fluid Power TYPO3: 

https://fedext.net/

https://github.com/FluidTYPO3	

Documentazione Fluid Power TYPO3: 

https://github.com/FluidTYPO3/documentation	

DocumentazioneViewHelpers: 

https://fedext.net/viewhelpers	

!
!
www.t3campitalia.it 2014
morini@gammsystem.com
T3Camp Italia
Milano, 14 e 15 Marzo 2014
Fluid Powered TYPO3
Maurizio Morini

Gamm System Srl

Weitere ähnliche Inhalte

Ähnlich wie Fluid powered TYPO3

Le 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizioneLe 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizioneNicola Della Marina
 
TYPO3 sfida il mondo Enterprise
TYPO3 sfida il mondo EnterpriseTYPO3 sfida il mondo Enterprise
TYPO3 sfida il mondo EnterpriseMauro Lorenzutti
 
TYPO3: uno sguardo al repository a caccia di estensioni e alcune curiosità
TYPO3: uno sguardo al repository a caccia di estensioni e alcune curiositàTYPO3: uno sguardo al repository a caccia di estensioni e alcune curiosità
TYPO3: uno sguardo al repository a caccia di estensioni e alcune curiositàRino Razzi
 
Repository estensioni - curiosita-definitivo
Repository   estensioni - curiosita-definitivoRepository   estensioni - curiosita-definitivo
Repository estensioni - curiosita-definitivoRino Razzi
 
Luca Peressini - 20 moduli in 20 minuti
Luca Peressini - 20 moduli in 20 minutiLuca Peressini - 20 moduli in 20 minuti
Luca Peressini - 20 moduli in 20 minutiMeet Magento Italy
 
Content marketing machine [Web Marketing Expo]
Content marketing machine [Web Marketing Expo]Content marketing machine [Web Marketing Expo]
Content marketing machine [Web Marketing Expo]Web In Fermento
 
Internazionalizzazione web - SMAU - Milano Ottobre 2013
Internazionalizzazione web - SMAU - Milano Ottobre 2013Internazionalizzazione web - SMAU - Milano Ottobre 2013
Internazionalizzazione web - SMAU - Milano Ottobre 2013Achille Falzone
 
Stato dell'arte di Plone 5 e oltre
Stato dell'arte di Plone 5 e oltreStato dell'arte di Plone 5 e oltre
Stato dell'arte di Plone 5 e oltreStefano Marchetti
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Mauro Lorenzutti
 
Nicola Della Marina: Magento Frontend next level
Nicola Della Marina: Magento Frontend next levelNicola Della Marina: Magento Frontend next level
Nicola Della Marina: Magento Frontend next levelMeet Magento Italy
 
10 aspetti SEO da non trascurare mai in un E-commerce
10 aspetti SEO da non trascurare mai in un E-commerce10 aspetti SEO da non trascurare mai in un E-commerce
10 aspetti SEO da non trascurare mai in un E-commerceBizup
 
Perché WordPress? WordCamp Catania 2019
Perché WordPress? WordCamp Catania 2019 Perché WordPress? WordCamp Catania 2019
Perché WordPress? WordCamp Catania 2019 Cristiano Zanca
 
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per Simone Bussoni
 
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domainTYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domaingammsystem
 

Ähnlich wie Fluid powered TYPO3 (20)

Le 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizioneLe 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizione
 
Template Multidevice con TYPO3
Template Multidevice con TYPO3Template Multidevice con TYPO3
Template Multidevice con TYPO3
 
TYPO3 sfida il mondo Enterprise
TYPO3 sfida il mondo EnterpriseTYPO3 sfida il mondo Enterprise
TYPO3 sfida il mondo Enterprise
 
TYPO3: uno sguardo al repository a caccia di estensioni e alcune curiosità
TYPO3: uno sguardo al repository a caccia di estensioni e alcune curiositàTYPO3: uno sguardo al repository a caccia di estensioni e alcune curiosità
TYPO3: uno sguardo al repository a caccia di estensioni e alcune curiosità
 
Repository estensioni - curiosita-definitivo
Repository   estensioni - curiosita-definitivoRepository   estensioni - curiosita-definitivo
Repository estensioni - curiosita-definitivo
 
Luca Peressini - 20 moduli in 20 minuti
Luca Peressini - 20 moduli in 20 minutiLuca Peressini - 20 moduli in 20 minuti
Luca Peressini - 20 moduli in 20 minuti
 
Content marketing machine [Web Marketing Expo]
Content marketing machine [Web Marketing Expo]Content marketing machine [Web Marketing Expo]
Content marketing machine [Web Marketing Expo]
 
Internazionalizzazione web - SMAU - Milano Ottobre 2013
Internazionalizzazione web - SMAU - Milano Ottobre 2013Internazionalizzazione web - SMAU - Milano Ottobre 2013
Internazionalizzazione web - SMAU - Milano Ottobre 2013
 
Seo Audit Demo
Seo Audit DemoSeo Audit Demo
Seo Audit Demo
 
Stato dell'arte di Plone 5 e oltre
Stato dell'arte di Plone 5 e oltreStato dell'arte di Plone 5 e oltre
Stato dell'arte di Plone 5 e oltre
 
TYPO3 CMS 8.6 - Le novità
TYPO3 CMS 8.6 - Le novitàTYPO3 CMS 8.6 - Le novità
TYPO3 CMS 8.6 - Le novità
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3
 
Nicola Della Marina: Magento Frontend next level
Nicola Della Marina: Magento Frontend next levelNicola Della Marina: Magento Frontend next level
Nicola Della Marina: Magento Frontend next level
 
Zurb workshop
Zurb workshop Zurb workshop
Zurb workshop
 
10 aspetti SEO da non trascurare mai in un E-commerce
10 aspetti SEO da non trascurare mai in un E-commerce10 aspetti SEO da non trascurare mai in un E-commerce
10 aspetti SEO da non trascurare mai in un E-commerce
 
Perché WordPress? WordCamp Catania 2019
Perché WordPress? WordCamp Catania 2019 Perché WordPress? WordCamp Catania 2019
Perché WordPress? WordCamp Catania 2019
 
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
 
TYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novitàTYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novità
 
6. Il browser
6. Il browser6. Il browser
6. Il browser
 
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domainTYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
 

Fluid powered TYPO3