TYPO3 CMS Certified Integrator (TCCI)
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.
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.
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 11 LTS and was created by the TYPO3 Education Committee and TYPO3 GmbH.
- About TYPO3
TYPO3 is an open-source enterprise content management system (CMS) mainly written in PHP. 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.orgGoals
- 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.
- 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.Goals
- I know that the admin panel exists, how it can be configured and accessed.
- 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
- how to execute CLI commands using the command line.
- what parameters are and how I can assign values to them.
- 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 which functions of the the "Dashboard" backend module require administrator privileges.
- I know that TYPO3 developers can extend the "Dashboard" functionality, e.g. develop custom widgets.
- TypoScript Recorid
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.
- 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.
- 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
- TypoScript Object Browser / Template Analyzer
About the TypoScript object browser and the template analyzer.Goals
- I know what the TypoScript object browser is and which purpose it serves.
- I know what the TypoScript template analyser is.
- I can alter the value of TypoScript objects with the help of the TypoScript object browser.
- I can use the TypoScript template analyser to analyse existing TypoScript code and identify inheritance in templates.
- 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.
- 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
- create a language menu for the frontend with the help of TypoScript
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
- 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
- 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
- Git basics
Basics and most important commands for working with the version-control system Git.Goals
- what a VCS is
- what a branch is
- what a tag is
- what a repository is
- what a merge is
- 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
- 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.
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.
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).
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.
- 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).
Exporting pages and content to another installation
Importing pages and content from another installationGoals
- 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.
- 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 Install Tool / Admin Tools
Important settings in the 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
- 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.
- 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 (e.g. the Linkvalidator).
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.
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 AdditionalConfiguration.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".
- 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.
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
- what Fluid Templates are
- what Fluid Layouts are
- what Fluid Partials are
- how Templates, Layouts and Partials are connected
- 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
- 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.
- CSS Basics
- 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 the the TYPO3 Core is shipped with the following data processors:
- I know that a TYPO3 developer can create their own data processors.
- I know the the TYPO3 Core is shipped with the following data processors:
- ViewHelper: cObject
Including cObjects in Fluid templates.Goals
- I know how to include cObjects in my Fluid templates.
- ViewHelper: Asset
- 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.
- 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 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:
- Stackoverflow with [TYPO3]
- 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.
- Also, I know how to update the autoloader data for non-Composer installations.
- Regular Expression Basics
Identifying and matching patterns in strings with the help of regular expressions (PCRE).Goals
- how regular expressions can be used for pattern recognition
- how to use external resources for verifying regular expressions
- 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
- possible reasons for anonymizing IP-adresses stored in the database
- 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.
Composer basics and its usage for PHP projects.Goals
- 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
- create a new Composer project
- specify requirements for my project
- install packages using Composer
- update packages
- remove packages