The TYPO3 Guidebook Understand and Use TYPO3 CMS — Felicity Brand Heather McNamee Jeffrey A. McGuire The TYPO3 Guidebook Understand and Use TYPO3 CMS Felicity Brand Heather McNamee Jeffrey A. McGuire The TYPO3 Guidebook Felicity Brand Heather McNamee Melbourne, VIC, Australia Northern Ireland, UK Jeffrey A. McGuire Olpe, Germany ISBN-13 (pbk): 978-1-4842-6524-6 ISBN-13 (electronic): 978-1-4842-6525-3 https://doi.org/10.1007/978-1-4842-6525-3 Copyright © 2021 by Felicity Brand, Heather McNamee, and Jeffrey A. McGuire This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Louise Corrigan Development Editor: James Markham Coordinating Editor: Nancy Chen Cover designed by eStudioCalamar Cover image designed by Freepik (www.freepik.com) Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 New York Plaza, New York, NY 10004. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected]; for reprint, paperback, or audio rights, please e-mail [email protected]. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/9781484265246. For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper Table of Contents About the Authors ����������������������������������������������������������������������������������������������������ix About the Technical Reviewers �������������������������������������������������������������������������������xi Foreword ���������������������������������������������������������������������������������������������������������������xiii Acknowledgments ���������������������������������������������������������������������������������������������������xv Introduction ������������������������������������������������������������������������������������������������������������xix Part I: Overview ����������������������������������������������������������������������������������������������1 Chapter 1: TYPO3 Showroom ������������������������������������������������������������������������������������3 The 90-90 rule and using content management systems ������������������������������������������������������������3 Unboxing TYPO3 ����������������������������������������������������������������������������������������������������������������������������5 What you can build with TYPO3 ��������������������������������������������������������������������������������������������������18 The TYPO3 Project and Ecosystem ���������������������������������������������������������������������������������������������22 Building TYPO3 skills ������������������������������������������������������������������������������������������������������������������29 Summary�������������������������������������������������������������������������������������������������������������������������������������32 Chapter 2: Designing and Planning with TYPO3 �����������������������������������������������������33 Using TYPO3 ��������������������������������������������������������������������������������������������������������������������������������34 Navigation and information architecture ������������������������������������������������������������������������������������38 Visual design and theming ����������������������������������������������������������������������������������������������������������43 Content management ������������������������������������������������������������������������������������������������������������������49 TYPO3 multisite ���������������������������������������������������������������������������������������������������������������������������56 Multilingual websites with TYPO3 �����������������������������������������������������������������������������������������������60 Summary�������������������������������������������������������������������������������������������������������������������������������������66 iii Table of ConTenTs Chapter 3: Building and Extending TYPO3 ��������������������������������������������������������������67 The birds-eye view: What am I getting myself into? �������������������������������������������������������������������67 What am I working with? ������������������������������������������������������������������������������������������������������������71 Configuring and customizing ������������������������������������������������������������������������������������������������������77 Enhancing TYPO3 with extensions ����������������������������������������������������������������������������������������������86 Building custom extensions ��������������������������������������������������������������������������������������������������������91 Summary�������������������������������������������������������������������������������������������������������������������������������������97 Chapter 4: Managing and Maintaining TYPO3 ��������������������������������������������������������99 The TYPO3 release cycle �����������������������������������������������������������������������������������������������������������100 Updating TYPO3: Minor release �������������������������������������������������������������������������������������������������103 Upgrading TYPO3: Major upgrade ���������������������������������������������������������������������������������������������106 Launching and deploying to live �����������������������������������������������������������������������������������������������120 Multisite and centralized site management ������������������������������������������������������������������������������126 Performance and scalability �����������������������������������������������������������������������������������������������������130 System and data security ���������������������������������������������������������������������������������������������������������137 Service ecosystem ��������������������������������������������������������������������������������������������������������������������144 Summary�����������������������������������������������������������������������������������������������������������������������������������148 Part II: Hands-on Guides �����������������������������������������������������������������������������149 Chapter 5: Guide 1: Installing TYPO3 ��������������������������������������������������������������������153 Considerations before you start ������������������������������������������������������������������������������������������������154 Step 1: Setting up a local development environment ���������������������������������������������������������������154 Step 2: Configuring the project and installing TYPO3 Core �������������������������������������������������������156 Step 3: Activating the backend �������������������������������������������������������������������������������������������������156 Step 4: Installing the TYPO3 Introduction Package �������������������������������������������������������������������162 Summary�����������������������������������������������������������������������������������������������������������������������������������166 What’s next? �����������������������������������������������������������������������������������������������������������������������������166 Resources: Learn more �������������������������������������������������������������������������������������������������������������167 iv Table of ConTenTs Chapter 6: Guide 2: Creating Your First TYPO3 Site ����������������������������������������������169 At the end of this tutorial ����������������������������������������������������������������������������������������������������������169 Prerequisites �����������������������������������������������������������������������������������������������������������������������������170 Considerations before you start ������������������������������������������������������������������������������������������������170 Step 1: Creating your page tree ������������������������������������������������������������������������������������������������171 Step 2: Configuring the site�������������������������������������������������������������������������������������������������������173 Step 3: Adding a TypoScript template ���������������������������������������������������������������������������������������174 Step 4: Creating a site extension ����������������������������������������������������������������������������������������������177 Step 5: Including an HTML theme ���������������������������������������������������������������������������������������������179 Step 6: Replacing the theme content with dynamic parts ��������������������������������������������������������181 Step 7: Creating content �����������������������������������������������������������������������������������������������������������185 Step 8: Styling the content ��������������������������������������������������������������������������������������������������������190 Summary�����������������������������������������������������������������������������������������������������������������������������������193 What’s next? �����������������������������������������������������������������������������������������������������������������������������194 Resources: Learn more �������������������������������������������������������������������������������������������������������������194 Chapter 7: Guide 3: Extending TYPO3 �������������������������������������������������������������������195 At the end of this tutorial��� �������������������������������������������������������������������������������������������������������196 Prerequisites �����������������������������������������������������������������������������������������������������������������������������196 Considerations before you start ������������������������������������������������������������������������������������������������196 Step 1: Activating a system extension ��������������������������������������������������������������������������������������197 Step 2: Browsing the TER ����������������������������������������������������������������������������������������������������������202 Step 3: Installing the news extension ���������������������������������������������������������������������������������������206 Step 4: Configuring the news extension �����������������������������������������������������������������������������������206 Summary�����������������������������������������������������������������������������������������������������������������������������������211 What’s next? �����������������������������������������������������������������������������������������������������������������������������211 Resources: Learn more �������������������������������������������������������������������������������������������������������������211 Chapter 8: Guide 4: Planning, Building, and Using Content Elements ������������������213 At the end of this tutorial… ������������������������������������������������������������������������������������������������������214 Prerequisites �����������������������������������������������������������������������������������������������������������������������������214 Considerations before you start ������������������������������������������������������������������������������������������������214 v Table of ConTenTs Step 1: Exploring TYPO3 content types �������������������������������������������������������������������������������������215 Step 2: Create new content type �����������������������������������������������������������������������������������������������218 Step 3: Using the content type ��������������������������������������������������������������������������������������������������223 Step 4: Rendering the content element ������������������������������������������������������������������������������������224 Summary�����������������������������������������������������������������������������������������������������������������������������������227 What’s next? �����������������������������������������������������������������������������������������������������������������������������227 Resources: Learn more �������������������������������������������������������������������������������������������������������������227 Chapter 9: Guide 5: Creating Your First Stand-Alone Extension ���������������������������229 At the end of this tutorial��� �������������������������������������������������������������������������������������������������������230 Prerequisites �����������������������������������������������������������������������������������������������������������������������������230 Considerations before you start ������������������������������������������������������������������������������������������������230 Step 1: Create the extension structure �������������������������������������������������������������������������������������231 Step 2: Add a custom data structure �����������������������������������������������������������������������������������������232 Step 3: Activate the extension and add events �������������������������������������������������������������������������237 Step 4: Create the plugin ����������������������������������������������������������������������������������������������������������240 Step 5: Fetch content from the database ����������������������������������������������������������������������������������245 Step 6: Create a detail view for an event ����������������������������������������������������������������������������������250 Summary�����������������������������������������������������������������������������������������������������������������������������������253 Chapter 10: Guide 6: Creating a Password-Protected Members’ Area �����������������255 At the end of this tutorial, you will have��� ��������������������������������������������������������������������������������255 Prerequisites �����������������������������������������������������������������������������������������������������������������������������256 Step 1: Create a frontend usergroup and user ��������������������������������������������������������������������������256 Step 2: Create access-restricted content����������������������������������������������������������������������������������259 Step 3: Adding a login form �������������������������������������������������������������������������������������������������������261 Summary�����������������������������������������������������������������������������������������������������������������������������������264 Chapter 11: Guide 7: Translating Your Site �����������������������������������������������������������267 At the end of this tutorial, you will have��� ��������������������������������������������������������������������������������267 Prerequisites �����������������������������������������������������������������������������������������������������������������������������267 Step 1: Adding a new language ������������������������������������������������������������������������������������������������268 vi Table of ConTenTs Step 2: Assigning the language to a site �����������������������������������������������������������������������������������270 Step 3: Translating pages and content ��������������������������������������������������������������������������������������273 Step 4: Adding a language switch to your template �����������������������������������������������������������������278 Summary�����������������������������������������������������������������������������������������������������������������������������������281 Chapter 12: Guide 8: Configuring Content Management Workflow and Permissions ���������������������������������������������������������������������������������������������������283 TYPO3 permission basics ����������������������������������������������������������������������������������������������������������283 At the end of this tutorial, you will have��� ��������������������������������������������������������������������������������284 Prerequisites �����������������������������������������������������������������������������������������������������������������������������284 Step 1: Creating the file mount �������������������������������������������������������������������������������������������������285 Step 2: Creating a backend user group �������������������������������������������������������������������������������������289 Step 3: Giving access to the page tree��������������������������������������������������������������������������������������294 Step 4: Creating a user �������������������������������������������������������������������������������������������������������������295 Step 5: Testing the permissions ������������������������������������������������������������������������������������������������297 Summary�����������������������������������������������������������������������������������������������������������������������������������298 Chapter 13: Guide 9: Creating a Business Around TYPO3 �������������������������������������301 At the end of this tutorial ����������������������������������������������������������������������������������������������������������301 Prerequisites �����������������������������������������������������������������������������������������������������������������������������302 Step 1: Deciding the type of clients and projects to look for ����������������������������������������������������302 Step 2: What features will my market be looking for? ��������������������������������������������������������������305 Step 3: Talking about TYPO3 with potential clients �������������������������������������������������������������������307 Step 4: Using TYPO3 and open source as a door opener ����������������������������������������������������������308 Summary�����������������������������������������������������������������������������������������������������������������������������������309 Chapter 14: Guide 10: Debugging and Troubleshooting TYPO3 ����������������������������311 At the end of this tutorial��� �������������������������������������������������������������������������������������������������������312 Prerequisites �����������������������������������������������������������������������������������������������������������������������������312 Considerations before you start ������������������������������������������������������������������������������������������������313 Step 1: Setting the application context to “Development” ��������������������������������������������������������313 Step 2: Enabling the debug configuration preset ����������������������������������������������������������������������314 vii Table of ConTenTs Step 3: Debugging and troubleshooting PHP in TYPO3 �������������������������������������������������������������315 Step 4: Debugging and troubleshooting Fluid ���������������������������������������������������������������������������316 Step 5: Debugging and troubleshooting TypoScript ������������������������������������������������������������������319 Step 6: Resetting your backend admin password ���������������������������������������������������������������������324 Summary�����������������������������������������������������������������������������������������������������������������������������������326 Resources: Learn more �������������������������������������������������������������������������������������������������������������327 Chapter 15: A Guidebook to Your New TYPO3 Home���������������������������������������������329 Take your first steps: Try it yourself! �����������������������������������������������������������������������������������������329 Bridging knowledge gaps ���������������������������������������������������������������������������������������������������������330 Get connected through contribution �����������������������������������������������������������������������������������������330 Share your fresh perspective ����������������������������������������������������������������������������������������������������331 Appendix A: Glossary ��������������������������������������������������������������������������������������������333 Appendix B: References ����������������������������������������������������������������������������������������339 Index ���������������������������������������������������������������������������������������������������������������������357 viii About the Authors Felicity Brand, Open Strategy Partners. Felicity has more than ten years of experience as a writer and technical communicator. She spent the ten years before that as a business analyst. She has spent much of her career writing a variety of technical content for internal and external consumption—from online help manuals, release notes, and in-house product training webinars, to web content and white papers. Felicity has a special knack for designing visuals and illustrations and a passion for clearly communicating technical concepts. Heather McNamee, Open Strategy Partners. Heather is a technical communications professional with an M.Sc. in learning and technology. By using her marketing skills for good, she enables the right audiences to find, learn, and get the most out of the products they love. She loves working with subject-matter experts to distill their knowledge so newcomers can be successful. Since 2008, she’s developed hundreds of hours of documentation, learning, and certification materials to facilitate open source technology and product adoption. ix