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, December 29, 2020 – A - Z Keyword list, content element, mw_keywordlist, sitemap, TYPO3 Extension

Replace functionality of TYPO3 extension mw_keywordlist with a custom sitemap content element

One of the big pain points when it comes to TYPO3 major updates are extensions. If the extension stack contains unmaintained / unsupported extensions, updating can really be hard, since existing functionality needs to be replaced and existing data needs to be migrated.I recently had this problem on a website, where the TYPO3 extension…

Read more

Thursday, November 19, 2020 – 10.1, 10.3, mariadb, order by

Unexpected sorting behavior after update from MariaDB 10.1 to 10.3

TL;DR The sorting behavior changed from MariaDB 10.1 to 10.2 due to a bug in MariaDB 10.1 After updating from Ubuntu 18.04 LTS to 20.4 LTS a previously working a PHP application which contains a data export suddenly did not return the expected result any more. I debugged this scenario by comparing the database query results in the data…

Read more

Monday, November 16, 2020 – extend, flexform, TYPO3

How to extend existing FlexForm select options of a TYPO3 plugin using Page TSconfig

Sometimes existing options of a TYPO3 plugin may not fully suite the project requirements. As an example, I refer to my TYPO3 extension "Event Management and Registration" (sf_event_mgt). The extension allows to select the ordering of records by a specific field in the FlexForm plugin options as shown on the screenshot below.The 3…

Read more

Friday, June 26, 2020 – Acceptance Testing, GitHub Actions, MailHog, TYPO3 CMS

Testing email delivery of a TYPO3 extension with Codeception, MailHog and GitHub Actions

Some weeks ago I published my blogpost about how to create a GitHub Actions build pipeline for a TYPO3 Extension that executes Unit-, Functional- and Acceptance tests. The extension tested in that blogpost was only a simple demo extension and for me this was a preparation to finally migrate the CI pipeline for my TYPO3 extension…

Read more

Tuesday, May 05, 2020 – codeception, Composer, GitHub Actions, PHP, tests, TYPO3

Unit-, Functional- and Acceptance-Tests for a TYPO3 Extension with GitHub Actions

Back in 2017 at TYPO3 Camp Munich I held a talk about Unit-, Functional- and Acceptance-Tests for a TYPO3 Extension with GitLab CI. I never really used that setup for my Open Source Extensions, since they all are hosted on GitHub. But since november 2019 GitHub Actions are available, so I finally took some time to migrate my GitLab CI…

Read more

Wednesday, April 29, 2020 – setToDefaultOnCopy, TCA, TYPO3

How to add a replacement for the removed TCA Option "setToDefaultOnCopy" in TYPO3 10.4

The TYPO3 TCA Option "setToDefaultOnCopy" has been removed in TYPO3 10 in order to reduce the amount of checks in DataHandler and the amount of available options in TCA. The documentation says, that "This option was only there for resetting some `sys_action` values to default, which can easily be achieved by a hook if needed. If an…

Read more

Thursday, April 02, 2020 – limit, subset, system categories, TYPO3

How to limit the TYPO3 category tree to a subset of categories for extension records

In many TYPO3 projects I've been working in, the TYPO3 category system is used to structure content by one or multiple categories. A typical category tree I often see is build up as shown in the example below: Full TYPO3 category tree This is a very plain way to create a category tree and the structure in the example is limited…

Read more

Wednesday, February 19, 2020 – %20-%20, apache, dash, Excel, rewrite

Apache rewrite rule to replace %20-%20 with a dash (#) in URLs

Some old(?) versions of Microsoft Excel replace a dash (#) in an URL with "%20-%20". The following example shows, how Excel transforms URLs: Original URL: https://www.domain.tld/some/path/#my-anchor URL when clicked in Excel: https://www.domain.tld/some/path/%20-%20my-anchor This may lead to unexpected behavior on webserver…

Read more

Friday, November 22, 2019 – FAQ, irfaq, Symfony Console, TYPO3

TYPO3 Extension "Plain FAQ" released

Today I released the first public version of my latest TYPO3 Extension called "Plain FAQ". The name already says it - the extension is a very simple solution to manage Frequently Asked Questions in TYPO3. Below follow some of the facts about the Extension: Compatible with TYPO3 8.7 and 9.5 Based on Extbase and Fluid Covered with unit…

Read more

Monday, September 02, 2019 – dependency, Extbase, There is no column with name

How to fix TYPO3 error "There is no column with name 't3ver_oid' on table"

Recently the following error message showed up in a project I was updating to TYPO3 9.5: There is no column with name 't3ver_oid' on table 'tx_news_domain_model_news'. When you see this message in a TYPO3 project, you should of course first check, if the field is really available in the mentioned table and second, you should check,…

Read more

Sunday, August 25, 2019 – cache, development, disable, nginx

How to disable the nginx TYPO3 cache set by ext:nginx_cache in development context

When you run TYPO3 on nginx webservers, you can use the nginx FastCGI cache to really increase the performance of your website. Basically, the nginx FastCGI cache stores pages rendered by TYPO3 in the webservers memory. So once a page is cached in the nginx FastCGI cache, it will be delivered directly from the webservers memory which is…

Read more

Monday, April 01, 2019 – datamapper, Extbase, repository, wrong results

Extbase $query->statement() - What can possibly go wrong?

Last week I had to resolve a problem in a 3rd party Extension, where an Extbase Plugin returned unexpected results when used multiple times on the same page. The problem showed up in the frontend, where the plugin listed some products by a given category. When the plugin was present one time on a page, the output was as following…

Read more