
Transcription
TYPO3 CMS 6.1A quick summary of thefeatures, changes and improvementsv20130430 - Creative Commons BY-NC-SA 3.0
Chapter Overview Introduction Backend Changes Application ProgrammingInterface (API)TypoScript Extbase and FluidIn-Depth Changes SourcesTYPO3 CMS 6.1 - What's New
IntroductionTYPO3 CMS 6.1 “Improve” Focus on stabilisation of existing code/features Improving communication Improving contributions Improving the productRelease manager:Benjamin Mackbenni.mack (at) [email protected] CMS 6.1 - What's New
IntroductionTYPO3 CMS 6.1 “Improve” Release date: 30 April 2013 Release timeline:TYPO3 CMS 6.1 - What's New
IntroductionTYPO3 CMS 6.1 “Improve” System requirements PHP:MySQL:v5.3.7 – v5.4.xv5.1.x – v5.5.x End of maintenance: 31 October 2014 Not a Long Term Support (LTS) release(TYPO3 CMS 6.2 will be the next version with LTS)TYPO3 CMS 6.1 - What's New
IntroductionTYPO3 CMS 6.1 “Improve” TYPO3 release agenda:TYPO3 CMS 6.1 - What's New
Chapter 1Backend ChangesTYPO3 CMS 6.1 - What's New
Backend ChangesWizard “New Content Element”: Content element “Header only” addedTYPO3 CMS 6.1 - What's New
Backend ChangesWeb Templates: Context menu added to template record (icon)TYPO3 CMS 6.1 - What's New
Backend ChangesFiles Filelist: Delete button added to list viewTYPO3 6.1TYPO3 6.1TYPO3 CMS 6.1 - What's New
Backend ChangescObject “FORM”: Confirmation page can be enabled in backend(in the past: configuration in TypoScript only)enctype multipart/form-datamethod postprefix tx formconfirmation 1postProcessor {1 mail[.]}TYPO3 CMS 6.1 - What's New
Backend ChangesExtension Manager: Improved usability Function menu for manage/get extensions Direct link for “Show all versions”TYPO3 CMS 6.1 - What's NewTYPO3 6.1
Backend ChangesExtension Manager: Improved usability Function menu for manage/get extensions Direct link for “Show all versions”12TYPO3 CMS 6.1 - What's New12TYPO3 6.1
Backend ChangesSystemextension “sys note”: Re-developed in Extbase/Fluid Edit button appears on mouse overTYPO3 CMS 6.1 - What's New
Backend ChangesSystemextension “sys note”: Very easy to customise visual appearanceConstants:module.tx sysnote {view {# cat Internal Notes/general/1000; type string; label Layout Root Path: Path to layoutslayoutRootPath EXT:sys note/Resources/Private/Layouts/# cat Internal Notes/general/1010; type string; label Partial Root Path: Path to partialspartialRootPath EXT:sys note/Resources/Private/Partials/# cat Internal Notes/general/1020; type string; label Template Root Path: Path to templatestemplateRootPath EXT:sys note/Resources/Private/Templates/}}TYPO3 CMS 6.1 - What's New
Backend ChangesSystemextension “sys note”: Very easy to customise visual appearanceSetup:module.tx sysnote {view {layoutRootPath { module.tx sysnote.view.layoutRootPath}templateRootPath { module.tx sysnote.view.templateRootPath}partialRootPath { module.tx sysnote.view.partialRootPath}}}TYPO3 CMS 6.1 - What's New
Backend ChangesScheduler: Re-worked overview of tasks in Scheduler Execute a task with one clickTYPO3 6.1TYPO3 6.1TYPO3 CMS 6.1 - What's New
Backend ChangesScheduler: Task “System Status Update” Multiple email addresses are possible nowTYPO3 6.1TYPO3 6.1TYPO3 CMS 6.1 - What's New
Backend ChangesSystem Environment Check: Re-development of system checks All checks separated in a “standalone script”Independent to TYPO3Module “Reports” accesses and shows check resultsTYPO3 CMS 6.1 - What's New
Backend ChangesSystem Environment Check: New section in Install Tool Green: ok Yellow: warning Red:fatal errorTYPO3 CMS 6.1 - What's New
Chapter 2TypoScriptTYPO3 CMS 6.1 - What's New
TypoScriptstrPad: New stdWrap function “strPad” pads a string to acertain length with another string or characterpage.10 TEXTpage.10.value HELLO WORLD!page.10.strPad {length 15padWith .type left}Output:.HELLO WORLD!TYPO3 CMS 6.1 - What's New
TypoScriptdisableBodyTag: Disable HTML body tag generated by TYPO3 coreconfig.disableBodyTag 1 For example useful, if body should be created(and customised) by a template engine such asTemplaVoiláTYPO3 CMS 6.1 - What's New
TypoScriptFLUIDTEMPLATE – cObject: Source of templates for FLUIDTEMPLATE can becObjects now (previously: only files)Example 1: cObject “FILE”page.10 FLUIDTEMPLATEpage.10 {template FILEtemplate.file fileadmin/templates/MyTemplate.htmlpartialRootPath fileadmin/templates/partial/variables {mylabel TEXTmylabel.value Hello World!}}TYPO3 CMS 6.1 - What's New
TypoScriptFLUIDTEMPLATE – cObject: Source of templates for FLUIDTEMPLATE can becObjects now (previously: only files)Example 2: cObject “TEXT”page.10 FLUIDTEMPLATEpage.10 {template TEXTtemplate.value h1 {data.title} /h1 partialRootPath fileadmin/templates/partial/variables {mylabel TEXTmylabel.value Hello World!}}TYPO3 CMS 6.1 - What's New
TypoScriptFLUIDTEMPLATE – Settings Array: Pass an array of values to FLUIDTEMPLATE by usingthe key word “settings”Constants are also supportedlib.globalSettings {foo valuebar { bar}}page PAGEpage.10 FLUIDTEMPLATEpage.10 {file fileadmin/templates/MyTemplate.htmlsettings lib.globalSettings}Access values in template file:{settings.foo} and {settings.bar}TYPO3 CMS 6.1 - What's New
TypoScriptsplitChar: Defines “split” character for noTrimWrap in HMENUs(default is: “ ”)temp.mainMenu HMENUtemp.mainMenu {[.]10 TMENU10.NO {[.]10 TEXT10 {text.field title# line below does not work (rendered as optionSplit):# text.noTrimWrap -- text.noTrimWrap * -- * *text.noTrimWrap.splitChar *}}[.]}TYPO3 CMS 6.1 - What's New
TypoScriptTSconfig - Module “List”: Disable links to export data in module “List”mod.web list.noExportRecordsLink 1TYPO3 CMS 6.1 - What's New
TypoScriptBackend Layout Configuration: Include external filesfor backend layoutconfiguration INCLUDE TYPOSCRIPT: source ”FILE:fileadmin/layout.ts” TYPO3 CMS 6.1 - What's New
TypoScriptMiscellaneous New functions to manipulate comma-separatedvalues: uniqueList(), reverseList() and sortList()page PAGEpage.10 TEXTpage.10.value 11,14,11,7// output: 11,14,11,7page.10.value : uniqueList()// output: 11,14,7page.10.value : reverseList()// output: 7,14,11page.10.value : sortList(numeric,descending)// output: 14,11,7page.10.value : sortList(numeric)// output: 7,11,14TYPO3 CMS 6.1 - What's New
TypoScriptMiscellaneous Remove all CSS generated via CSS PAGE STYLEby extensions (e.g. css styled content)config.removePageCss 1 Option pageTitleSeparator can be used withStdWrap functionsconfig.pageTitleSeparator config.pageTitleSeparator.noTrimWrap User TSconfig “clearRTECache” ions.clearCache.clearLangCacheThis is a breaking change!TYPO3 CMS 6.1 - What's New
TypoScriptMiscellaneous Default values of cObject FORM can be used withstdWrap functionsAdd tags to pages(stored in database table “cache pages”)stdWrap.addPageCacheTags pagetag1,pagetag2,pagetag3 Remove page tags by TSconfigTCEMAIN.clearCacheCmd tag:pagetag1,tag:pagetag2,tag:pagetag3TYPO3 CMS 6.1 - What's New
Chapter 3In-Depth ChangesTYPO3 CMS 6.1 - What's New
In-Depth ChangesTCA Handling: Table Configuration Array (TCA) handling partlyre-developedTCA is always loaded and cached in FETCA is loaded in BE and option dynamicConfigFilebecame redundant (no differences between 'ctrl'and 'columns')Extension developers should store the TCA file p.which returns an array of table “tablename”TYPO3 CMS 6.1 - What's New
In-Depth ChangesTCA Handling: Sections 'ctrl' can be removed from fileext tables.php Functions/methods became obsolete: TSFE- includeTCA() TSFE- getCompressedTCarray() GeneralUtility::loadTca()Fallback for extensions which do not follow the newTCA scheme in typo3conf/ext tables.phpDirectory t3lib/stddb removed(all files have been implemented in the TYPO3 core now)TYPO3 CMS 6.1 - What's New
In-Depth ChangesTCA – Field Display Conditions: Option displayCond supports multiple conditionsand 'AND' and 'OR' now'link file' array ('exclude' 0,'label' 'LLL:EXT:filelinks/locallang db.xml:tx filelinks.link file','config' array ([.]),'displayCond' array('AND' array('FIELD:testField: :9','FIELD:testField: :11',),),[.])TYPO3 CMS 6.1 - What's New
In-Depth ChangesRequireJS: JavaScript file and module loader Integrated in the TYPO3 core Available in FE and BE Supports Asynchronous Module Definition (AMD)(mechanism for defining modules such that the module and itsdependencies can be asynchronously loaded) jQuery is already loaded via AMD, named “jQuery”TYPO3 CMS 6.1 - What's New
In-Depth ChangesRequireJS: Example for me/ModuleName);.would load /ModuleName.jsTYPO3 CMS 6.1 - What's New
In-Depth ChangesDatabase: Main DB connection class uses "mysqli" instead ofthe old "mysql" PHP extension"Lazy" database connection implemented DB connection will be established by databaseconnection class on demandBootstrap does not take care of initialisationeID scripts do not need to call connectDB() any moreTYPO3 CMS 6.1 - What's New
In-Depth ChangesPHP Opcode Caches: XCache cache backend added to caching ion Checks added to Install Tool: Zend Optimizer PlusZend OPcachewincacheTYPO3 CMS 6.1 - What's New
In-Depth ChangesMiscellaneous Domain records are cached, when typolinkgenerates links, if the following option has been set:config.typolinkCheckRootline 1 Images from the Rich Text Editor (RTE) movedfrom: uploads/RTEmagicC *to:fileadmin/ migrated /RTE/When updating to TYPO3 6.1, the update wizard moves the filesand adds them to the storage indexTYPO3 CMS 6.1 - What's New
In-Depth ChangesRemoved Components: Systemextension “statictemplates” removedfrom TYPO3 coreInstall Tool Upgrade Wizardimports and installs the extension from TER if required Flash library “swfupload” and Flash Uploaderinterface removedThe more robust HTML5 file uploader (introduced in TYPO3 6.0)works perfectly fineTYPO3 CMS 6.1 - What's New
Chapter 4Application Programming Interface(API)TYPO3 CMS 6.1 - What's New
Application Programming Interface (API)Database API: Method searchQuery() supports “AND” and “OR” now 4th parameter controls constraint (default: ss DatabaseConnection {public function searchQuery( searchWords, fields, table, constraint self::AND Constraint) { // or: self::OR Constraint[.]})}TYPO3 CMS 6.1 - What's New
Application Programming Interface (API)Pre- and Post SELECT Hooks: See class:\TYPO3\CMS\Core\Database\DatabaseConnection New pre-process-hook for SELECT statementspublic function SELECTquery preProcessAction(.) { . } New post-process-hook for SELECT statementspublic function exec SELECTquery postProcessAction(.) { . }TYPO3 CMS 6.1 - What's New
Application Programming Interface (API)CSS Styled Content Rendering Hook: See yledContentController New hook in CSS Styled Content allows customrendering of a media element GLOBALS['TYPO3 CONF VARS']['EXTCONF'].['css styled content']['pi1 hooks']['render singleMediaElement'] Useful for FAL content such as videos or contentembedded by JavaScriptTYPO3 CMS 6.1 - What's New
Chapter 5Extbase and FluidTYPO3 CMS 6.1 - What's New
Extbase and FluidClassNamingUtility: New class offers several functions related to namingand conversions of names\TYPO3\CMS\Core\Utility\ClassNamingUtility Methods:static public translateModelNameToRepositoryName( modelName) { . }static public translateModelNameToValidatorName( modelName) { . }static public translateRepositoryNameToModelName( repositoryName) { . }static public explodeObjectControllerName( controllerObjectName) { . }TYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – Recursive Storage PID: Set storage PID recursively via TypoScript(default value: 0)plugin {tx extension {persistence {storagePid 1,2,3recursive 99}}}TYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – Overwrite Object Mapping: Overwrite object mapping via TypoScriptconfig.tx extbase {objects {Tx Extbase Persistence BackendInterface {className Tx MyExt Persistence Backend}}}.also works with plugin now:plugin.tx extension {objects {Tx Extbase Persistence BackendInterface {className Tx MyExt Persistence Backend}}}TYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – beforeCallActionMethod: Signal (hook) that is triggered prior execution ofcurrent action (callActionMethod) this- signalSlotDispatcher- dispatch(CLASS ,'beforeCallActionMethod',array('controllerName' get class( this),'actionMethodName' this- actionMethodName,'preparedArguments' preparedArguments));TYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – beforeCallActionMethod: Signal (hook) that is triggered prior execution ofcurrent action (callActionMethod)Slot usage example: this- getSignalSlotDispatcher()- ontroller','beforeCallActionMethod','Tx MyExtension CallActionSlot','beforeCallActionMethod');TYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – Property Mapper: New (rewritten) Property Mapper ready forproduction environments(has been shipped with TYPO3 CMS since 4.6) Feature is enabled by default nowconfig.tx extbase.features.rewrittenPropertyMapper 1 Use TYPO3 Flow documentation as a g.htmlTYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – TYPO3 MODE detection: New service class to determine if FE or BE cepublic function isEnvironmentInFrontendMode() {return (defined('TYPO3 MODE') && TYPO3 MODE 'FE') ? : FALSE;}public function isEnvironmentInBackendMode() {return (defined('TYPO3 MODE') && TYPO3 MODE 'BE') ? : FALSE;}TYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – TYPO3 MODE detection: New service class to determine if FE or BE context Usage example:/*** @var tected environmentService;/*** @param \TYPO3\CMS\Extbase\Service\EnvironmentService environmentService* @return void*/public function e\EnvironmentService environmentService) { this- environmentService environmentService;}. if ( this- environmentService- isEnvironmentInFrontendMode()) { . } .TYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – FlashMessage Handling: FlashMessages can be added to a queue(before: set via a “container” only) Enable this feature with TypoScriptconfig.tx extbase.enableLegacyFlashMessageHandling 1 Usage Example:// set a FlashMessage this- controllerContext- getFlashMessageQueue()- addMessage(new \TYPO3\CMS\Core\Messaging\FlashMessage( flashMessage, '', \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR));// read and empty queue this- controllerContext- getFlashMessageQueue()- getAllMessagesAndFlush();TYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – Performance: Performance increase in various areas Deletion of page cacheInternal caching layer for getTargetPidByPluginPersistence of ObjectStorages optimisedTYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – Property Mapper Validation: Object validation of Property Mapper reworked Prevent storing invalid objects if validation failsModified objects have to be marked as such by executingthe repository's update() function{the domain objects repositories}- update({modified domain object}) this- blogRepository- update( blog); Side effect: performance boostTYPO3 CMS 6.1 - What's New
Extbase and FluidExtbase – Miscellaneous: Single Table Inheritance (STI) for users/groupsremoved from default TypoScript setupTo demonstrate STI in Extbase, tx extbase type was implemented forfe users and fe groups. Due to various problems, this has beenremoved again. Deprecated: ObjectManager::create(use ObjectManager::get instead)TYPO3 CMS 6.1 - What's New
Extbase and FluidFluid - Pagination ViewHelper: Pagination ViewHelper for use in the BE f:be.widget.paginateobjects "{blogs}"as "paginatedBlogs"configuration "{itemsPerPage: 5, insertAbove: 1,insertBelow: 0, recordsLabel: 'MyRecords'}" /*use {paginatedBlogs} instead of {blogs}for example inside a f:for loop */ /f:be.widget.paginate TYPO3 CMS 6.1 - What's New
Extbase and FluidFluid – String Compare: Compare strings(e.g. with the if-ViewHelper, see example below) f:if condition ”{foo} 'bar'” /* do something. */ /f:fi TYPO3 CMS 6.1 - What's New
Extbase and FluidFluid – Property Mapping Configuration: Property Mapping relies on a whitelist (trustedproperties) nowExtbase takes care of Fluid forms automatically(current level only, not nested gConfiguration/* Set all options for the given typeConverter: */public setTypeConverterOptions( typeConverterClassName, array options) { . }/* Allow a list of specific properties: */public allowProperties() { . }/* Allow all properties in property mapping, even unknown ones: */public allowAllProperties() { . }/* Allow all properties, but reject (blacklist) selected ones: */public allowAllPropertiesExcept() { . }TYPO3 CMS 6.1 - What's New
Extbase and FluidFluid – Arrays in ViewHelper Arguments: Arrays are processed in ViewHelper arguments nowThis is a breaking change! TYPO3 6.1: f:debug {key1: 'value1', key2: 'value2'} /f:debug TYPO3 6.1: f:debug value "{key1: 'value1', key2: 'value2'}" / TYPO3 CMS 6.1 - What's New
Extbase and FluidFluid – Currency ViewHelper: Currency ViewHelper supports decimal points now f:format.currencycurrencySign " " decimalSeparator "." thousandsSeparator ","prependCurrency "TRUE" separateCurrency "FALSE"decimals "2" 1234.5678 /f:format.currency Output: 1,234.56TYPO3 CMS 6.1 - What's New
Extbase and FluidFluid – Access to File References: Access to file references works “on the fly” now,by creation of a FAL resource es.identifier}TYPO3 CMS 6.1 - What's New
Chapter 5SourcesTYPO3 CMS 6.1 - What's New
Sources TYPO3 News http://typo3.org/newsRelease Notes release-notes/ http://wiki.typo3.org/TYPO3 6.1 NEWS.txtTYPO3 GIT Repositories https://git.typo3.org/TYPO3v4/Core.git base.git id.gitTYPO3 CMS 6.1 - What's New
Sources TYPO3 Bug-/Issuetracker RequireJS and AMD http://requirejs.org https://github.com/amdjs/amdjs-api/wiki/AMDFurther Extbase/Fluid documentation 91 dirty objectStorage improvementsDownload TYPO3 CMS http://typo3.org/downloadTYPO3 CMS 6.1 - What's New
TYPO3 inspires people to share.During TYPO3 CMS 6.1 development phasethe 10.000th core merge was done!Thanks to all contributors :-)TYPO3 CMS 6.1 - What's New
Authors of this PresentationPatrick Lobachertypovision GmbHMunich/Germanyhttp://www.typovision.deMichael SchamsCerebrum (Aust) Pty LtdMelbourne/Australiahttp://schams.netCredits also go to: Ben, Roland and Den for review and quality assurance.Licensed under Creative Commons BY-NC-SA 3.0TYPO3 CMS 6.1 - What's New
Thank You!TYPO3 inspires people to shareTYPO3 CMS 6.1 - What's New
Not a Long Term Support (LTS) release (TYPO3 CMS 6.2 will be the next version with LTS) TYPO3 CMS 6.1 - What's New Introduction TYPO3 CMS 6.1 “Improve” TYPO3 release agenda: TYPO3 CMS 6.1 - What's New Chapter 1 Backend Changes.