際際滷

際際滷Share a Scribd company logo
TYPO3 CMS 7.6 - Le novit
Riassunto delle funzionalit, modi che e aggiornamenti
Creato da:
Patrick Lobacher e Michael Schams
Traduzione italiana di:
Roberto Torresani (roberto.torresani (at) typo3.org)
12/November/2015
Creative Commons BY-NC-SA 3.0
TYPO3 CMS 7.6 - Le novit
Indice delle sezioni
Introduzione
Interfaccia utente Backend
TScon鍖g & TypoScript
In-Depth Changes
Extbase & Fluid
Funzionalit deprecate/rimosse
Fonti e autori
TYPO3 CMS 7.6 - Le novit
Introduzione
Introduzione
I fatti in breve
TYPO3 CMS 7.6 - Le novit
Introduzione
TYPO3 CMS 7.6 - I fatti in breve
Data di rilascio: 10 Novembre 2015
Tipo di rilascio: Long Term Support (LTS) Release
Visione: Embrace, Innovate, Deliver
TYPO3 CMS 7.6 - Le novit
Introduzione
Requisiti di sistema
PHP*: v5.5.0 - v5.6.x
MySQL: v5.5.x - v5.6.x (no strict mode)
Spazio disco: min 200 MB
Impostazioni PHP:
memory_limit >= 128M
max_execution_time >= 240s
max_input_vars >= 1500
l'opzione di compilazione disable-ipv6 non deve essere usata
Il Backend richiede IE >= 9 o qualsiasi altro browser moderno
*) Altri dettagli: Requisiti minimi PHP per TYPO3 CMS 7
TYPO3 CMS 7.6 - Le novit
Introduzione
Sviluppo e tempi di rilascio
TYPO3 CMS 7.6 - Le novit
Introduzione
TYPO3 CMS Roadmap
Date di rilascio stimate e loro obiettivo principale:
v7.0 02/Dec/2014 Revisione Backend Vol. 1
v7.1 24/Feb/2015 Pulizia core & ottimizzazioni
v7.2 28/Apr/2015 Frontend
v7.3 16/Giu/2015 Ecosistema Pacchetti, Composer
e gestione estensioni
v7.4 04/Ago/2015 Revisione Backend Vol 2
v7.5 29/Sep/2015 Finalizzazione
v7 LTS 10/Nov/2015 TYPO3 CMS 7 LTS (Long Term Support)
https://typo3.org/typo3-cms/roadmap/
http://typo3.org/news/article/embrace-and-innovate-typo3-cms-7/
TYPO3 CMS 7.6 - Le novit
Introduzione
Installazione
Procedura uf ciale di installazione su Linux/Mac OS X
(DocumentRoot ad esempio /var/www/site/htdocs):
$ cd /var/www/site
$ wget --content-disposition get.typo3.org/7.6
$ tar xzf typo3_src-7.6.0.tar.gz
$ cd htdocs
$ ln -s ../typo3_src-7.6.0 typo3_src
$ ln -s typo3_src/index.php
$ ln -s typo3_src/typo3
$ touch FIRST_INSTALL
Link simbolici in Microsoft Windows:
Usa junction in Windows XP/2000
Usa mklink in Windows Vista e Windows 7
TYPO3 CMS 7.6 - Le novit
Introduzione
Aggiornamento a TYPO3 CMS 7.x
Aggiornamenti possibili solo da TYPO3 CMS 6.2 LTS
TYPO3 CMS < 6.2 deve essere prima aggiornato a TYPO3 CMS 6.2 LTS
Istruzioni per l'aggiornamento:
http://wiki.typo3.org/Upgrade#Upgrading_to_7.6
Guida uf ciale TYPO3 "TYPO3 Installation and Upgrading":
http://docs.typo3.org/typo3cms/InstallationGuide
Approcio generale:
Veri ca i requisiti minimi di sistema (PHP, MySQL, etc.)
Veri ca deprecation_*.log nella vecchia istanza TYPO3
Aggiorna tutte le estensioni all'ultima versione
Imposta il nuovo sorgente ed esegui Install Tool Upgrade Wizard
Veri ca modulo startup per gli utente di backend (opzionale)
TYPO3 CMS 7.6 - Le novit
Interfaccia utente Backend
Capitolo 1:
Interfaccia utente Backend
TYPO3 CMS 7.6 - Le novit
Interfaccia utente Backend
Impostazioni di noti ca del Workspaces (1)
Le modalit e il comportamento delle impostazioni di noti ca sono state
snellite
(una procedura guidata consente di aggiornare le impostazioni)
TYPO3 CMS 7.6 - Le novit
Interfaccia utente Backend
Impostazioni di noti ca del Workspaces (2)
Lo stage publishing execute riceve le opzioni di con gurazione
TYPO3 CMS 7.6 - Le novit
Interfaccia utente Backend
Funzione di ricerca nell'Element Browser
La ricerca le 竪 stata aggiunta all'Element Browser di TYPO3 (funziona
ricorsivamente)
TYPO3 CMS 7.6 - Le novit
TScon g  TypoScript
Capitolo 2:
TScon g  TypoScript
TYPO3 CMS 7.6 - Le novit
TScon g  TypoScript
indexed_search: Parametri
Le seguenti propriet TypoScript possono essere con gurate per
indexed_search:
titleCropAfter = 50
titleCropSignifier = ...
summaryCropAfter = 180
summaryCropSignifier =
hrefInSummaryCropAfter = 60
hrefInSummaryCropSignifier = ...
markupSW_summaryMax = 300
markupSW_postPreLgd = 60
markupSW_postPreLgd_offset = 5
markupSW_divider = ...
Le chiavi possono essere:
plugin.tx_indexedsearch.results.
plugin.tx_indexedsearch.settings.results.
Ogni propriet disponde delle funzionalit stdWrap
TYPO3 CMS 7.6 - Le novit
TScon g  TypoScript
indexed_search: Separatore di percorso con gurabile
E' stata aggiunta una nuova opzione di con gurazione TypoScript:
breadcrumbWrap
Essa permette di con gurare il separatore di percorso di pagina nei
risultati di indexed_search
Questa opzione supporta la sintassi TypoScript option split.
La con gurazione di default 竪 /:
plugin.tx_indexedsearch.settings.breadcrumbWrap = / || /
TYPO3 CMS 7.6 - Le novit
TScon g  TypoScript
indexed_search: Parametro no_cache con gurabile
Una nuova opzione di con gurazione TypoScript 竪 stata aggiunta:
forwardSearchWordsInResultLink.no_cache
Con questo controllo viene aggiunto il parametro no_cache ai link
delle pagine per indexed_search
// for Indexed Search Extbase plugins
plugin.tx_indexedsearch.settings.forwardSearchWordsInResultLink.no_cache = 1
// for plugins based on AbstractPlugin
plugin.tx_indexedsearch.forwardSearchWordsInResultLink.no_cache = 1
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Capitolo 3:
Modi che rilevanti
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Install Tool con Bootstrap (1)
L'Install Tool 竪 basato su Bootstrap - per la parte di installazione:
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Install Tool con Bootstrap (2)
L'Install Tool 竪 basato su Bootstrap - per la parte di con gutazione:
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Protezione CSRF per i Plugin di Frontend
Una nuova classe permette l'uso delle API FormProtection nel frontend
Queste implementano un protezione CSRF (Cross-Site Request Forgery)
$formToken = TYPO3CMSCoreFormProtectionFormProtectionFactory::get()-getFormProtection()-
generateToken(news, edit, $uid);
if (
$dataHasBeenSubmitted
 TYPO3CMSCoreFormProtectionFormProtectionFactory::get()-validateToken(
TYPO3CMSCoreUtilityGeneralUtility::_POST(formToken), User setup, edit)) {
// processes the data
}
else {
// invalid token!
}
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Tab per LinkBrowser (1)
Questa nuova funzionalit permette di estendere il LinkBrowser con
nuovi tab
Ogni tab 竪 gestito fa un cosiddtto LinkHandler, il quale deve
implementare le seguenti Interfacce:
TYPO3CMSRecordlistLinkHandlerLinkHandlerInterface
I LinkHandler sono registrati in PageTScon g come segue:
file {
handler = TYPO3CMSRecordlistLinkHandlerFileLinkHandler
label = LLL:EXT:lang/locallang_browse_links.xlf:file
displayAfter = page
scanAfter = page
configuration {
customConfig = passed to the handler
}
}
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Tab per LinkBrowser (2)
Le opzioni displayBefore e displayAfter de niscono la posizione
dei tab
Le opzioni scanBefore e scanAfter de niscono l'ordine in cui gli
handler sono elaborati quando vengono veri cati i link esistenti
$GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][LinkBrowser][hooks][1444048118] = [
handler = VendorExtMyClass::class,
before = [], // optional
after = [] // optional
];
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
API del modulo Template (1)
Le nuove API del modulo Template API hanno lo scopo di normalizzare
l'implementazione di DocHeaders
Esempio 1: aggiungere un bottone
$openInNewWindowButton = $this-moduleTemplate-getDocHeaderComponent()-getButtonBar()
-makeLinkButton()
-sethref(#)
-setTitle($this-getLanguageService()-sL(
LLL:EXT:lang/locallang_core.xlf:labels.openInNewWindow, TRUE
))
-setIcon($this-iconFactory-getIcon(actions-window-open, Icon::SIZE_SMALL))
-setOnClick($aOnClick);
$this-moduleTemplate-getDocHeaderComponent()-getButtonBar()
-addButton($openInNewWindowButton, ButtonBar::BUTTON_POSITION_RIGHT);
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
API del modulo Template (2)
Esempio 2: aggiungere un menu con delle voci
$languageMenu = $this-moduleTemplate-getDocHeaderComponent()
-getModuleMenuRegistry()-makeMenu()
-setIdentifier(_langSelector)
-setLabel($this-getLanguageService()-sL(
LLL:EXT:lang/locallang_general.xlf:LGL.language, TRUE
));
$menuItem = $languageMenu-makeMenuItem()
-setTitle($lang[title] . $newTranslation)
-sethref($href);
if((int)$lang[uid] === $currentLanguage) {
$menuItem-setActive(TRUE);
}
$languageMenu-addMenuItem($menuItem);
$this-moduleTemplate-getDocHeaderComponent()-getModuleMenuRegistry()-addMenu($languageMenu);
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Routing PSR-7 per le richieste AJAX di Backend
Per aggiungere un route per una richiesta AJAX, il le
Configuration/Backend/AjaxRoutes.php
pu嘆 essere creato con il seguente contenuto:
return [
// fai qualcosa
unique_route_name = [
path = /toolcollection/some-action,
target = VendorControllerSomeController::class . ::myAction,
]
];
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Hook OpenID getUserRecord
Due hook sono stati aggiunti al servizio OpenID (1/2)
Hook 1:
$GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][openid][getUserRecord]
Modi ca il record utente dopo che esso 竪 stato recuperato, o:
Crea un nuovo record se nessuno 竪 stato trovato
I parametri record, response e authInfo sono passati all'hook
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Hook OpenID authRequest
Due hook sono stati aggiunti al servizio OpenID (2/2)
Hook 2:
$GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][openid][authRequest]
Modi ca la richiesta di autenticazione, prima che essa sia inviata
Pu嘆 essere usato per richiedere attributi aggiuntivi come un nickname
dal server OpenID per esempio
I parametri authRequest e authInfo sono passati all'hook
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Hook e Signals (1)
Ora 竪 possibile modi care la directory di upload restituita da
BackendUserAuthentication::getDefaultUploadFolder()
Registra l'hook nel le ext_localconf.php come segue:
$GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][t3lib/class.t3lib_userauthgroup.php]
[getDefaultUploadFolder][] =
VendorMyExtensionHooksDefaultUploadFolder::class . -getDefaultUploadFolder;
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Hooks e Signals (2)
Esempio:
?php
namespace VendorMyExtensionHooks;
use TYPO3CMSCoreAuthenticationBackendUserAuthentication;
use TYPO3CMSCoreResourceFolder;
/**
* Class DefaultUploadFolder
*/
class DefaultUploadFolder {
/**
* Get default upload folder
* If there is a folder present with the same name as the last part of the table name use that folder.
* @param array $params
* @param BackendUserAuthentication $backendUserAuthentication
* @return Folder
*/
public function getDefaultUploadFolder($params, BackendUserAuthentication $backendUserAuthentication)
{
[...]
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Hooks e Signals (3)
Esempio (continua):
[...]
/** @var Folder $uploadFolder */
$uploadFolder = $params[uploadFolder];
$pid = $params[pid];
$table = $params[table];
$field = $params[field];
$matches = [];
if (!empty($uploadFolder)  preg_match(/_([a-z]+)$/, $table, $matches)) {
$folderName = $matches[1];
if ($uploadFolder-hasFolder($folderName)) {
$uploadFolder = $uploadFolder-getSubfolder($folderName);
}
}
return $uploadFolder;
}
}
TYPO3 CMS 7.6 - Le novit
In-Depth Changes
Varie
L'uso del campo TCA di tipo select richiede di speci care l'opzione
renderType
I valori validi sono:
renderType = selectMultipleSideBySide,
renderType = selectCheckBox,
renderType = selectSingle,
renderType = selectSingleBox,
renderType = selectTree,
TYPO3 CMS 7.6 - Le novit
Extbase  Fluid
Capitolo 4:
Extbase  Fluid
TYPO3 CMS 7.6 - Le novit
Extbase  Fluid
Relazione tra stesse tabelle
Ora 竪 possibile usare un domain model dove un oggetto 竪 direttamente
connesso ad un altro oggetto della stessa classe
namespace VendorExtensionDomainModel;
class A {
/**
* @var VendorExtensionDomainModelA
*/
protected $parent;
}
namespace VendorExtensionDomainModel;
class A {
/**
* @var VendorExtensionDomainModelB
*/
protected $x;
/**
* @var VendorExtensionDomainModelB
*/
protected $y;
}
TYPO3 CMS 7.6 - Le novit
Extbase  Fluid
Opzione absolute per Image-ViewHelpers
La nuova opzione absolute forza ImageViewhelper e
Uri/ImageViewHelper a restituire un URL assoluto
Esempio 1 (ImageViewhelper):
f:image image={file} width=400 height=375 absolute=1 /f:image
// Output
img alt=alt set in image record
src=http://example.com/fileadmin/_processed_/323223424.png
width=400 height=375 /
Esempio 2 (Uri/ImageViewHelper):
f:uri.image image={file} width=400 height=375 absolute=1 /f:uri
// Output
http://example.com/fileadmin/_processed_/323223424.png
TYPO3 CMS 7.6 - Le novit
Extbase  Fluid
Togliere spazi bianchi tra i tag HTML
Il nuovo ViewHelper spaceless rimuove spazi ridondanti tra i tag
HTML preservando gli spazi bianchi che sono presenti dentro i tag HTML:
f:spaceless
div
div
divtext
text/div
/div
/div
Output:
divdivdivtext
text/div/div/div
TYPO3 CMS 7.6 - Le novit
Extbase  Fluid
Con gurazione RootLevel
Il RootLevel di una tabella pu嘆 essere con gurato in TCA
(esso de nisce dove possono essere gestiti i record di una tabella nel sistema)
0: solo nell'albero delle pagine
1: solo nella root page (PID 0)
-1: entrambi, root page e albero delle pagine
Con gurazione TCA:
$GLOBALS[TCA][tx_myext_domain_model_record][ctrl][rootLevel] = -1;
TYPO3 CMS 7.6 - Le novit
Funzionalit deprecate/rimosse
Capitolo 5:
Funzionalit deprecate/rimosse
TYPO3 CMS 7.6 - Le novit
Funzionalit deprecate/rimosse
AJAX Route
Gli handler AJAX registrati nel core da
ExtensionManagementUtility::registerAjaxHandler() sono
stati sostituiti da AJAX route, che sono registrati in
Configuration/Backend/AjaxRoutes.php
Una lista completa (vecchi/nuovi) 竪 disponibile alla pagina:
Breaking-69916-RegisteredAJAXHandlersReplacedByRoutes.rst
TYPO3 CMS 7.6 - Le novit
Funzionalit deprecate/rimosse
Varie
L'estensione mediace 竪 stata spostata nel repository delle estensioni
TYPO3
La con gurazione TCA dynamicConfigFile all'interno della sezione
ctrl di una tabella 竪 stata deprecata. Ora la con gurazione della
tabella si trova come Configuration/TCA/table_name.php.
La funzione jumpurl 竪 stata rimossa dal core ed 竪 disponibile come un
estensione nel repository delle estensioni TYPO3
TYPO3 CMS 7.6 - Le novit
Fonti e autori
Capitolo 6:
Fonti e autori
TYPO3 CMS 7.6 - Le novit
Fonti e autori
Fonti
TYPO3 News:
http://typo3.org/news
Note sulla release:
http://wiki.typo3.org/TYPO3_CMS_7.6.0
INSTALL.md e ChangeLog
typo3/sysext/core/Documentation/Changelog/7.6/*
TYPO3 Bug-/Segnalazioni:
https://forge.typo3.org/projects/typo3cms-core
Archivio TYPO3 Git:
https://git.typo3.org/Packages/TYPO3.CMS.git
https://git.typo3.org/Packages/TYPO3.Fluid.git
TYPO3 CMS 7.6 - Le novit
Fonti e autori
TYPO3 CMS What's New 際際滷s:
Patrick Lobacher
(Ricerca, raccolta informazioni e versione tedesca)
Michael Schams
(Leader del progetto e versione inglese)
Tradotto da:
Andrey Aksenov, Pierrick Caillon, Sergio Catala, Jigal van Hemert, Michel Mix,
Sinisa Mitrovic, Angeliki Plati, Nena Jelena Radovic, Roberto Torresani
http://typo3.org/download/release-notes/whats-new
Licensed under Creative Commons BY-NC-SA 3.0
TYPO3 CMS 7.6 - Le novit

More Related Content

TYPO3 CMS 7.6 - Le novita

  • 1. TYPO3 CMS 7.6 - Le novit Riassunto delle funzionalit, modi che e aggiornamenti Creato da: Patrick Lobacher e Michael Schams Traduzione italiana di: Roberto Torresani (roberto.torresani (at) typo3.org) 12/November/2015 Creative Commons BY-NC-SA 3.0
  • 2. TYPO3 CMS 7.6 - Le novit Indice delle sezioni Introduzione Interfaccia utente Backend TScon鍖g & TypoScript In-Depth Changes Extbase & Fluid Funzionalit deprecate/rimosse Fonti e autori TYPO3 CMS 7.6 - Le novit
  • 3. Introduzione Introduzione I fatti in breve TYPO3 CMS 7.6 - Le novit
  • 4. Introduzione TYPO3 CMS 7.6 - I fatti in breve Data di rilascio: 10 Novembre 2015 Tipo di rilascio: Long Term Support (LTS) Release Visione: Embrace, Innovate, Deliver TYPO3 CMS 7.6 - Le novit
  • 5. Introduzione Requisiti di sistema PHP*: v5.5.0 - v5.6.x MySQL: v5.5.x - v5.6.x (no strict mode) Spazio disco: min 200 MB Impostazioni PHP: memory_limit >= 128M max_execution_time >= 240s max_input_vars >= 1500 l'opzione di compilazione disable-ipv6 non deve essere usata Il Backend richiede IE >= 9 o qualsiasi altro browser moderno *) Altri dettagli: Requisiti minimi PHP per TYPO3 CMS 7 TYPO3 CMS 7.6 - Le novit
  • 6. Introduzione Sviluppo e tempi di rilascio TYPO3 CMS 7.6 - Le novit
  • 7. Introduzione TYPO3 CMS Roadmap Date di rilascio stimate e loro obiettivo principale: v7.0 02/Dec/2014 Revisione Backend Vol. 1 v7.1 24/Feb/2015 Pulizia core & ottimizzazioni v7.2 28/Apr/2015 Frontend v7.3 16/Giu/2015 Ecosistema Pacchetti, Composer e gestione estensioni v7.4 04/Ago/2015 Revisione Backend Vol 2 v7.5 29/Sep/2015 Finalizzazione v7 LTS 10/Nov/2015 TYPO3 CMS 7 LTS (Long Term Support) https://typo3.org/typo3-cms/roadmap/ http://typo3.org/news/article/embrace-and-innovate-typo3-cms-7/ TYPO3 CMS 7.6 - Le novit
  • 8. Introduzione Installazione Procedura uf ciale di installazione su Linux/Mac OS X (DocumentRoot ad esempio /var/www/site/htdocs): $ cd /var/www/site $ wget --content-disposition get.typo3.org/7.6 $ tar xzf typo3_src-7.6.0.tar.gz $ cd htdocs $ ln -s ../typo3_src-7.6.0 typo3_src $ ln -s typo3_src/index.php $ ln -s typo3_src/typo3 $ touch FIRST_INSTALL Link simbolici in Microsoft Windows: Usa junction in Windows XP/2000 Usa mklink in Windows Vista e Windows 7 TYPO3 CMS 7.6 - Le novit
  • 9. Introduzione Aggiornamento a TYPO3 CMS 7.x Aggiornamenti possibili solo da TYPO3 CMS 6.2 LTS TYPO3 CMS < 6.2 deve essere prima aggiornato a TYPO3 CMS 6.2 LTS Istruzioni per l'aggiornamento: http://wiki.typo3.org/Upgrade#Upgrading_to_7.6 Guida uf ciale TYPO3 "TYPO3 Installation and Upgrading": http://docs.typo3.org/typo3cms/InstallationGuide Approcio generale: Veri ca i requisiti minimi di sistema (PHP, MySQL, etc.) Veri ca deprecation_*.log nella vecchia istanza TYPO3 Aggiorna tutte le estensioni all'ultima versione Imposta il nuovo sorgente ed esegui Install Tool Upgrade Wizard Veri ca modulo startup per gli utente di backend (opzionale) TYPO3 CMS 7.6 - Le novit
  • 10. Interfaccia utente Backend Capitolo 1: Interfaccia utente Backend TYPO3 CMS 7.6 - Le novit
  • 11. Interfaccia utente Backend Impostazioni di noti ca del Workspaces (1) Le modalit e il comportamento delle impostazioni di noti ca sono state snellite (una procedura guidata consente di aggiornare le impostazioni) TYPO3 CMS 7.6 - Le novit
  • 12. Interfaccia utente Backend Impostazioni di noti ca del Workspaces (2) Lo stage publishing execute riceve le opzioni di con gurazione TYPO3 CMS 7.6 - Le novit
  • 13. Interfaccia utente Backend Funzione di ricerca nell'Element Browser La ricerca le 竪 stata aggiunta all'Element Browser di TYPO3 (funziona ricorsivamente) TYPO3 CMS 7.6 - Le novit
  • 14. TScon g TypoScript Capitolo 2: TScon g TypoScript TYPO3 CMS 7.6 - Le novit
  • 15. TScon g TypoScript indexed_search: Parametri Le seguenti propriet TypoScript possono essere con gurate per indexed_search: titleCropAfter = 50 titleCropSignifier = ... summaryCropAfter = 180 summaryCropSignifier = hrefInSummaryCropAfter = 60 hrefInSummaryCropSignifier = ... markupSW_summaryMax = 300 markupSW_postPreLgd = 60 markupSW_postPreLgd_offset = 5 markupSW_divider = ... Le chiavi possono essere: plugin.tx_indexedsearch.results. plugin.tx_indexedsearch.settings.results. Ogni propriet disponde delle funzionalit stdWrap TYPO3 CMS 7.6 - Le novit
  • 16. TScon g TypoScript indexed_search: Separatore di percorso con gurabile E' stata aggiunta una nuova opzione di con gurazione TypoScript: breadcrumbWrap Essa permette di con gurare il separatore di percorso di pagina nei risultati di indexed_search Questa opzione supporta la sintassi TypoScript option split. La con gurazione di default 竪 /: plugin.tx_indexedsearch.settings.breadcrumbWrap = / || / TYPO3 CMS 7.6 - Le novit
  • 17. TScon g TypoScript indexed_search: Parametro no_cache con gurabile Una nuova opzione di con gurazione TypoScript 竪 stata aggiunta: forwardSearchWordsInResultLink.no_cache Con questo controllo viene aggiunto il parametro no_cache ai link delle pagine per indexed_search // for Indexed Search Extbase plugins plugin.tx_indexedsearch.settings.forwardSearchWordsInResultLink.no_cache = 1 // for plugins based on AbstractPlugin plugin.tx_indexedsearch.forwardSearchWordsInResultLink.no_cache = 1 TYPO3 CMS 7.6 - Le novit
  • 18. In-Depth Changes Capitolo 3: Modi che rilevanti TYPO3 CMS 7.6 - Le novit
  • 19. In-Depth Changes Install Tool con Bootstrap (1) L'Install Tool 竪 basato su Bootstrap - per la parte di installazione: TYPO3 CMS 7.6 - Le novit
  • 20. In-Depth Changes Install Tool con Bootstrap (2) L'Install Tool 竪 basato su Bootstrap - per la parte di con gutazione: TYPO3 CMS 7.6 - Le novit
  • 21. In-Depth Changes Protezione CSRF per i Plugin di Frontend Una nuova classe permette l'uso delle API FormProtection nel frontend Queste implementano un protezione CSRF (Cross-Site Request Forgery) $formToken = TYPO3CMSCoreFormProtectionFormProtectionFactory::get()-getFormProtection()- generateToken(news, edit, $uid); if ( $dataHasBeenSubmitted TYPO3CMSCoreFormProtectionFormProtectionFactory::get()-validateToken( TYPO3CMSCoreUtilityGeneralUtility::_POST(formToken), User setup, edit)) { // processes the data } else { // invalid token! } TYPO3 CMS 7.6 - Le novit
  • 22. In-Depth Changes Tab per LinkBrowser (1) Questa nuova funzionalit permette di estendere il LinkBrowser con nuovi tab Ogni tab 竪 gestito fa un cosiddtto LinkHandler, il quale deve implementare le seguenti Interfacce: TYPO3CMSRecordlistLinkHandlerLinkHandlerInterface I LinkHandler sono registrati in PageTScon g come segue: file { handler = TYPO3CMSRecordlistLinkHandlerFileLinkHandler label = LLL:EXT:lang/locallang_browse_links.xlf:file displayAfter = page scanAfter = page configuration { customConfig = passed to the handler } } TYPO3 CMS 7.6 - Le novit
  • 23. In-Depth Changes Tab per LinkBrowser (2) Le opzioni displayBefore e displayAfter de niscono la posizione dei tab Le opzioni scanBefore e scanAfter de niscono l'ordine in cui gli handler sono elaborati quando vengono veri cati i link esistenti $GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][LinkBrowser][hooks][1444048118] = [ handler = VendorExtMyClass::class, before = [], // optional after = [] // optional ]; TYPO3 CMS 7.6 - Le novit
  • 24. In-Depth Changes API del modulo Template (1) Le nuove API del modulo Template API hanno lo scopo di normalizzare l'implementazione di DocHeaders Esempio 1: aggiungere un bottone $openInNewWindowButton = $this-moduleTemplate-getDocHeaderComponent()-getButtonBar() -makeLinkButton() -sethref(#) -setTitle($this-getLanguageService()-sL( LLL:EXT:lang/locallang_core.xlf:labels.openInNewWindow, TRUE )) -setIcon($this-iconFactory-getIcon(actions-window-open, Icon::SIZE_SMALL)) -setOnClick($aOnClick); $this-moduleTemplate-getDocHeaderComponent()-getButtonBar() -addButton($openInNewWindowButton, ButtonBar::BUTTON_POSITION_RIGHT); TYPO3 CMS 7.6 - Le novit
  • 25. In-Depth Changes API del modulo Template (2) Esempio 2: aggiungere un menu con delle voci $languageMenu = $this-moduleTemplate-getDocHeaderComponent() -getModuleMenuRegistry()-makeMenu() -setIdentifier(_langSelector) -setLabel($this-getLanguageService()-sL( LLL:EXT:lang/locallang_general.xlf:LGL.language, TRUE )); $menuItem = $languageMenu-makeMenuItem() -setTitle($lang[title] . $newTranslation) -sethref($href); if((int)$lang[uid] === $currentLanguage) { $menuItem-setActive(TRUE); } $languageMenu-addMenuItem($menuItem); $this-moduleTemplate-getDocHeaderComponent()-getModuleMenuRegistry()-addMenu($languageMenu); TYPO3 CMS 7.6 - Le novit
  • 26. In-Depth Changes Routing PSR-7 per le richieste AJAX di Backend Per aggiungere un route per una richiesta AJAX, il le Configuration/Backend/AjaxRoutes.php pu嘆 essere creato con il seguente contenuto: return [ // fai qualcosa unique_route_name = [ path = /toolcollection/some-action, target = VendorControllerSomeController::class . ::myAction, ] ]; TYPO3 CMS 7.6 - Le novit
  • 27. In-Depth Changes Hook OpenID getUserRecord Due hook sono stati aggiunti al servizio OpenID (1/2) Hook 1: $GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][openid][getUserRecord] Modi ca il record utente dopo che esso 竪 stato recuperato, o: Crea un nuovo record se nessuno 竪 stato trovato I parametri record, response e authInfo sono passati all'hook TYPO3 CMS 7.6 - Le novit
  • 28. In-Depth Changes Hook OpenID authRequest Due hook sono stati aggiunti al servizio OpenID (2/2) Hook 2: $GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][openid][authRequest] Modi ca la richiesta di autenticazione, prima che essa sia inviata Pu嘆 essere usato per richiedere attributi aggiuntivi come un nickname dal server OpenID per esempio I parametri authRequest e authInfo sono passati all'hook TYPO3 CMS 7.6 - Le novit
  • 29. In-Depth Changes Hook e Signals (1) Ora 竪 possibile modi care la directory di upload restituita da BackendUserAuthentication::getDefaultUploadFolder() Registra l'hook nel le ext_localconf.php come segue: $GLOBALS[TYPO3_CONF_VARS][SC_OPTIONS][t3lib/class.t3lib_userauthgroup.php] [getDefaultUploadFolder][] = VendorMyExtensionHooksDefaultUploadFolder::class . -getDefaultUploadFolder; TYPO3 CMS 7.6 - Le novit
  • 30. In-Depth Changes Hooks e Signals (2) Esempio: ?php namespace VendorMyExtensionHooks; use TYPO3CMSCoreAuthenticationBackendUserAuthentication; use TYPO3CMSCoreResourceFolder; /** * Class DefaultUploadFolder */ class DefaultUploadFolder { /** * Get default upload folder * If there is a folder present with the same name as the last part of the table name use that folder. * @param array $params * @param BackendUserAuthentication $backendUserAuthentication * @return Folder */ public function getDefaultUploadFolder($params, BackendUserAuthentication $backendUserAuthentication) { [...] TYPO3 CMS 7.6 - Le novit
  • 31. In-Depth Changes Hooks e Signals (3) Esempio (continua): [...] /** @var Folder $uploadFolder */ $uploadFolder = $params[uploadFolder]; $pid = $params[pid]; $table = $params[table]; $field = $params[field]; $matches = []; if (!empty($uploadFolder) preg_match(/_([a-z]+)$/, $table, $matches)) { $folderName = $matches[1]; if ($uploadFolder-hasFolder($folderName)) { $uploadFolder = $uploadFolder-getSubfolder($folderName); } } return $uploadFolder; } } TYPO3 CMS 7.6 - Le novit
  • 32. In-Depth Changes Varie L'uso del campo TCA di tipo select richiede di speci care l'opzione renderType I valori validi sono: renderType = selectMultipleSideBySide, renderType = selectCheckBox, renderType = selectSingle, renderType = selectSingleBox, renderType = selectTree, TYPO3 CMS 7.6 - Le novit
  • 33. Extbase Fluid Capitolo 4: Extbase Fluid TYPO3 CMS 7.6 - Le novit
  • 34. Extbase Fluid Relazione tra stesse tabelle Ora 竪 possibile usare un domain model dove un oggetto 竪 direttamente connesso ad un altro oggetto della stessa classe namespace VendorExtensionDomainModel; class A { /** * @var VendorExtensionDomainModelA */ protected $parent; } namespace VendorExtensionDomainModel; class A { /** * @var VendorExtensionDomainModelB */ protected $x; /** * @var VendorExtensionDomainModelB */ protected $y; } TYPO3 CMS 7.6 - Le novit
  • 35. Extbase Fluid Opzione absolute per Image-ViewHelpers La nuova opzione absolute forza ImageViewhelper e Uri/ImageViewHelper a restituire un URL assoluto Esempio 1 (ImageViewhelper): f:image image={file} width=400 height=375 absolute=1 /f:image // Output img alt=alt set in image record src=http://example.com/fileadmin/_processed_/323223424.png width=400 height=375 / Esempio 2 (Uri/ImageViewHelper): f:uri.image image={file} width=400 height=375 absolute=1 /f:uri // Output http://example.com/fileadmin/_processed_/323223424.png TYPO3 CMS 7.6 - Le novit
  • 36. Extbase Fluid Togliere spazi bianchi tra i tag HTML Il nuovo ViewHelper spaceless rimuove spazi ridondanti tra i tag HTML preservando gli spazi bianchi che sono presenti dentro i tag HTML: f:spaceless div div divtext text/div /div /div Output: divdivdivtext text/div/div/div TYPO3 CMS 7.6 - Le novit
  • 37. Extbase Fluid Con gurazione RootLevel Il RootLevel di una tabella pu嘆 essere con gurato in TCA (esso de nisce dove possono essere gestiti i record di una tabella nel sistema) 0: solo nell'albero delle pagine 1: solo nella root page (PID 0) -1: entrambi, root page e albero delle pagine Con gurazione TCA: $GLOBALS[TCA][tx_myext_domain_model_record][ctrl][rootLevel] = -1; TYPO3 CMS 7.6 - Le novit
  • 38. Funzionalit deprecate/rimosse Capitolo 5: Funzionalit deprecate/rimosse TYPO3 CMS 7.6 - Le novit
  • 39. Funzionalit deprecate/rimosse AJAX Route Gli handler AJAX registrati nel core da ExtensionManagementUtility::registerAjaxHandler() sono stati sostituiti da AJAX route, che sono registrati in Configuration/Backend/AjaxRoutes.php Una lista completa (vecchi/nuovi) 竪 disponibile alla pagina: Breaking-69916-RegisteredAJAXHandlersReplacedByRoutes.rst TYPO3 CMS 7.6 - Le novit
  • 40. Funzionalit deprecate/rimosse Varie L'estensione mediace 竪 stata spostata nel repository delle estensioni TYPO3 La con gurazione TCA dynamicConfigFile all'interno della sezione ctrl di una tabella 竪 stata deprecata. Ora la con gurazione della tabella si trova come Configuration/TCA/table_name.php. La funzione jumpurl 竪 stata rimossa dal core ed 竪 disponibile come un estensione nel repository delle estensioni TYPO3 TYPO3 CMS 7.6 - Le novit
  • 41. Fonti e autori Capitolo 6: Fonti e autori TYPO3 CMS 7.6 - Le novit
  • 42. Fonti e autori Fonti TYPO3 News: http://typo3.org/news Note sulla release: http://wiki.typo3.org/TYPO3_CMS_7.6.0 INSTALL.md e ChangeLog typo3/sysext/core/Documentation/Changelog/7.6/* TYPO3 Bug-/Segnalazioni: https://forge.typo3.org/projects/typo3cms-core Archivio TYPO3 Git: https://git.typo3.org/Packages/TYPO3.CMS.git https://git.typo3.org/Packages/TYPO3.Fluid.git TYPO3 CMS 7.6 - Le novit
  • 43. Fonti e autori TYPO3 CMS What's New 際際滷s: Patrick Lobacher (Ricerca, raccolta informazioni e versione tedesca) Michael Schams (Leader del progetto e versione inglese) Tradotto da: Andrey Aksenov, Pierrick Caillon, Sergio Catala, Jigal van Hemert, Michel Mix, Sinisa Mitrovic, Angeliki Plati, Nena Jelena Radovic, Roberto Torresani http://typo3.org/download/release-notes/whats-new Licensed under Creative Commons BY-NC-SA 3.0 TYPO3 CMS 7.6 - Le novit