Blog

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. 

How to use MySQL FIELD-function in TYPO3 8.7 with Doctrine DBAL

When you want to query an Extbase repository for a list of UIDs or PIDs, you usually add a query constraint like query->in('pid', $pidList) to the query, where $pidList is an array of integers. But what, if you want to control the sorting of the returned records? Lets assume, you want to select the following list of UIDs [5, 3, 4, 1] from your repository and the sorting or the UIDs must rem...

Monday, May 15, 2017 Doctrine DBALExtbaseMySQL fieldtypo3 8.7

TYPO3 - Adding direct mail fields to femanager

In a project I needed to add the direct mail fields "Activate Newsletter" and "Subscribe to categories" to the TYPO3 femanager (thanks to Alex Kellner for this great extension), so frontend users are able to subscribe to a newsletter and select newsletter categories.

Since femanager is created with Extbase, it is easily extendable and I created a small TYPO3 extension named femanager_dmail...

Wednesday, January 25, 2017 Direct MailfemanagerTYPO3

Testing and deploying TYPO3 using GitLab, GitLab CI, Capistrano and TYPO3 Console

In this article, I'll show you how to setup automated testing and continuous deployment of a TYPO3 website using GitLab, GitLab CI, Capistrano and TYPO3 Console. The main purpose of the article is to give you a starting point for automated testing and continuous deployment.

With the setup described in this article, I want to make sure, that

  • tests are executed automatically on every commit
  • ...

Tuesday, October 04, 2016 CapistranoContinuous Deploymentcontinuous integrationGitLabGitLab CITYPO3TYPO3 Console

Laravel 5 - "Session store not set on request" running functional tests

tl;dr - If your Laravel functional tests fail with "RuntimeException: Session store not set on request.", don't use the withoutMiddleware trait in your tests and selectively disable middleware components you don't need when executing tests by using APP_ENV in your middleware.

In a Laravel 5.2 project I had some initial problems setting up the functional tests. The test code was really...

Monday, May 02, 2016 disable middlewarefunctional testsLaravel 5

How Extbase determines the storagePid setting for a plugin

When you search for the terms "extbase storagePid" in your favorite search engine, you will find several blogs, forum-posts, mailing list entries and code examples on how to set the storagePid for the plugin of an Extbase extension.  Many examples refer to TypoScript persistence settings for the extension itself (plugin.tx_myext.persistence.storagePid), which is good, as long as you do not ...

Monday, February 08, 2016 ExtbasestoragePidTYPO3 6.2TYPO3 7.6

TYPO3 ExtBase - Hidden and deleted property of domain models

TYPO3 ExtBase repositories do by default only return non-hidden and non-deleted records. You can easily override this behavior by modifying the default query settings for the given repository. If you for example want to return all FrontendUser (including hidden and deleted) from a TYPO3 website, you can set the query settings as shown below.

Now all available FrontendUser records are...

Sunday, January 17, 2016 DeletedExtbaseHiddenTYPO3

TYPO3 - Using Fluid StandaloneView to render localized templates in a scheduler task (part 2)

Today I found, that the technique I described in my blogpost about rendering localized Fluid templates in a scheduler task does not work as expected. As long as you want to switch the language used to render the templates only one time, then you're fine. But as soon as you want to switch the language several times (e.g. sending multiple localized e-mails in one request), then you experience...

Sunday, November 15, 2015 f:translatefluidscheduler taskTYPO3

TYPO3 - Using Fluid StandaloneView to render localized templates in a scheduler task (part 1)

tl;dr: If you want to use Fluid StandaloneView to render a template in a given language from the backend context (e.g. scheduler task), make sure you set the language in $GLOBALS['BE_USER']->uc['lang']

If you want to switch the language several times in one request, please read on in part 2 of this blogpost.

Problem description

For my Event Management TYPO3 Extension I am developing a...

Sunday, October 18, 2015 f:translatefluidscheduler taskTYPO3

TYPO3 6.2 - How to create a custom header layout and keep the alignment field working

tl;dr: When you add custom headers layouts to TYPO3, always keep in mind to retain original functionality of the alignment select field as shown at the end of this blogpost (solution 1 or solution 2), so editors don't get confused.


If you use CSS Styled Content in TYPO3, there are many tutorials on the internet showing how to configure custom headers. So why do I write another article...

Sunday, August 16, 2015 alignmentcustom headerTYPO3

Faster builds of my TYPO3 extensions on Travis CI

tl;dr If your Travis CI project was created before 01.01.2015 and you think your builds must run faster, switch to container based builds by adding sudo: false and configuring a cache for composer dependencies in your .travis.yml file.

Nearly all my Open Source TYPO3 extensions are built on Travis CI. This runs really fine and I am very happy with the service Travis CI offers for free if...

Monday, June 29, 2015 buildcontainer based buildextensiontravis ciTYPO3