SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
LITTLE GEMS IN TYPO3 V12
Little Gems in TYPO3 v12
Features and changes that didn’t make the headlines
@jigalvh
Jigal van Hemert
jigal.van.hemert@typo3.org
Who is this guy?
â–Ș TYPO3 developer at MaxServ
â–Ș Working with TYPO3 since v3.8 (?)
â–Ș Translations of core labels in Dutch
â–Ș Shares home with wife and ten dogs
READY
TypoScript / TSCon
fi
g
New stdwrap.if options
If now supports contains, startsWith and endsWith
10 = TEXT
10 {
value = The contact page
if {
value.data = page:title
startsWith = Contact
}
}
New cObject EXTBASEPLUGIN
With the new object there is no need to define the userfunc and a USER object
10 = EXTBASEPLUGIN
10 {
extensionName = myextension
pluginName = myplugin
}
This provides better structure to configuration and allows to change Extbase
bootstrap in the future.
Copy page access settings from parent
If there are custom owner/group settings and access patterns for parts of the
pagetree and these need to be set to new subpages there is a new value
copyFromParent.
TCEMAIN.permissions.userid = copyFromParent
TCEMAIN.permissions.groupid = copyFromParent
TCEMAIN.permissions.user = copyFromParent
TCEMAIN.permissions.group = copyFromParent
TCEMAIN.permissions.everybody = copyFromParent
Additional attributes for TS Include*
All the page.include* properties now support custom additional attributes.
page = PAGE
page {
includeCSSLibs {
myIncludeFile = someFile.css
myIncludeFile.data-foo = plaap
}
}
TypoScript option to render all links absolute
If all links, images, assets need absolute URLs (e.g. emails other static pages) a
new option forces this.
config.forceAbsoluteUrls = 1
Backend
Grid view in Filelist
Drag and drop in Filelist
CLEVER
Site con
fi
guration (yaml) in backend
In the module Configuration it’s now
possible to see the resulting
configuration of Sites, including
routing configuration, languages, and
so on.
Con
fi
gurable Password policies
Frontend and backend separate
configuration. Policy classes can be
extended.
Manage
fi
lemounts in Backend Users module
In the module Backend Users it’s now
possible to create, edit, remove
Filemounts.
Task groups can be edited in Scheduler module
Fluid
Fluid ‘trim’ ViewHelper
<f:format.trim> Value to be trimmed. </f:format.trim>
<f:format.trim side=“left|right|both”>
<f:format.trim characters=“Tu.”>
Performs PHP functions ltrim() / rtrim() / trim()
Fluid ‘countrySelect’ ViewHelper
<f:form.countrySelect
name=“country”
value=“NL”
errorClass=“lang-wrong”
sortByOptionLabel=“true”
optionLabelField=“localizedName”
prioritizedCountries=“{0: ‘NL’, 1: ‘BE’}”
/>
There is a class CountryProvider to retrieve country information in code.
(Also available in Form framework)
Development
Symfony Poly
fi
ll packages
â–Ș Also in older versions of TYPO3
â–Ș Code can use functions from newer PHP versions (not language constructs)
â–Ș Example: PHP 8.3 function json_validate() can already be used
Settings.php can be read-only *)
If Settings.php is read-only the Install Tool displays the edit fields as disabled.
A
ft
er deploying the file can be read-only to prevent any changes by admins via
the Install Tool.
*) Patch pending to fix a bug in this feature
Automatic database
fi
eld for slugs
Fields with TCA type ‘slug’ are also automatically created in the database (if
they are not defined in the ext_tables.sql file).
Database column type ‘json’ support (1)
â–Ș insert(), update(), bulkInsert()
â–Ș value can be array, will be automatically converted
ext_tables.sql:
CREATE TABLE tx_myextension_domain_model_foo (
col1 varchar(100) DEFAULT '',
col2 json
);
Database column type ‘json’ support (2)
TCA type ‘json’ allows editing (using T3Editor if that is available)
Simple query parameters for Extbase BE modules
Query parameters without namespaces can be used in BE modules based on
Extbase.
To disable this for an extension:
module.tx_myextension {
features {
enableNamespacedArgumentsForBackend = 1
}
}
SWITCH
DataProcessors tagged with short name for TS
DataProcessors can be tagged and the tag can be used as name in TS. This also
enables DI. In Services.yaml:
VendorMyExtensionDataProcessingFooProcessor:
tags:
- { name: ‘data.processor’, identifier:
‘powerfoo’ }
In TypoScript:
dataProcessing.10 = powerfoo
Easier tagging of backend controllers
Previously in Services.yaml:
VendorMyExtControllerSomeBackendController:
tags: [‘backend.controler’]
Alternative:
use TYPO3CMSBackendAttributeController;
#[Controller]
class SomeBackendController {}
Easier registration of upgrade wizard
Register upgrade wizard throught PHP custom attribute.
use TYPO3CMSInstallAttributeUpgradeWizard;
#[UpgradeWizard('fooUpgradeWizard')]
class FooUpgradeWizard implements
UpgradeWizardInterface {}
Yaml import supports glob patterns
Example:
imports:
- { resource: "./**/*.yaml", glob: true }
- { resource: "EXT:core/Tests/**/Configuration/**/
SiteConfigs/*.yaml", glob: true }
API to read site settings (1)
In older versions:
$redirectSettings = $site
->getConfiguration()[‘settings']['redirects'] ?? [];
API to read site settings (2)
Now:
$siteSettings = $site->getSettings();
$redirectSettings = $siteSettings->get(‘redirects’);
TypoScript:
page.10 = TEXT
page.10.data = siteSettings:redirects.httpStatusCode
Language fallback for content (1)
The fallback type ‘fallback’ now works for content too.
â–Ș Works in TypoScript and Extbase
â–Ș Only with fallbackType = fallback
â–Ș Stops at default language (with weird fallback chains)
Fallback types ☞
Language fallback for content (2)
strict:
Only renders content that is translated in the target language or created in that
language. Keeps sorting behaviour from default language.
free:
Only looks at content in target language, ignores sorting behaviour from
default language.
Language fallback for content (3)
fallback:
If page is not available (or not even created) in target language it follows the
fallback chain.
For each content part it’s checked if it’s available in the target language,
otherwise fallback chain is checked.
POWERRRR
One more thing

Magic methods in Extbase repositories are deprecated!!
Methods like findBy<Property>(), findOneBy<Property>(),
countBy<Property>() are marked as deprecated. In v13 deprecation
notices will be triggered and they will be removed in v14.
New:
findBy([‘propertyName’ => $propertyValue]);
findOneBy([‘propertyName’ => $propertyValue]);
count([‘propertyName’ => $propertyValue]);
Questions?
Or gems that you found?
Thank you!

Weitere Àhnliche Inhalte

Was ist angesagt?

Bloc for Pharo: Current State and Future Perspective
Bloc for Pharo: Current State and Future PerspectiveBloc for Pharo: Current State and Future Perspective
Bloc for Pharo: Current State and Future PerspectiveESUG
 
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...Edureka!
 
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...Adrian Huang
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flaskjuzten
 
Algebraic Data Types for Data Oriented Programming - From Haskell and Scala t...
Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...
Algebraic Data Types for Data Oriented Programming - From Haskell and Scala t...Philip Schwarz
 
Javascript event handler
Javascript event handlerJavascript event handler
Javascript event handlerJesus Obenita Jr.
 
Learn flask in 90mins
Learn flask in 90minsLearn flask in 90mins
Learn flask in 90minsLarry Cai
 
Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)Sumant Tambe
 
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...Christopher Frohoff
 
Pwning in c++ (basic)
Pwning in c++ (basic)Pwning in c++ (basic)
Pwning in c++ (basic)Angel Boy
 
Flask – Python
Flask – PythonFlask – Python
Flask – PythonMax Claus Nunes
 
Html 5 tutorial - By Bally Chohan
Html 5 tutorial - By Bally ChohanHtml 5 tutorial - By Bally Chohan
Html 5 tutorial - By Bally Chohanballychohanuk
 
jQuery from the very beginning
jQuery from the very beginningjQuery from the very beginning
jQuery from the very beginningAnis Ahmad
 
Dirty Secrets of the PHP SOAP Extension
Dirty Secrets of the PHP SOAP ExtensionDirty Secrets of the PHP SOAP Extension
Dirty Secrets of the PHP SOAP ExtensionAdam Trachtenberg
 
One Monad to Rule Them All
One Monad to Rule Them AllOne Monad to Rule Them All
One Monad to Rule Them AllJohn De Goes
 
Part II: LLVM Intermediate Representation
Part II: LLVM Intermediate RepresentationPart II: LLVM Intermediate Representation
Part II: LLVM Intermediate RepresentationWei-Ren Chen
 
JavaScript: Events Handling
JavaScript: Events HandlingJavaScript: Events Handling
JavaScript: Events HandlingYuriy Bezgachnyuk
 
Go Profiling - John Graham-Cumming
Go Profiling - John Graham-Cumming Go Profiling - John Graham-Cumming
Go Profiling - John Graham-Cumming Cloudflare
 

Was ist angesagt? (20)

Bloc for Pharo: Current State and Future Perspective
Bloc for Pharo: Current State and Future PerspectiveBloc for Pharo: Current State and Future Perspective
Bloc for Pharo: Current State and Future Perspective
 
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
 
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flask
 
Algebraic Data Types for Data Oriented Programming - From Haskell and Scala t...
Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...
Algebraic Data Types for Data Oriented Programming - From Haskell and Scala t...
 
Javascript event handler
Javascript event handlerJavascript event handler
Javascript event handler
 
Learn flask in 90mins
Learn flask in 90minsLearn flask in 90mins
Learn flask in 90mins
 
glTF 2.0 Reference Guide
glTF 2.0 Reference GuideglTF 2.0 Reference Guide
glTF 2.0 Reference Guide
 
Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)
 
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
 
Pwning in c++ (basic)
Pwning in c++ (basic)Pwning in c++ (basic)
Pwning in c++ (basic)
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
 
Html 5 tutorial - By Bally Chohan
Html 5 tutorial - By Bally ChohanHtml 5 tutorial - By Bally Chohan
Html 5 tutorial - By Bally Chohan
 
jQuery from the very beginning
jQuery from the very beginningjQuery from the very beginning
jQuery from the very beginning
 
çł»ç”±çš‹ćŒ -- 珏 12 ç« 
çł»ç”±çš‹ćŒ -- 珏 12 ç« çł»ç”±çš‹ćŒ -- 珏 12 ç« 
çł»ç”±çš‹ćŒ -- 珏 12 ç« 
 
Dirty Secrets of the PHP SOAP Extension
Dirty Secrets of the PHP SOAP ExtensionDirty Secrets of the PHP SOAP Extension
Dirty Secrets of the PHP SOAP Extension
 
One Monad to Rule Them All
One Monad to Rule Them AllOne Monad to Rule Them All
One Monad to Rule Them All
 
Part II: LLVM Intermediate Representation
Part II: LLVM Intermediate RepresentationPart II: LLVM Intermediate Representation
Part II: LLVM Intermediate Representation
 
JavaScript: Events Handling
JavaScript: Events HandlingJavaScript: Events Handling
JavaScript: Events Handling
 
Go Profiling - John Graham-Cumming
Go Profiling - John Graham-Cumming Go Profiling - John Graham-Cumming
Go Profiling - John Graham-Cumming
 

Ähnlich wie Little Gems in TYPO3 v12

Working With The Symfony Admin Generator
Working With The Symfony Admin GeneratorWorking With The Symfony Admin Generator
Working With The Symfony Admin GeneratorJohn Cleveley
 
WebClient Customization.pdf
WebClient Customization.pdfWebClient Customization.pdf
WebClient Customization.pdfsatyasekhar123
 
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorTYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorNITSAN Technologies
 
Debugging and Error handling
Debugging and Error handlingDebugging and Error handling
Debugging and Error handlingSuite Solutions
 
Testing the frontend
Testing the frontendTesting the frontend
Testing the frontendHeiko Hardt
 
Dependency injection in Drupal 8
Dependency injection in Drupal 8Dependency injection in Drupal 8
Dependency injection in Drupal 8Alexei Gorobets
 
Introduction of Pharo 5.0
Introduction of Pharo 5.0Introduction of Pharo 5.0
Introduction of Pharo 5.0Masashi Umezawa
 
AD215 - Practical Magic with DXL
AD215 - Practical Magic with DXLAD215 - Practical Magic with DXL
AD215 - Practical Magic with DXLStephan H. Wissel
 
Mule data weave_10
Mule data weave_10Mule data weave_10
Mule data weave_10kunal vishe
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Phpfunkatron
 
Speed up your developments with Symfony2
Speed up your developments with Symfony2Speed up your developments with Symfony2
Speed up your developments with Symfony2Hugo Hamon
 
Dexterity in the Wild
Dexterity in the WildDexterity in the Wild
Dexterity in the WildDavid Glick
 
Puppet Design Patterns - PuppetConf
Puppet Design Patterns - PuppetConfPuppet Design Patterns - PuppetConf
Puppet Design Patterns - PuppetConfDavid Danzilio
 
Developing Drizzle Replication Plugins
Developing Drizzle Replication PluginsDeveloping Drizzle Replication Plugins
Developing Drizzle Replication PluginsPadraig O'Sullivan
 
Intake 38 data access 5
Intake 38 data access 5Intake 38 data access 5
Intake 38 data access 5Mahmoud Ouf
 
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)James Titcumb
 
Curso Symfony - Clase 3
Curso Symfony - Clase 3Curso Symfony - Clase 3
Curso Symfony - Clase 3Javier Eguiluz
 
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015die.agilen GmbH
 
Mongo-Drupal
Mongo-DrupalMongo-Drupal
Mongo-DrupalForest Mars
 

Ähnlich wie Little Gems in TYPO3 v12 (20)

Working With The Symfony Admin Generator
Working With The Symfony Admin GeneratorWorking With The Symfony Admin Generator
Working With The Symfony Admin Generator
 
WebClient Customization.pdf
WebClient Customization.pdfWebClient Customization.pdf
WebClient Customization.pdf
 
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorTYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
 
Debugging and Error handling
Debugging and Error handlingDebugging and Error handling
Debugging and Error handling
 
Testing the frontend
Testing the frontendTesting the frontend
Testing the frontend
 
Dependency injection in Drupal 8
Dependency injection in Drupal 8Dependency injection in Drupal 8
Dependency injection in Drupal 8
 
Introduction of Pharo 5.0
Introduction of Pharo 5.0Introduction of Pharo 5.0
Introduction of Pharo 5.0
 
AD215 - Practical Magic with DXL
AD215 - Practical Magic with DXLAD215 - Practical Magic with DXL
AD215 - Practical Magic with DXL
 
Mule data weave_10
Mule data weave_10Mule data weave_10
Mule data weave_10
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Php
 
Speed up your developments with Symfony2
Speed up your developments with Symfony2Speed up your developments with Symfony2
Speed up your developments with Symfony2
 
Dexterity in the Wild
Dexterity in the WildDexterity in the Wild
Dexterity in the Wild
 
Puppet Design Patterns - PuppetConf
Puppet Design Patterns - PuppetConfPuppet Design Patterns - PuppetConf
Puppet Design Patterns - PuppetConf
 
AtoZ about TYPO3 v8 CMS
AtoZ about TYPO3 v8 CMSAtoZ about TYPO3 v8 CMS
AtoZ about TYPO3 v8 CMS
 
Developing Drizzle Replication Plugins
Developing Drizzle Replication PluginsDeveloping Drizzle Replication Plugins
Developing Drizzle Replication Plugins
 
Intake 38 data access 5
Intake 38 data access 5Intake 38 data access 5
Intake 38 data access 5
 
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
 
Curso Symfony - Clase 3
Curso Symfony - Clase 3Curso Symfony - Clase 3
Curso Symfony - Clase 3
 
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
 
Mongo-Drupal
Mongo-DrupalMongo-Drupal
Mongo-Drupal
 

Mehr von Jigal van Hemert

Fun with fluid (TYPO3camp RheinRuhr 2019)
Fun with fluid (TYPO3camp RheinRuhr 2019)Fun with fluid (TYPO3camp RheinRuhr 2019)
Fun with fluid (TYPO3camp RheinRuhr 2019)Jigal van Hemert
 
Build your own Upgrade Wizard
Build your own Upgrade WizardBuild your own Upgrade Wizard
Build your own Upgrade WizardJigal van Hemert
 
Little gems in TYPO3 v9
Little gems in TYPO3 v9Little gems in TYPO3 v9
Little gems in TYPO3 v9Jigal van Hemert
 
Fun with fluid_t3dd18
Fun with fluid_t3dd18Fun with fluid_t3dd18
Fun with fluid_t3dd18Jigal van Hemert
 
Ddev workshop t3dd18
Ddev workshop t3dd18Ddev workshop t3dd18
Ddev workshop t3dd18Jigal van Hemert
 
New Little Gems in TYPO3 v8
New Little Gems in TYPO3 v8New Little Gems in TYPO3 v8
New Little Gems in TYPO3 v8Jigal van Hemert
 

Mehr von Jigal van Hemert (7)

Fun with fluid (TYPO3camp RheinRuhr 2019)
Fun with fluid (TYPO3camp RheinRuhr 2019)Fun with fluid (TYPO3camp RheinRuhr 2019)
Fun with fluid (TYPO3camp RheinRuhr 2019)
 
Build your own Upgrade Wizard
Build your own Upgrade WizardBuild your own Upgrade Wizard
Build your own Upgrade Wizard
 
Little gems in TYPO3 v9
Little gems in TYPO3 v9Little gems in TYPO3 v9
Little gems in TYPO3 v9
 
Fun with fluid_t3dd18
Fun with fluid_t3dd18Fun with fluid_t3dd18
Fun with fluid_t3dd18
 
Ddev workshop t3dd18
Ddev workshop t3dd18Ddev workshop t3dd18
Ddev workshop t3dd18
 
My Wife's Website
My Wife's WebsiteMy Wife's Website
My Wife's Website
 
New Little Gems in TYPO3 v8
New Little Gems in TYPO3 v8New Little Gems in TYPO3 v8
New Little Gems in TYPO3 v8
 

KĂŒrzlich hochgeladen

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂anilsa9823
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïžcall girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïžDelhi Call girls
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto GonzĂĄlez Trastoy
 

KĂŒrzlich hochgeladen (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Vip Call Girls Noida âžĄïž Delhi âžĄïž 9999965857 No Advance 24HRS Live
Vip Call Girls Noida âžĄïž Delhi âžĄïž 9999965857 No Advance 24HRS LiveVip Call Girls Noida âžĄïž Delhi âžĄïž 9999965857 No Advance 24HRS Live
Vip Call Girls Noida âžĄïž Delhi âžĄïž 9999965857 No Advance 24HRS Live
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂
CALL ON ➄8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïžcall girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

Little Gems in TYPO3 v12

  • 1. LITTLE GEMS IN TYPO3 V12
  • 2. Little Gems in TYPO3 v12 Features and changes that didn’t make the headlines @jigalvh Jigal van Hemert jigal.van.hemert@typo3.org
  • 3. Who is this guy? â–Ș TYPO3 developer at MaxServ â–Ș Working with TYPO3 since v3.8 (?) â–Ș Translations of core labels in Dutch â–Ș Shares home with wife and ten dogs
  • 6. New stdwrap.if options If now supports contains, startsWith and endsWith 10 = TEXT 10 { value = The contact page if { value.data = page:title startsWith = Contact } }
  • 7. New cObject EXTBASEPLUGIN With the new object there is no need to define the userfunc and a USER object 10 = EXTBASEPLUGIN 10 { extensionName = myextension pluginName = myplugin } This provides better structure to configuration and allows to change Extbase bootstrap in the future.
  • 8. Copy page access settings from parent If there are custom owner/group settings and access patterns for parts of the pagetree and these need to be set to new subpages there is a new value copyFromParent. TCEMAIN.permissions.userid = copyFromParent TCEMAIN.permissions.groupid = copyFromParent TCEMAIN.permissions.user = copyFromParent TCEMAIN.permissions.group = copyFromParent TCEMAIN.permissions.everybody = copyFromParent
  • 9. Additional attributes for TS Include* All the page.include* properties now support custom additional attributes. page = PAGE page { includeCSSLibs { myIncludeFile = someFile.css myIncludeFile.data-foo = plaap } }
  • 10. TypoScript option to render all links absolute If all links, images, assets need absolute URLs (e.g. emails other static pages) a new option forces this. config.forceAbsoluteUrls = 1
  • 12. Grid view in Filelist
  • 13. Drag and drop in Filelist
  • 15. Site con fi guration (yaml) in backend In the module Configuration it’s now possible to see the resulting configuration of Sites, including routing configuration, languages, and so on.
  • 16. Con fi gurable Password policies Frontend and backend separate configuration. Policy classes can be extended.
  • 17. Manage fi lemounts in Backend Users module In the module Backend Users it’s now possible to create, edit, remove Filemounts.
  • 18. Task groups can be edited in Scheduler module
  • 19. Fluid
  • 20. Fluid ‘trim’ ViewHelper <f:format.trim> Value to be trimmed. </f:format.trim> <f:format.trim side=“left|right|both”> <f:format.trim characters=“Tu.”> Performs PHP functions ltrim() / rtrim() / trim()
  • 23. Symfony Poly fi ll packages â–Ș Also in older versions of TYPO3 â–Ș Code can use functions from newer PHP versions (not language constructs) â–Ș Example: PHP 8.3 function json_validate() can already be used
  • 24. Settings.php can be read-only *) If Settings.php is read-only the Install Tool displays the edit fields as disabled. A ft er deploying the file can be read-only to prevent any changes by admins via the Install Tool. *) Patch pending to fix a bug in this feature
  • 25. Automatic database fi eld for slugs Fields with TCA type ‘slug’ are also automatically created in the database (if they are not defined in the ext_tables.sql file).
  • 26. Database column type ‘json’ support (1) â–Ș insert(), update(), bulkInsert() â–Ș value can be array, will be automatically converted ext_tables.sql: CREATE TABLE tx_myextension_domain_model_foo ( col1 varchar(100) DEFAULT '', col2 json );
  • 27. Database column type ‘json’ support (2) TCA type ‘json’ allows editing (using T3Editor if that is available)
  • 28. Simple query parameters for Extbase BE modules Query parameters without namespaces can be used in BE modules based on Extbase. To disable this for an extension: module.tx_myextension { features { enableNamespacedArgumentsForBackend = 1 } }
  • 30. DataProcessors tagged with short name for TS DataProcessors can be tagged and the tag can be used as name in TS. This also enables DI. In Services.yaml: VendorMyExtensionDataProcessingFooProcessor: tags: - { name: ‘data.processor’, identifier: ‘powerfoo’ } In TypoScript: dataProcessing.10 = powerfoo
  • 31. Easier tagging of backend controllers Previously in Services.yaml: VendorMyExtControllerSomeBackendController: tags: [‘backend.controler’] Alternative: use TYPO3CMSBackendAttributeController; #[Controller] class SomeBackendController {}
  • 32. Easier registration of upgrade wizard Register upgrade wizard throught PHP custom attribute. use TYPO3CMSInstallAttributeUpgradeWizard; #[UpgradeWizard('fooUpgradeWizard')] class FooUpgradeWizard implements UpgradeWizardInterface {}
  • 33. Yaml import supports glob patterns Example: imports: - { resource: "./**/*.yaml", glob: true } - { resource: "EXT:core/Tests/**/Configuration/**/ SiteConfigs/*.yaml", glob: true }
  • 34. API to read site settings (1) In older versions: $redirectSettings = $site ->getConfiguration()[‘settings']['redirects'] ?? [];
  • 35. API to read site settings (2) Now: $siteSettings = $site->getSettings(); $redirectSettings = $siteSettings->get(‘redirects’); TypoScript: page.10 = TEXT page.10.data = siteSettings:redirects.httpStatusCode
  • 36. Language fallback for content (1) The fallback type ‘fallback’ now works for content too. â–Ș Works in TypoScript and Extbase â–Ș Only with fallbackType = fallback â–Ș Stops at default language (with weird fallback chains) Fallback types ☞
  • 37. Language fallback for content (2) strict: Only renders content that is translated in the target language or created in that language. Keeps sorting behaviour from default language. free: Only looks at content in target language, ignores sorting behaviour from default language.
  • 38. Language fallback for content (3) fallback: If page is not available (or not even created) in target language it follows the fallback chain. For each content part it’s checked if it’s available in the target language, otherwise fallback chain is checked.
  • 41. Magic methods in Extbase repositories are deprecated!! Methods like findBy<Property>(), findOneBy<Property>(), countBy<Property>() are marked as deprecated. In v13 deprecation notices will be triggered and they will be removed in v14. New: findBy([‘propertyName’ => $propertyValue]); findOneBy([‘propertyName’ => $propertyValue]); count([‘propertyName’ => $propertyValue]);