Daniel Siepmann - Coding is Art

Blog Posts

Topic: 12 LTS

Import Data within TYPO3

Published: , Updated:

Tested with TYPO3: 12 LTS, 11 LTS, 10 LTS, 9 LTS, 8 LTS

Topics: typo3, extbase

TYPO3 developers are often faced with the same requirement: Import data into TYPO3. TYPO3 itself offers many ways to import data into the system. The DataHandler (TCE) or Extbase might come to your mind, as well as plain Doctrine DBAL queries.

This post will explain my views on each of the options and their pros and cons. I don't consider any of them the general solution, but the pros and cons might help you find the one suiting your current use case best.

Auto migrate PHP code via configuration

Published: , Updated:

Tested with TYPO3: 12 LTS, 11 LTS, 10 LTS

Topics: typo3

We need to update software regularly. E.g. because our framework released a new major version containing breaking changes to APIs. It is a cumber stone and hard and boring task, not meant to be done by humans. Luckily we have computers and software we can use to automate boring tasks.

Our example is about TYPO3 and Aimeos updates. TYPO3 is an open source CMS while Aimeos is an open source shop framework. I'll share my experience how to automate the boring tasks during one update and how to use the automation while upgrading further installations.

We will check out rector and show how you can use existing rules with custom configuration to auto mate your code migrations.

Reuse existing Extbase controller

Published: , Updated:

Tested with TYPO3: 12 LTS, 11 LTS, 10 LTS

Topics: typo3, extbase

Since TYPO3 10.0 it is possible, actually necessary, to use FQCN (=Fully Qualified Class Names) for controllers when configuring plugins and modules. This provides a new benefit in terms of reusing and sharing code between different extensions.

This blog post will explain the benefit and provide an outlook in a possible future of TYPO3 Extbase extensions.

TYPO3 tracking extension

Published: , Updated:

Tested with TYPO3: 12 LTS, 11 LTS, 10 LTS

Topics: project, typo3

I've created a small tracking extension for TYPO3. This should basically demonstrate what developers can achieve with newest APIs inside of TYPO3 v10.

It also provides widgets and works as a showcase for the new EXT:dashboard.

Two of our customers requested us to extend the extension for their TYPO3 installations. Therefore we added some more features and are now releasing the extension for public use.

t3oce: Short Introduction into TYPO3 - What is Content?

Published: , Updated:

Tested with TYPO3: 12 LTS, 11 LTS, 10 LTS

Topics: video, tutorial, talk

I prerecorded a talk for the t3oce 2020. The talk should introduce beginners into the concepts of TYPO3. It should explain how to add and edit content, as well as what content in Context of TYPO3 actually is. Once one knows these basic concepts, I explain how to render content with TYPO3.

The talk should work as an basic introduction into TYPO3 for integrators as well as developers.

TYPO3 content caching

Published: , Updated:

Tested with TYPO3: 12 LTS, 11 LTS, 10 LTS, 9 LTS, 8 LTS

Topics: typo3, typoscript

TYPO3 provides a comprehensive caching implementation. Built into all parts of TYPO3. By default TYPO3 tries hard to provide a working caching solution for Websites. This way all generated content is cached whenever possible and delivered right from cache without rendering. This leads to some issues if dynamic content is added. Some bypass this issue by deactivating caching partly or for whole pages.

This post explains how to configure TYPO3 to make caching work without deactivating it. One place where caching does not work out of the box is changing files via Filelist module, changes there will not be reflected in content elements using a file reference. This example is used to explain how caching works in TYPO3 and how to adjust caching.

Configure page UIDs for all content elements in TYPO3

Published: , Updated:

Tested with TYPO3: 12 LTS, 11 LTS, 10 LTS, 9 LTS, 8 LTS

Topics: typo3, typoscript

TYPO3 uses pages to organise the structure of a website. This leads to situations where you have a specific page for a feature, e.g. a page “Search” containing the plugin to display search results. Or a page containing the profile of the currently logged in user. Typically links to these pages are scattered all over the website, e.g. within some content elements, inside the page layout like header and within some plugins.

This Blog post explains how to provide the page uid for a specific page, to all three kinds of “content”, where you typically need this information, with three lines of TypoScript.

How to create TYPO3 Form select element with options selected from database

Published: , Updated:

Tested with TYPO3: 12 LTS, 11 LTS, 10 LTS, 8 LTS

Topics: typo3

TYPO3s new form framework allows to write custom form elements. This way you are able to define a new select element, based on the existing one, but filled with options fetched from database.

E.g. you want your user to select from sys_category or some other custom records. In this blog post I will show how to provide the necessary logic in a custom PHP class, how to register a new element extending the existing one and how to use this new element in your forms.