Spring naar hoofd-inhoud

A Global Standard for TYPO3 Certifications

The TYPO3 Certification Team is committed to the development of a global standard for TYPO3 certifications. The certification program verifies the knowledge of the certified and the organizations employing them. The exams consist of multiple steps, each requiring different expertise.

A Collaboration between the Certification and the Education Team provides learning materials to support the certification candidates.

Syllabus

The "TYPO3 CMS Certified Integrator" develops the template for a website, configures all the necessary extensions and creates the access rights for backend users. The "TYPO3 CMS Certified Integrator" does not install TYPO3 on the web server and does not program extensions. The "TYPO3 CMS Certified Integrator" knows how to configure the pre-installed TYPO3 using the installer.

This SkillSet is based on TYPO3 version 12 LTS and was created by the TYPO3 Education Committee.

  • About TYPO3

    TYPO3 is an open-source enterprise content management system (CMS). The system offers a wide range of functions out of the box and can be extended by extensions. The software license (GPL) lets everyone to access, read, copy, distribute, and modify the source code which is freely available. TYPO3 is well documented at https://docs.typo3.org

    Goals
    • I know what TYPO3 is and where I can get further information.
    • I know broadly the TYPO3 system requirements.
    • I know the TYPO3 vocabulary and can name the essential components.

  • TYPO3 Versions

    TYPO3 uses Semantic Versioning for the version numbers. Each major version usually gets 3 years of free bug fixes and security updates. After that the support can be extended with ELTS versions for a fee via TYPO3 GmbH.

    Goals
    • I know what Semantic Versioning means.
    • I know the difference between Sprint Release and LTS Release.
    • I know the TYPO3 Roadmap and therefore also the point in time when I will no longer receive free or paid security updates for my TYPO3 installation.
    • I know that TYPO3 GmbH offers Service Level Agreements.

  • TYPO3 Project

    The development of the TYPO3 project began in 1997. Since then, in addition to the TYPO3 CMS, other products such as Surf, Fluid, Neos have been developed as open source software by the TYPO3 community and later by TYPO3 GmbH, which was founded by the TYPO3 Association. The TYPO3 Association is the owner of the TYPO3 brand and provides the TYPO3 style guide.

     

    Goals
    • I know the rough history of the development of TYPO3.
    • I know the original developer of TYPO3.
    • I know the products that have been developed in the TYPO3 project (TYPO3 CMS, TYPO3 Surf).
    • I know what licenses are valid for the products and what rights and obligations derive from them.
    • I know how TYPO3 logos and fonts may be used. 

  • TYPO3 Community

    The TYPO3 community consists of everyone who uses TYPO3 as a editor or develops it further as a developer, integrator or agency. The community organizes further events like Usergroup meetings and TYPO3Camps. Everyone can participate in different teams to bring the TYPO3 project forward.

    Goals
    • I know the events organized by the TYPO3 community.
    • I know different teams such as the Documentation Team, the Strategic Initiatives, TYPO3 Marketing Team.
    • I know that everyone is invited to participate in the TYPO3 project.

  • TYPO3 Association

    The TYPO3 Association builds the groundwork for the TYPO3 project and empowers the TYPO3 community with infrastructure and guidance.

    Goals
    • I know the tasks of the TYPO3 Association.
    • I know the memberships and what benefits I get from them.
    • I know which events are organized by the TYPO3 Association.

  • Page Tree

    The structure of the web pages managed in TYPO3 is easily accessible via the page tree. It is possible to manage pages that are visible in the frontend as well as associated data, which are then installed at the appropriate place in the frontend. With a click on the page icon the context menu appears with additional options. 

    Goals
    • I know the structure of the page tree.
    • I am aware of the existence of the page tree context menu, and I am aware of the existence of various options offered.
    • I can use the page tree operations: Filter, Drag & Drop (Create, Copy, Delete).
    • I know the connection between the page tree and the menus in the frontend.

  • Admin Panel Basics

    Once enabled, the admin panel can be accessed by a click of a button in the frontend. This opens a bar at the bottom the screen that shows a summary of information about the currently accessed page, including several TypoScript messages, page load time, and possibly errors and warnings. The main purpose of the admin panel is general system debugging but it contains toggles and switches to control the frontend output as well.

    Goals
    • I know that the admin panel exists and that it can be dis/enabled by an administrator.
    • I know how to find information like the current page ID, etc.
    • I know that I can use the admin panel in the frontend to find/open a page in the backend.
    • I know how I can simulate a specific date or frontend user group.
    • I know how to clear or deactivate the page cache through the admin panel.

  • TYPO3 Console

    Using the TYPO3 console core extension.

    Goals

    I know

    • how to execute CLI commands using the command line.
    • what parameters are and how I can assign values to them.

    I can

    • list all commands available via TYPO3 console.
    • display a help text for a specific command available via TYPO3 console.
    • execute a specific command via TYPO3 console.

  • Admin Panel

    The “TYPO3 Admin Panel” provides a deeper insight into the internal processes of TYPO3 at run-time. Once it has been activated, backend users can access performance and cache statistics, settings of a specific page, etc. while accessing the frontend of the website.

    Goals
    • I know which debug information the admin panel provides.
    • I know how to activate the admin panel for users or user groups.
    • I know that I can enable/disable the various parts of the panel for backend users.
    • I know how to use the admin panel to analyse performance problems.

  • Dashboard Basics

    The backend module "Dashboard" allows backend users to create, select, and configure dashboards and widgets. These widgets typically provide details and status information about the TYPO3 instance.

    Goals
    • I know the purpose of the dashboard and its features.
    • I am familiar with the terms "dashboard" and "widget".
    • I know how to create and edit a dashboard.
    • I know how to create and/or select different types of widgets.
    • I know that some functions of the "Dashboard" backend module require administrator privileges.
    • I know that TYPO3 developers can extend the "Dashboard" functionality, e.g. develop custom widgets.

  • TypoScript Record

    Creating and using TypoScript records, understanding connections between records.

    Goals
    • I can create TypoScript records.
    • I can integrate TypoScript records on my website and use inheritance for them.
    • I know the difference between the Root TypoScript record and Additional TypoScript records and can choose the correct approach for given scenarios.

  • TypoScript Conditions

    Using TypoScript conditions in concrete scenarios.

    Goals
    • I know how to compare values with TSFE variables.
    • I know how to compare with values from data records (e.g. be_layouts).
    • I know how to compare values from global variables (e.g. hostname).
    • I know how to compare values from the current session
    • I know how to compare values from the site configuration
    • I know, now the symfony expression language has been implemented.

  • TypoScript Constants

    Setting and using constants in TypoScript.

    Goals
    • I know what TypoScript constants are and how they are defined.
    • I can use TypoScript constants in my templates.

  • TypoScript OptionSplit

    Option split basics, overview of all seven option split rules.

    Goals
    • I know the TypoScript option split ruleset.
    • I can use option split in a meaningful way (e.g. for menus).

  • TypoScript Wraps

    Using TypoScript wraps in order to manipulate data.

    Goals
    • I know which wrap functions are available, what they do, and how they are used, e.g. stdWrap, innerWrap, outerWrap, dataWrap, noTrimWrap and others.

  • TypoScript TLOs and Reserved Names

    Top-Level Object (TLO) overview, special TLOs like temp, commonly used configuration directives in regard to TLOs.

    Goals
    • I know what Top-Level Objects are.
    • I can give examples for Top-Level Objects and according configuration.
    • I can configure Top-Level Objects with TypoScript to change common configuration in regard to a website.

  • TypoScript Menus

    Generation of hierarchical menus with TypoScript, using item states (CUR, SPC, etc.).

    Goals
    • I can create hierarchical menus with multiple levels with TypoScript.
    • I can create item states for menu elements and assign them (CUR, SPC, etc.).

  • Page TSconfig

    Basics of page-specific TypoScript in the backend.

    Goals
    • I know what Page TSconfig is and what the difference to TypoScript in frontend templates is.
    • I know basics of which settings can be made with the help of Page TSconfig.
    • I can give basic examples for Page TSconfig and generate practical examples.
    • I know where TYPO3 12 looks by default for a file for Page TSconfig inside a sitepackage extension.

  • TypoScript Fluid Template Object

    TypoScript knowledge for using basic Fluid templates.

    Goals
    • I know how I can use Fluid for frontend templating.
    • I know how to pass variables and objects to Fluid frontend templates from TypoScript.
    • I know that data can be modified by data processors before being passed to the Fluid template.

  • Knowing Data Sources

    What data sources are available to access in TypoScript.

    Goals
    • I know what data sources are available (like global objects, data records, global variables).

  • Accessing Data Sources

    Using available data sources in TypoScript.

    Goals
    • I know how to retrieve values from the available data sources, e.g. the current page-id
    • I know the currently logged in FE user.
    • I know a field value from a data record.
    • I know the properties of "data/getText"

  • TLOs Temp and Lib

    Difference between TypoScript TLOs temp and lib, what the main difference is.

    Goals
    • I know the caching behaviour for temp versus other TLOs.
    • I can choose the fitting TLO for certain scenarios.

  • TypoScript TLO Config

    Using the TypoScript TLO config to define behaviour of the instance in terms of FE output.

    Goals
    • I know some properties of config and their purpose.
    • I can define cache settings and additional headers.

  • TypoScript Syntax & Basics

    TypoScript basic knowledge and syntax.

    Goals
    • I can explain what TypoScript is.
    • I can include TypoScript inside TYPO3 so it affects the behaviour of the site.
    • I can assign values.
    • I know the difference between referencing and copying and can apply these techniques to fitting scenarios.
    • I know the syntax (like comments and brackets).
    • I know the difference between functions, objects and properties and can apply this knowledge to different scenarios.

  • Image Generation / Manipulation with TypoScript

    Image creation, image manipulation and integration of fonts with TypoScript.

    Goals
    • I can create images with TypoScript.
    • I can manipulate existing images with TypoScript.
    • I can include text and specific fonts in images with TypoScript.
    • I can access crop variants and take them into account.

  • TypoScript Language Menus

    Creating a selection menu for different languages on your website using TypoScript.

    Goals

    I can

    • create a language menu for the frontend with the help of TypoScript

  • PageTitleProvider

    As part of the search engine optimization (SEO), the HTML title of pages can be controller by using TypoScript to configure the PageTitle Handler.

    Goals
    • As an integrator, I can set the priorities of PageTitle Providers using TypoScript.
    • I know that extensions can add more PageTitleProviders

  • Active TypoScript / Included TypoScript

    About the Active TypoScript and the Included TypoScript.

    Goals
    • I know what the "Active TypoScript" view is and which purpose it serves.
    • I know what the "Inclued TypoScript" view is for.
    • I can alter the value of TypoScript objects with the help of the Active TypoScript view.
    • I can use the "Included TypoScript View" to analyse existing TypoScript code and identify inheritance in templates.

  • Server-Side Image Manipulation

    Overview of TYPO3 supported server-side image manipulation libraries.

    Goals
    • I know what server-side image manipulation libraries are (e.g. ImageMagick).
    • I know which server-side image manipulation libraries TYPO3 supports.
    • I know how I can test if TYPO3 can interact with the installed server-side image manipulation library correctly.
    • I know which fonts and filetypes are supported for generating images with text.

  • Knowing the Cron Daemon

    Cron daemon basics on UNIX-based systems and according cronjobs.

    Goals
    • I know what a cron daemon and cronjobs are.
    • I can create a cronjob with a specific interval on a server.

  • YAML Basics

    Understanding YAML configuration files.

    Goals
    • I know the importance of indentation and colons, and can write and adjust YAML configuration files.

  • File Permissions

    Understanding UNIX system file permissions.

    Goals
    • I know how file permissions are implemented in UNIX-based systems.
    • I know how to gather information about existing file permissions.
    • I know how to adjust file permissions.

  • TYPO3 File Architecture

    TYPO3 architecture – charsets, folder structure, access rights.

    Goals
    • I know that the default charset to be used with TYPO3 is UTF-8.
    • I know which files and folders TYPO3 generates and their purpose.
    • I know which permissions on Linux/UNIX-based systems have to be set for files/folders for optimal TYPO3 performance.

  • Command Line Basics

    Performing elementary tasks on the command line.

    Goals

    I can

    • invoke the command line
    • list all files in a directory
    • change to a specific directory
    • create files and directories
    • remove files and directories (including recursively)
    • copy files and directories (including recursively)
    • display the help for specific commands

  • Regular Expression Basics

    Identifying and matching patterns in strings with the help of regular expressions (PCRE).

    Goals

    I know

    • how regular expressions can be used for pattern recognition
    • how to use external resources for verifying regular expressions

    I can

    • create simple regular expressions to match certain use cases

  • IP-Anonymization for Data Records

    Anonymizing IP-Adresses in the persistent storage of TYPO3 with the help of the scheduler for increased data protection.

    Goals

    I know

    • possible reasons for anonymizing IP-adresses stored in the database

    I can

    • setup a scheduler task for anonymizing IP-adresses stored in the syslog
    • use advanced options of a scheduler task for anonymizing IP-adresses in other tables inside the database

  • HTTP Status Codes

    Basic knowledge of HTTP status codes.

    Goals
    • I know what HTTP status codes are
    • I know the typical 2xx success codes.
    • I know the typical 3xx redirections, in particular 301, 302, and 307, including their specific characteristics.
    • I know the typical 4xx client errors, in particular 403 and 404.
    • I know the typical 5xx server errors which can be found in server log files.

  • Git basics

    Basics and most important commands for working with the version-control system Git.

    Goals

    I know

    • what a VCS is
    • what a branch is
    • what a tag is
    • what a repository is
    • what a merge is

    I can

    • initialize a Git repository
    • execute commands "commit", "push" and "pull"
    • create a branch and work on it
    • assign a tag to a certain development state
    • merge code

  • User TSconfig

    Using TSconfig for backend user settings.

    Goals
    • I know what User TSconfig is and how it can be generated.
    • I can name scenarios for User TSconfig and apply them, for example:
      • setting permissions on a user (or user group) base (visibility, readonly, etc.)
      • setting up default values and override values

  • Scheduler

    The Scheduler supports one-time or periodic execution of tasks. The TYPO3-internal tasks can be extended by extensions.

    Goals
    • I know what the TYPO3 Scheduler is.
    • I know that a system cron job is required to run the TYPO3 Scheduler and I know how to configure the cron jobs.
    • I know how to use the Scheduler to execute a given task at a given time.

  • Forms Vocabulary

    Knowing the terminology of the form framework.

    Goals
    • I know the terminology of the form framework und I understand the meaning of "Variants", "Validators", and "Finishers".

  • Using the Drag & Drop Editor for Basic Forms

    Building simple forms.

    Goals
    • I am able to build simple forms using the built-in drag'n drop editor of the form framework.
    • I know the different purposes of the mailer properties: From, To, Bcc, Cc, Reply-To, Return-Path and the resulting problems when sending emails.

  • Reusing Basic Forms

    Transferring basic forms from one instance to another installation.

    Goals
    • I am able to transfer a form from one installation to another.

  • Forms Localization

    Setting up localization for a given form.

    Goals
    • I am able to localize the labels and content of a form in the TYPO3 backend.

  • Forms Customization

    With customization of the YAML files, many configurations can be made that are not possible via the drag-and-drop editor.

    Goals
    • I am able to configure advanced fields
    • I am able to pre-populate form fields with data of my choice.
    • I am able to create advanced error messages via YAML

  • Forms Templating

    Adjusting and customizing form templates.

    Goals
    • I am able to adjust the HTML of a given form to my needs (customization).

  • Import/Export

    Exporting pages and content to another installation

    Importing pages and content from another installation

    Goals
    • I know how to import and export pages and/or content elements and transfer them from one installation to another.

  • Root Node

    Properties and particularities of the root node in TYPO3.

    Goals
    • I know what the root node is.
    • I know the importance of the root node and its particularities.
    • I know which records have to be placed on the root node.

  • Database Mounts

    Configuring database mounts.

    Goals
    • I understand what a database mount is and why it's important.
    • I know how to configure database mounts for users and groups.

  • Managing Backend Pages Access

    Configuring access to backend pages and page (sub) trees for backend users and groups.

    Goals
    • I know how to configure access to the pages for backend users and groups.
    • I know that I can set default values for page creation via PageTS.

  • RTE Config

    Configure the Rich Text Editor.

    Goals
    • I know the possibilities and limitations of the Rich Text Editor (RTE) in TYPO3.
    • I know how to configure the RTE for specific fields, users, groups or pages.
    • I know how to extend the functionality of the RTE using CKEditor add-ons.

  • Accessing the Install Tool/Maintenance Modules

    Knowledge about security measures taken to protect the Admin Tools (Standalone: Install Tool) / maintenance modules.

    Goals
    • I know multiple ways of accessing the install tool and its modules
    • I know how the Admin Tools/Install Tool is protected.
    • I know how to set the password.
    • I know how to access the install tool if I don't know the Install Tool password.
    • I know how a backend user as system maintainer can get access to the install tool.
    • I know which folders are used to activate the admin tools with the ENABLE_INSTALL_TOOL file (composer/non-composer).

  • Workspace Concepts

    Knowledge about workspace concepts in TYPO3 context.

    Goals
    • I can explain what the purpose of workspaces in TYPO3 is.
    • I know which roles are related to workspaces.
    • I know that workspaces are core functionality.
    • I know that workspaces are provided by a system extension.

  • Configuring Workspaces

    Configuration and setup of a defined custom editorial workflow.

    Goals
    • I know how to consult with users in implementing an editorial workflow.
    • I know how to define workspaces, stages, roles and notifications.
    • I know which scheduler tasks are added by the workspaces extension.

  • Reports Module

    The Reports module contains information and diagnostic data about your TYPO3 CMS installation. This module can list configuration errors, security issues, etc.

    Goals
    • I know where to find the Reports backend module and I am familiar with its functions.
    • I know which details the Report module provides, e.g. system, security, extension, and Composer issues, etc.
    • I know how to configure a Scheduler task to send out status reports via email.

  • Language Records

    Supporting multiple languages.

    Goals
    • I know what language records are and why they are needed.
    • I know how to create and modify language records.
    • I know that the backend module Site Configuration stores the language configuration.

  • Managing Backend Users and Backend User Groups

    Configuring backend users and backend groups to ensure correct permissions for the editors.

    Goals
    • I understand what backend users and backend groups are.
    • I know how to configure backend groups in a correct way.
    • I know how to bundle user groups and inherit rights to other groups.
    • I know how to configure access to specific backend modules.
    • I know what exclude fields are and how to show/hide them for backend users.
    • I know how to compare backend users and backend user groups.

  • URL Routing Basics

    Understanding the basics of human readable URLs.

    Goals
    • I know that human-readable URLs are user-friendly and SEO-friendly URLs (also called "slugs").
    • I know that I can define rules that convert slugs into path segments, GET parameters, etc.

  • URL Routing in TYPO3

    Handling the routing implementation in TYPO3.

    Goals
    • I know where to find existing URL path segments (slugs) for pages in the TYPO3 backend.
    • I know how to adjust the page slugs.
    • I understand the relationship between routing path segments and relevant site configuration.
    • I know how to configure routes in the site configuration file "config.yaml".

  • Basic Site Configuration

    Setting up the basic domain and request related configuration for a website.

    Goals

    I can perform the following tasks, for a website featuring a single language:

    • setting a domain
    • configuring the error handling

  • Configure Installation-wide Options in the Admin Tools / Install Tool

    Important settings in the Admin Tools / Install Tool.

    Goals
    • I can activate and deactivate the Install Tool.
    • I can prevent unauthorized access to the Install Tool.
    • I can create new backend administrators with the Install Tool.
    • I can restrict backend login access to administrators during maintenance.
    • I can perform updates and migrations with the help of the update wizard.
    • I know where I can configure installation-wide options.
    • I can restrict cookies which are used to a specific domain.
    • I can configure the email setup.
    • I can configure the connection encryption.
    • I can configure session handling.
    • I can configure image processing.
    • I know how to configure CSP (Content Security Policy) settings.

  • TYPO3 URL Redirects (Configuration)

    Redirecting URLs in TYPO3, related options and their implications.

    Goals
    • I know how to create a redirect for multiple URLs to a specific page by applying a regular expression pattern.
    • I understand the implications of using a temporary vs. a permanent redirect status code (301, 302, and 307).
    • I know how to preserve additional GET parameters when creating a redirect.

  • Advanced Site Configuration

    Setting up advanced domain and language options for multiple websites on a single installation.

    Goals
    • I know how to set up multiple domains and related entry points.
    • I know how to assign languages to domains.
    • I know how to implement domain-based error handling by using the site configuration.
    • I know how to create domain-based static routes (e.g. for a robots.txt).
    • I know how to apply variants based on the application context.
    • I know how to use the settings from the site configuration (e.g. with TypoScript, Conditions, PHP).

  • TYPO3 Info Module

    The Info backend module displays a variety of information related to the pages in your web site.

    Goals
    • I know which information the backend module provides.
    • I know that extensions can extend the Info backend module.

  • Recycler

    The Recycler backend module provides the option to clear the garbage collection and to restore data.

    Goals
    • I know that I can use the Recyler to permanently delete data sets.
    • I know that I can use the Recyler to recover data sets marked as deleted.
    • I know how to configure the Recycler to limit access for editors by using User TSconfig.

  • Linkvalidator

    Detect broken internal and external links with the TYPO3 core extension Linkvalidator.

    Goals
    • I know that the Linkvalidator can be used to detect broken links (RTE and other content).
    • I know how to configure the Linkvalidator (TSconfig, Scheduler).
    • I know how to execute the Linkvalidator manually in the TYPO3 backend.
    • I know how to execute the Linkvalidator automatically by configuring a Scheduler task.
    • I know that the Linkvalidator sends reports in an email if executed as a Scheduler task.
    • I know how to customize the email that the Linkvalidator generates.

  • Dashboard Configuration

    Knowledge of the dashboard configuration options in the TYPO3 backend.

    Goals
    • I know how to configure an existing dashboard and how to add/remove widgets.
    • I know how to add additional dashboards for me and for non-admin backend users.
    • I know how to configure dashboard presets for new users using TSconfig.
    • I know that the configuration of existing widgets can be adjusted by YAML files.

  • Application Context

    The application context can be used to automatically switch configurations for different environments (e.g. development, staging and live system).

    Goals
    • I know that the application context can be changed in the web server configuration depending on the domain.
    • I know that I have to explicitly set the application context when I manage TYPO3 through the command line.
    • I know how to evaluate the application context in a TypoScript condition.
    • I know that the Application Information module in the topbar shows the currently configured application context.
    • I can configure system characteristics in the additional.php file based on the application context.
    • I can configure different URLs in the site configuration based on the application context by using "variants".

  • Internal Notes

    The system extension "sys_note" allows backend users to create internal notes.

    Goals
    • I know that the notes appear in different colors depending on the selected category.
    • I know that other backend users can see the notes if I haven't enabled the "personal" mode.
    • I know that I can position the notes at the top or at the end of the "Content Area".

  • Using Reactions

    The extension "Reactions" handles incoming webhooks to TYPO3. It also provides a corresponding backend module to manage reaction records. 

    Goals
    • I know that by default only records can be created on an incoming webhook.
    • I know what the "Secret" is used for.
    • I know that reactions can be extended by a developer.
    • I know what information I need to share with an external developer, so he can address my reaction through a webhook.

  • Using Webhooks

    Webhooks are a useful way to integrate real-time information between different applications or services. They allow a service to "call" or notify another application or service when a specific event occurs. This is done by sending an HTTP request to a specific URL provided by the receiving application.

    Goals
    • I understand how webhooks function within TYPO3 and how they enable real-time communication between applications or services.
    • I know which triggers can be used by default within TYPO3
    • I am aware that developers can program additional triggers to extend functionality.
    • I comprehend the difference between GET and POST requests, recognizing their specific roles and applications within the context of webhooks.
    • I know what the "Secret" is used for in the configuration of webhooks, understanding its role in ensuring the authenticity and security of webhook communication.

  • Extension Manager Basics

    Knowledge about extension management within the TYPO3 backend.

    Goals
    • I know how to access the Extension Manager in the TYPO3 backend.
    • I know how to activate and deactivate extensions in the TYPO3 backend module "Extension Manager".
    • I know the difference between composer mode and non-composer mode.
    • I am familiar with the restrictions of the Extension Manager when TYPO3 runs in composer mode.

  • TER

    Knowledge about the standard extension hub of TYPO3.

    Goals
    • I know that almost all extensions available for TYPO3 are hosted in the TYPO3 Extension Repository (TER).
    • I know how to access the TYPO3 Extension Repository (TER), search through extensions, and download them.

  • Charsets

    Definition of charsets, common usage, differences (advantages/disadvantages) of specific charsets.

    Goals
    • I know what a charset is.
    • I know how charsets can differ.
    • I know which charsets are widely common/used and why.
    • I can analyse and compare two charsets and their properties for a specific task and choose the most fitting one for my use case.

  • CSV - Character Separated Values

    CSV files are used to exchange data between different computer systems. The editor must know how these files are structured so that they can be exported and additionally how they can be processed by TYPO3 without errors.

    Goals
    • I know what a CSV file is.
    • I know how to open and edit a CSV file (with text editors or a table calculation program).
    • I know the different common delimiters, enclosure and escape characters.
    • I know the different file encodings (latin1 / utf-8).

  • What is MVC?

    The MVC pattern, what it can be used for, and common implementations.

    Goals
    • I have a basic understanding of what MVC is.

  • What is a Templating Engine?

    Introduction to the basic concept of a templating engine/processor.

    Goals
    • I can explain what the basic concept of a templating engine is. 
    • I can identify needed parts for a templating engine. 

  • What is Fluid?

    Definition of Fluid and its possible use with regards to the Model View Controller pattern.

    Goals
    • I can explain what Fluid is. 
    • I can define its role in the context of a MVC system. 

  • Outputting Variables

    Basic usage of variables inside Fluid templates and knowledge about escaping.

    Goals
    • I can find out which variables are passed to a Fluid view.
    • I can output variables with the according path syntax.
    • I know how Fluid escapes variable output in templates.
    • I know how to disable escaping of variables.
    • I also know which security risks (XSS) may occure, when disable escaping of variables.

  • ViewHelpers

    Getting to know what a ViewHelper is.

    Goals
    • I know what ViewHelpers are.
    • I know what a Namespace is.
    • I can use ViewHelpers in my template.
    • I know which ViewHelpers are shipped by stand-alone Fluid, and which are provided by TYPO3 CMS.

  • Templates, Layouts, Partials

    Fluid Templates, Layouts, Partials - their interaction and properties.

    Goals

    I know

    • what Fluid Templates are
    • what Fluid Layouts are
    • what Fluid Partials are
    • how Templates, Layouts and Partials are connected

    I can

    • structure Templates, Layouts and Partials
    • combine Templates, Layouts and Partials for templating
    • use Templates, Layouts and Partials to realise a specific template example

  • ViewHelper: Comment

    Including comments in Fluid templates.

    Goals
    • I know how to include Fluid comments in my templates.
    • I know the difference between HTML comments and Fluid comments regarding the rendered HTML output.

  • ViewHelper: If/Else

    Creating if/else statements within Fluid templates.

    Goals
    • I can create an if/else statement in my templates with the help of the according Fluid ViewHelper.
    • I can apply conditions using the inline notation of Fluid.

  • ViewHelper: For-Loop

    Iterating through a list with the for ViewHelper.

    Goals
    • I know how to cycle through items with the help of the for ViewHelper inside my Fluid templates.
    • I also know how to utilize the iteration object within a cycle.

  • Importing ViewHelpers

    Using third party ViewHelpers in your Fluid templates.

    Goals
    • I can include third party ViewHelpers in my Fluid templates.
    • I know that a TYPO3 Developer can build custom ViewHelpers

  • ViewHelper: Render

    Using f:render to render sections and partials as well as passing arguments.

    Goals
    • I can use f:render in my templates to render sections and partials.
    • I can pass arguments (along with optional flagging).

  • Using the Fluid View

    Knowing and understanding the different parts of a Fluid template view.

    Goals
    • I understand the API of a Fluid view. 
    • I know the public methods that assign variables and template paths. 
    • I know the internal API to configure Fluid behaviour. 
    • I know the action of rendering a template. 

  • HTML Basics

    Understanding HTML.

    Goals
    • I know the standard HTML tags and how to use them.
    • I am able to build simple HTML documents.
    • I am able to adjust given HTML files to my needs.

  • JavaScript Basics

    Understanding JavaScript.

    Goals
    • I am able to build and debug simple JavaScript functions.
    • I am able to adjust JavaScript code to my needs.

  • CSS Basics

    Understanding CSS.

    Goals
    • I know how to address HTML tags with CSS.
    • I am able to build stylesheets to style a given HTML document according my needs.

  • ViewHelper: Link, Uri

    Using the Fluid ViewHelpers f:link.* and f:uri.*.

    Goals
    • I know the ViewHelpers of the f:link.* family such as f:link.typolink, f:link.email etc. and their important arguments.
    • I know the ViewHelpers of the f:uri.* family and their important arguments.
    • I know how to use the f:link.* and f:uri.* ViewHelpers properly.

  • ViewHelper: Format

    Using Fluid Format ViewHelpers.

    Goals
    • I know how to use Fluid's format ViewHelper and its arguments and purposes.

  • ViewHelper: Image

    Using the Fluid ViewHelper f:image().

    Goals
    • I know the important arguments of f:image() ViewHelper (image, src, crop, cropVariant, loading) and how to use the ViewHelper.

  • ViewHelper: Debug

    Utilising output to access Fluid variables.

    Goals
    • I know how to use the debug ViewHelper to output variables available to Fluid.
    • I know what makes this ViewHelper more appropriate than using a simple echo in my controller.

  • Data Processors

    Data processors can be used to prepare data and transfer them to the Fluid template in order to generate an output by the template engine.

    Goals
    • I know that the TYPO3 Core is shipped with the following data processors:
      • CommaSeparatedValueProcessor
      • DatabaseQueryProcessor
      • FilesProcessor
      • FlexFormProcessor
      • GalleryProcessor
      • LanguageMenuProcessor
      • MenuProcessor
      • SiteProcessor
      • SiteLanguageProcessor
      • SplitProcessor
    • I know that a TYPO3 developer can create their own data processors.
    • I know that dataProcessing is a property of the cObject FLUIDTEMPLATE.
    • I know that data processors can be nested within each other.

  • ViewHelper: cObject

    Including cObjects from the global TypoScript configuration in Fluid templates.

    Goals
    • I know how to include cObjects in my Fluid templates.
    • I know that data and a current value can be transferred to the cObject by arguments of the ViewHelper.

  • ViewHelper: Asset

    The ViewHelpers <f:asset.css> and <f:asset.script> can be used in Fluid templates to add CSS and JavaScript through files or inline.

    Goals
    • I know that purpose of the identifier and the impact if the same identifier is used more than once.
    • I know how to modify the priority of the included CSS files.

  • Page cache

    The basic idea of pre-rendering content for speed optimization and the effect it might have on content editing.

    Goals
    • I know what a cache is.
    • I know that the cache can effect the visibility of changes made to the content.
    • I know the difference between clearing the cache for a specific page and clearing the global frontend cache.
    • I can flush the page cache.

  • SEO Extension

    The goals of the SEO extension are:

    • Provide editors with the fields required to set the necessary meta tags.
    • Provide the rendering of meta tags in the frontend for SEO related information.
    Goals
    • I know how to configure the output of the sitemap for search engines (e.g. filter the page types in sitemap.xml).
    • I know that the SEO extension adds “hreflang” tags automatically.
    • I know that the SEO extension adds the canonical URL automatically.
    • I know various configuration options of the SEO extension using TypoScript, the site configuration among others.

  • XLIFF / locallang.xlf

    Working with XLIFF files in TYPO3 for multilingual websites. Includes writing and extending XLIFF files, overriding translations in TypoScript, and using the f:translate ViewHelper.

    Goals
    • I know what XLIFF is.
    • I know how to write and extend an XLIFF file.
    • I know how to introduce new languages and generate the needed XLIFF file.
    • I know how to override the translations of an extension in TypoScript.
    • I know how to access the translations with the f:translate-Viewhelper

  • File abstraction layer (FAL)

    Know about transparent inclusion of external file sources into TYPO3.

    Goals
    • I know there is an abstraction layer between actual file storages and their handling in TYPO3.

  • Caching Basics

    Caching overview and purpose.

    Goals
    • I know what caching is, how it is done and why web projects use it.

  • TYPO3 Caching

    Caching basics in TYPO3. Functionality and types of caching as well as an overview over the different caches.

    Goals
    • I know how caches can be manipulated.
    • I can configure caching with TypoScript.
    • I can exclude pages from caching.

  • Gzip Compression

    Compression of data returned by the server as a response to a HTTP request.

    Goals
    • I know how I can configure TYPO3 to compress the HTTP responses.
    • I know the requirements for gzip compression for CSS and JS files.
    • I am familiar with the TypoScript configuration "config.compressCss" and "config.compressJs".
    • I am familiar with the global FE and BE configuration "compressionLevel".
    • I know how to adjust the compression handler in TYPO3.

  • Upgrade Wizards

    Existing Upgrade Wizards and their purpose and usage.

    Goals
    • I know the purpose of the upgrade wizards and how to execute them in the TYPO3 backend and on the command line.
    • I know how to reset an upgrade wizard (mark to re-run).
    • I know where to find information about failed upgrade wizards.

  • Using the Step Installer

    Installing an instance from scratch using the step installer.

    Goals
    • I know what prerequisites have to be met in order to install TYPO3.
    • I can invoke the installation via browser.
    • I can fix reported problems.

  • Important Actions in the Admin Tools (former Install Tool)

    Overview about important actions handled in the Admin Tools.

    Goals
    • I can test the email setup of the instance.
    • I can create a new BE admin.
    • I can flush all caches.
    • I can compare and fix database schema definition.
    • I can run upgrade wizards.

  • System Requirements

    System requirements to install and operate TYPO3 CMS.

    Goals
    • I am familiar with the TYPO3 system requirements, such as PHP version, database engine, etc.
    • I know where to look-up any specific requirements that go beyond the general requirements.

  • TYPO3 Directory Structure (v12+)

    In TYPO3 12 the directory structure, especially in Composer installations, was heavily revised. One goal was to increase the security of an installation. 

    Goals
    • I know the differences in directory structure between Composer and Legacy installations.
    • I know that in Composer installations, only the Resources/Public/ subdirectories within all extensions are made publicly accessible as a symlink to the public/_assets/ folder. This prevents access to private files (templates, PHP files).
    • I know that the symlink is only created if the resources/public/ folder was present before executing "composer require" or "composer install".
    • I know how to create missing symlinks afterwards.
    • I know that the LocalConfiguration.php and AdditionalConfiguration.php are renamed and located in other directories.
    • I know where to find the system extensions in legacy and composer installations.

  • TYPO3 Documentation

    I know where to find documentation and support.

    Goals

    I am aware of the following websites and platforms and know how to get access if required:

    • docs.typo3.org
    • Stackoverflow with [TYPO3]
    • typo3.slack.com

  • About the TYPO3 Security Team

    How to deal with security issues, both found and reported.

    Goals
    • I know how to report found issues with TYPO3.
    • I know how to deal with disclosures in TYPO3.
    • I know how I can help making TYPO3 more secure.

  • Security best practices in TYPO3

    As a TYPO3 integrator I know the different types of security vulnerabilities and how to secure a TYPO3 installation.

    Goals
    • I know the security-related configuration options in the TYPO3 Admin Tool (Install Tool), such as SSL, MFA, notifications, etc.
    • I know how to configure backend users and secure logins.
    • I know how to prevent SQL injections in TypoScript.
    • I know where I find information about security updates for the TYPO3 Core and for third-party extensions.
    • I know which log files I can review to analyse attacks and hack attempts.
    • I know how to configure the Content Security Policy (CSP), for example to protect files in fileadmin.
    • I know the required actions if I find a security vulnerability.
    • I know the required actions if my TYPO3 instance appears to be compromised.

  • Multi-Factor Authentication (MFA) configuration

    The MFA can be configured for a single user/group and extended by extensions.

    Goals
    • I know that I can force the use of MFA for editors and administrators.
    • I know that the TYPO3 Core includes two MFA providers by default: Time-based one-time password (TOTP) and recovery codes (fallback provider)
    • I know that more providers can be added via extensions
    • I know how to configure providers for individual user / user groups
    • I know that the MFA can be disabled

  • Composer for TYPO3 Extensions

    This skill introduces usage of Composer for extensions and their integration into TYPO3 projects.

    Goals
    • I know which fields to use in the composer.json of my extension, what they mean and how they work, so that I can create working, readable and helpful composer.json files.
    • I can use 3rd-party extensions and my own extensions in my site project via Composer.
    • I also know the benefits and drawbacks of using Composer and can advise my coworkers and clients when to use which approach.
    • In addition, I can build composer.json and ext_emconf.php files in such a way that their data is synchronized correctly.
    • I know how to provide and access public assets in a composer installation.
    • Also, I know how to update the autoloader data for non-Composer installations.

  • Composer

    Composer basics and its usage for PHP projects.

    Goals

    I know

    • what Composer is
    • the purpose and the structure of file composer.json
    • what composer.lock is and which purpose it serves
    • the difference between the install and the update command

    I can

    • create a new Composer project
    • specify requirements for my project
    • install packages using Composer
    • update packages
    • remove packages

  • Password Policies

    This skill covers the configuration of TYPO3 v12's password policy to bolster security for both backend and frontend users. It includes understanding how to employ built-in validators and awareness of the possibilities for creating custom validators.

    Goals
    • I know how to configure the basic settings of TYPO3 v12's password policy to enhance user security.
    • I can effectively utilize TYPO3's built-in password validators for creating secure password policies.
    • I am aware that custom password validators can be implemented to meet specific security requirements.

  • Understanding Content Security Policy (CSP)

    Content Security Policy (CSP) is a security standard introduced to prevent cross-site scripting (XSS), clickjacking and other code injection attacks resulting of malicious content being executed in the trusted web page context.

    Goals
    • I know what Content Security Policy (CSP) is and how it serves as a tool to prevent Cross-Site Scripting (XSS) and data injection attacks.
    • I understand that CSP rules can block certain content on my website, particularly controlling inline code and external contents like iframes.
    • I can formulate specific policies to determine which scripts, images, stylesheets, and other resources are allowed, enhancing my website's security.
    • I am aware of the mechanisms for monitoring CSP violations and can create reports to identify and fix possible security breaches.
    • I understand how Content Security Policy can be combined with other security practices to create a robust defense system.
    • I recognize that CSP is flexible and can be customized to meet the specific needs and requirements of my website without affecting functionality or user experience.

  • Configuring Content Security Policy (CSP) in TYPO3

    TYPO3 introduces a backend module for CSP reporting and new features such as dynamic nonce generation, providing tools to effectively implement and manage Content Security Policy for a website.

    Goals
    • I know that TYPO3 includes a backend module specifically designed for CSP reporting and understand its main functionalities.
    • I am aware of the new features in TYPO3 that enhance CSP implementation, including dynamic nonce generation.
    • I understand how to use the TYPO3 backend module to log CSP rule violations and how it can help in identifying security risks.
    • I can utilize the TYPO3 backend module to dynamically adjust CSP headers, allowing specific content (e.g., YouTube iframes) to function correctly.
    • I know that the URL for reporting can be configured for both frontend and backend in TYPO3, allowing the use of external monitoring services.
    • I am aware of the detailed documentation and guidelines provided by TYPO3 for configuring Content Security Policy, ensuring a secure and flexible implementation.
    • I recognize the importance of regular monitoring and adjustment of CSP rules in TYPO3 to maintain a balance between security and functionality.

Track your skills and learning progress

See skillset at SkillDisplay

Download as PDF

Download Syllabus