TYPO3 site package tutorial

This tutorial describes step by step how to come from your first TYPO3 installation to the first basic site.

A working copy of the site package extension can be retrieved from the TYPO3CMS-Tutorial-SitePackage-Code repository.


Introduction

Here we define the benefits of the site package: like the concepts of encapsulation, the concepts of dependency management, the clean separation from the userspace (fileadmin/FAL), some important security benefits, deployment and distributability advantages.

Prerequisites

In this section we mention the prerequisites that you need before you start with this tutorial.

Minimal site package

Create a minimal site package that outputs "Hello World".

Design Template

We define the starting point to build a site package extension. Normally we start with static html files and a bunch of css and JavaScript files. This is also called "integrate".

Fluid Template

We introduce the templating engine Fluid, that is used to render the html pieces in a logically manner. Then we describe the directory structure that is needed in a site package extension. We also explain the first steps to include the previously static files and html pieces using Fluid.

Extension Configuration

We explain the needed composer configurations and we connect it with the site sets configurations that we made in the previous chapter.

Extension Installation

In this section we go through the process of installing the site package extension with composer.

Create initial pages

Here we show enter the first content into the TYPO3 backend. We create pages, add the site configuration from the site package, show the connection of the site configuration and the file config.yaml and show case the view module in the TYPO3 backend.

Main menu

We introduce the main menu, explain how we build up a menu processor with TypoScript and how we can output the menu with Fluid. We introduce the so called "Debug ViewHelper".

Content mapping

Here we explain the purpose of backend layouts. Additionally we introduce the DatabaseQueryProcessor which is used to render content from a special "colPos" previously defined in the backend layout. We use Fluid to output content from a specific colPos. By this we get to know the cObject ViewHelper.

Summary

In this chapter we sum up the steps that we did after we have gone through this tutorial.