Seit 2012 blogge ich auf www.derhansen.de über Themen aus meinem Arbeitsalltag, welche ich mit der Allgemeinheit teilen möchte, um anderen evtl. dadurch zu helfen. Zuerst habe ich in deutscher Sprache meine Artikel geschrieben, bin dann aber dazu übergegangen, meine Artikel in englischer Sprache zu verfassen, um eine größere Zielgruppe anzusprechen.
Tuesday, October 03, 2023 – typo3, querybuilder, slow, xdebug, profiling
The pitfalls of reusing TYPO3 QueryBuilder: Analyzing a performance bottleneck
TL;DR: Do never reuse an instance of the TYPO3 QueryBuilder for queries, even if the query is the same but with different parameters, since this causes a significant performance decreasement when processing larger amount of records.I was recently involved in refactoring an older codebase in a TYPO3 project. One part of that codebase was a data…
Thursday, September 14, 2023 – typo3, image processing, distorted image, exif
The significance of the PHP exif module in TYPO3 and why it should always be enabled
TL;DR: If using original portrait images created with modern camera systems, you should ensure that the PHP exif module is active, so that portrait images do not get distorted.People who know me most likely also know, that I like to work on challenging and complex TYPO3 tasks. Yesterday, I faced an unusual situation in TYPO3, which took me some…
Thursday, July 13, 2023 – typo3, backend module, ckeditor
How to use CKEditor in a TYPO3 backend module
In TYPO3 backend modules, it can be useful to provide a CKEditor instance, for example when creating content like dynamic HTML emails. The user then has the possibility to enrich the email content with basic formatting like making text appear in bold, italic or underline or even add links.I sometimes use this possibility on websites, where my…
Saturday, June 03, 2023 – typo3, formengine, custom element
Invalid custom formengine element causing persistence issue in TYPO3 backend
TL;DR: Always make sure, that a custom TYPO3 formengine element returns valid HTML in $resultArray['html']Some days ago I stumbled across this issue on TYPO3 forge with the title “TCA IRRE does not save, maybe if there are to many objects”. Since I also use inline elements in my extensions and I never experienced the reported problem, I was in…
Sunday, May 21, 2023 – t3version, crawler, optimization
Optimizing t3versions for improved TYPO3 version analysis
My t3versions TYPO3 version analysis and statistics service is running for over five years now. During the years, I had to learn, that crawling and analyzing most likely the whole WWW for TYPO3 websites is sometimes challenging.In order to find new websites using TYPO3, I regulary perform a crawling process, which checks over 260 million…
Friday, May 05, 2023 – TYPO3 12.4, CKEditor 5, plugin
How to create a custom CKEditor 5 plugin for TYPO3 12.4
CKEditor is a popular WYSIWYG (What You See Is What You Get) editor used for creating rich-text content on the web. For many years, CKEditor 4 has been the go-to solution for content editors and developers alike. However, with the ever-evolving web technologies, CKEditor 4 has now been deprecated and replaced with the newer version, CKEditor…
Monday, May 01, 2023 – TYPO3 12.4, password, validation, security
How to extend Password Policy validation in TYPO3 12.4
With TYPO3 version 12, the new global password policies feature has been introduced (see forge issue 97387. It allows to define one or multiple password validators tobe used in different scopes. The TYPO3 core includes 2 password validators, which are configured in the passwordpolicy named default. This password policy is used in frontend and…
Sunday, March 26, 2023 – TYPO3, table wizard, performance
TYPO3 table wizard limitations in TYPO3 11.5+
I recently updated a TYPO3 website for one of my clients from TYPO3 10.4 to 11.5. The whole update went prettysmooth and the client was happy with the new version except one thing. The table wizard in TYPO3 11.5 (TCA renderType='textTable') was causing some problems, as it now was always rendered.The table wizard is really helpful if you want…
Saturday, December 31, 2022 – TYPO3, extension
TYPO3 12 not working after extension install
While making some of my extensions compatible to TYPO3 v12, I stumbled across the problem, that the wholeTYPO3 website did not work anymore (frontend/backend) after the extension has been installed. Obviously therewas no error message in the logs available, and it took me some time to figure out, why the website was not working.With TYPO3 11.5,…
Sunday, October 09, 2022 – TYPO3, plugin, extbase, configurePlugin
Problem with all extbase plugins during TYPO3 11.5 update
In a TYPO3 project, where I was updating the website from TYPO3 10.4 to version 11.5, I suddenly faced the situation,that all extbase plugins did not work anymore. The following error message was displayed (example for TYPO3 ext:news):The default controller for extension "News" and plugin "Pi1" can not be determined.Please check for…
Saturday, July 16, 2022 – form, spam, typo3, ext:form
Restricting automated spam submissions in web forms
TD;DR - Use JavaScript to calculate the value of a hidden field which is evaluated on formsubmission. See exampleIt can be frustrating when spambots automatically submit forms on a website you run. Many years ago, when websites usedto have guestbooks, the spambots usually added new guestbook entries containing links in order to create a huge…
Thursday, June 23, 2022 – TYPO3, FluidEmail, StandaloneView, CLI, Symfony Console
Using TYPO3 FluidEmail in CLI context
Since TYPO3 10.4 it is possible to use TYPO3\CMS\Core\Mail\FluidEmail to send emails with body content renderedby Fluid. This all works fine as long as you work in frontend or backend context, but when you use FluidEmail in CLIcontext (e.g. in a symfony console command), you will run into some problems. Since no real server request object…