typo3-certified-integrator-6th-edition-en.pdf
Document Details
Uploaded by DeadOnVolcano
2022
Tags
Full Transcript
TYPO3 CMS Certified Integrator, 6th edition (English) Exam Study Guide for the Official TCCI Certification of the TYPO3 Association Michael Schams This book is for sale at http://leanpub.com/typo3-certified-integrator-6th-edition-en This version was published on 2022-12-01 This is a Leanpub book...
TYPO3 CMS Certified Integrator, 6th edition (English) Exam Study Guide for the Official TCCI Certification of the TYPO3 Association Michael Schams This book is for sale at http://leanpub.com/typo3-certified-integrator-6th-edition-en This version was published on 2022-12-01 This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do. © 2022 Michael Schams Contents Preface........................................................ i Acknowledgement............................................... ii Value of Copyrighted Material........................................ ii Feedback..................................................... ii Introduction..................................................... iii Five Good Reasons Why Certifications Matter............................... iii About TYPO3 Certifications......................................... v Certification Process.............................................. vii Syllabus....................................................... x 1. TYPO3 Basics................................................. 1 1.1 Overview................................................ 1 1.2 Example Questions........................................... 2 1.3 Recap.................................................. 26 2. Web Technology Basics........................................... 27 2.1 Overview................................................ 27 2.2 Example Questions........................................... 28 2.3 Recap.................................................. 64 3. Installation................................................... 65 3.1 Overview................................................ 65 3.2 Example Questions........................................... 67 3.3 Recap.................................................. 103 4. TYPO3 Handling............................................... 104 4.1 Overview................................................ 104 4.2 Example Questions........................................... 105 4.3 Recap.................................................. 111 5. Backend Administration........................................... 112 5.1 Overview................................................ 112 5.2 Example Questions........................................... 115 5.3 Recap.................................................. 215 6. TypoScript................................................... 216 CONTENTS 6.1 Overview................................................ 216 6.2 Example Questions........................................... 218 6.3 Recap.................................................. 338 7. Performance.................................................. 339 7.1 Overview................................................ 339 7.2 Example Questions........................................... 340 7.3 Recap.................................................. 357 8. Core Architecture and APIs......................................... 358 8.1 Overview................................................ 358 8.2 Example Questions........................................... 359 8.3 Recap.................................................. 366 9. Extensions................................................... 367 9.1 Overview................................................ 367 9.2 Example Questions........................................... 368 9.3 Recap.................................................. 385 10. Templating and Other Outputs....................................... 386 10.1 Overview................................................ 386 10.2 Example Questions........................................... 387 10.3 Recap.................................................. 425 11. Target Group Optimization......................................... 426 11.1 Overview................................................ 426 11.2 Example Questions........................................... 427 11.3 Recap.................................................. 443 12. Localization.................................................. 444 12.1 Overview................................................ 444 13. Security and Privacy............................................. 445 13.1 Overview................................................ 445 13.2 Example Questions........................................... 446 13.3 Recap.................................................. 470 14. Getting Help.................................................. 471 14.1 Overview................................................ 471 14.2 Example Questions........................................... 472 14.3 Recap.................................................. 484 Appendix...................................................... 485 Additional Notes and Credits......................................... 486 Preface The enterprise content management system “TYPO3” has been part of my professional career for more than 15 years. Long before the first exam to become a TYPO3 CMS Certified Integrator was offered by the TYPO3 Association, I was involved with the software and used it in commercial environments. I have worked with many people throughout the years and looked at projects from different angles and in various roles. Among other activities, I was co-responsible for the selection of applicants for job openings – not only in the TYPO3 area. In addition, I have helped agencies to build and extend technical teams and gave recommendations for freelancers. During this process, discussions arose again and again about the possibilities of fairly assessing the candidates’ skills and abilities. Reading a few blog posts and tutorials on the internet, or flicking through a couple of technical books, will not equip you with a deep understanding and the practical experience you need to deliver large projects in a high quality. A professional TYPO3 service provider must have proven competence to deliver a project to the client’s satisfaction. This requires an insight into the TYPO3 architecture, the knowledge of best practices, and also in-depth practical experience. But how can someone evaluate if a potential integrator or developer will be able to keep their promises? How can the quality of their previous work be assessed? Is the approach suggested by a consultant, integrator, or developer state-of-the-art and follows best practice? Based on my experience, I strongly believe in official certifications in the IT industry. Candidates should not be able to pass the exam easily and without preparation. It is crucial to distinguish renowned certificates with tough exams from simple certificates that every participant who attends an online course receives. At the same time, I am convinced that exams must be fair. Candidates should know what a test looks like (before taking one), and everyone should be able to pass them. Everyone! They should know what the testing body expects from them, and they should be able to prepare, learn, and study in a focused manner. This is where the TYPO3 CMS Certified Integrator (TCCI) study guide comes into play. Since 2008, hundreds of professionals have successfully passed the test. Many of them used this book (and previous editions) as their study guide. The TCCI book/eBook is the tool that helps you to prepare and master the exam. It does not guarantee that you will pass, but it significantly increases your chances. Now it is up to you to learn and understand the content and to prove that you can pass the TCCI exam. Have fun with the preparation and, of course, success with the certification! Michael Schams May 2022 Preface ii Acknowledgement First and foremost, a big thank you to the TYPO3 community. It is always amazing to see how people help each other and how new members get welcomed and supported in such a friendly way. I’d like to thank Patrick Lobacher, who authored the first three editions of this book before we published the 4th edition together in August 2017. It was a great collaboration before I completely took over the work in 2018 and published the 5th and now the 6th edition. I am also grateful for all the help and support I received from my fellow members of the TYPO3 Education Committee. Additionally, thanks to everyone who provided feedback, especially Aleksandra Fey for your thorough review and valuable input during the development of the book/eBook. Value of Copyrighted Material With the purchase of this book, you support the work of everyone who invested precious time and energy in this publication. Only in this way can you ensure that future editions will prepare you and other candidates for further TYPO3 certifications. Keep in mind that you benefit from the work at the end of the day. With the help of this book/eBook, you gain valuable knowledge, and you will likely pass the exam. If you are reading this sentence and you received a copy of this book in an illegal or questionable way, please consider buying the eBook from Leanpub now: https://leanpub.com/typo3-certified-integrator-6th-edition-en At Leanpub, readers purchase a subscription to an eBook. Whenever I make updates, for example correct typos, fix a code error, or update questions and answers, Leanpub makes sure that all existing readers receive a new version of the eBook instantly and for free! Feedback As I pointed out above, the self-publishing process that I use for this book/eBook allows me to update the content and extend the work as required. However, this requires your feedback! I would like to know how the TYPO3 CMS Certified Integrator exam went for you. Did you succeed? Did you fail? Which topics, questions, and explanations in this book/eBook were constructive? Did you find an error, or did you encounter a typographical mistake while working through the chapters? You can send me comments, criticism, and feedback through the “Email the Author” contact form at Leanpub: https://leanpub.com/typo3-certified-integrator-6th-edition-en/email_author/new Alternatively, feel free to send me a direct message on TYPO3’s Slack platform¹ or drop me an email². I look forward to reading your feedback and I aim to reply to every message. ¹https://typo3.slack.com ²https://schams.net Introduction Five Good Reasons Why Certifications Matter I strongly believe in IT certifications in general (see the “Preface” for more details about my view on this). Let’s dive a little deeper into this topic before I go into the nitty gritty of the TYPO3 certifications. The following arguments might also be useful when you chat with other members of the TYPO3 community, or if you need a few good arguments to your employer as to why you want to become a certified TYPO3 integrator. Exam Preparation Continuous professional development is especially important for professionals who work in information technology. In hardly any other occupational group, technologies and tools become obsolete as quickly as they do for IT experts. Therefore, it is paramount to keep our professional knowledge always up-to-date. Renowned certifications are rarely passable for most candidates without preparation. Therefore, those who want to master challenging exams must prepare themselves. The TYPO3 Education Committee draws up a syllabus for this purpose, which provides potential candidates with details about which topics will be asked in an exam. The syllabus is an overview of the learning objectives and contains references to recommended literature. Even TYPO3 integrators with many years of professional experience sometimes realise some gaps in their professional knowledge. The subsequent preparation for the certification undoubtedly fills these gaps and expands the knowledge in general. In addition, candidates work through new topics and often discover that they can solve certain tasks more efficiently and professionally. Since intensive learning for the test broadens one’s horizons, preparing for the TCCI exam is already a good reason to aim for a TYPO3 certification. Only Individuals Can be Certified TYPO3 certifications test and approve the knowledge of individuals. Therefore, the certifications are person- related as the TYPO3 Association does not assess a company or a team. When you are certified and you change the employer, you take the certification to your next job. It goes without saying that a TCCI certification is a bonus on your resume. Although this is favourable for you, as the certified person, some employers consider it critically. Why should a company approve a training course and risk that the certified employee might leave the team afterwards? To this question, it is worth asking a counter-question: What happens if agencies do not invest in the training of their employees? The company risks falling behind the competition quickly due to a lack of expertise. Introduction iv Certifications Can Open Doors Successfully achieved TYPO3 certifications are written proof of your competence as a TYPO3 expert. These certifications can open doors. For freelancers, a certification can be the decisive reason to distinguish themselves from competitors and be more likely to be accepted by a client. Agencies also benefit if their employees are officially certified. Especially in the case of project tenders from companies, organisations or municipalities with which there has been no previous relationship, businesses have to prove that their team can achieve the project goals professionally and in high quality. Official TYPO3 certifications are ideal for this purpose. Particularly in larger projects, it is not uncommon for tenders to even require certifications. Therefore, companies should also have as many employees certified as possible. Well-trained IT staff can never be a disadvantage, even for internal tasks and projects. Salary and Position For an individual professional, passing a certification exam does not only mean self-affirmation. With newly acquired and officially confirmed expertise, your market value increases. The new value should have a medium-term effect on your position in the company, and of course, directly on your salary. Suppose you prepare for a TYPO3 certification on your initiative and pass the exam. In that case, you will undoubtedly have a strong argument up your sleeves in your next salary negotiation. The same applies to employers who have set themselves the goal of having all their IT staff certified. A salary increase or a one-time bonus payment after achieving a certification should motivate employees to participate in the program. The financial aspects are clearly good reasons to take a TYPO3 certification. Personal Achievement We all know the good feeling of having achieved success. Typical examples are passing an test earlier in school or university or receiving a diploma at the end of a year-long training. A sense of achievement is also the goal for many after a long bike ride or a marathon. Passionate computer gamers can also confirm that reaching the next level in a game is satisfying. Successfully achieved certifications in professional life often have the same effect. It is a victory that you achieve. For many, it is simply a good feeling to be able to chalk up such a sense of achievement for oneself – or even to build up a collection of virtual badges over an extended time. If you’re active in social (professional) networks such as XING³ or LinkedIn⁴, you certainly have seen other members in the network proudly promoting a certification they have achieved. I am sure that, apart from the five reasons listed above, further good arguments exist to become a certified TYPO3 integrator. What are your main reasons? ³https://www.xing.com ⁴https://www.linkedin.com Introduction v About TYPO3 Certifications Existing Certification Options The TYPO3 Association⁵ (more precisley the TYPO3 Education Committee) developed a range of certifica- tions. The following four options are available at the time of writing: TYPO3 CMS Certified Integrator (TCCI) The TCCI was the first certification offered by the TYPO3 Association and has been available for many years. The TYPO3 Education Committee defines a TYPO3 integrator as someone who develops the template for a website, takes care of the system configuration, and supports backend users (editors), including their access permissions in the TYPO3 backend. TYPO3 CMS Certified Developer (TCCD) The TCCD certification was launched in early 2016 and fills a gap that the TYPO3 CMS Certified Integrator left open. Websites and web applications almost always require custom development work. The TYPO3 Education Committee defines a TYPO3 developer as someone with extensive TYPO3 experience who knows the TYPO3 internals inside and out. A TYPO3 CMS Certified Developer has to have experience collected through projects, should know the architecture, design patterns, best practices, and a fair share of internals both TYPO3 CMS and the extension framework. TYPO3 developers can implement a robust and secure extensions in a state-of-the-art way. They write clean code by following the TYPO3 Coding Guidelines (CGL), and they are well versed in a wide range of topics, from the initial setup of an extension up to the point of publishing it in the TYPO3 Extension Repository (TER). TYPO3 CMS Certified Editor (TCCE) Over the years, more and more TYPO3 users who intensively work in the backend also asked for an official certification option. As a result, the TYPO3 Education Committee launched the TYPO3 CMS Certified Editor certification in the second quarter of 2016 and defines a TYPO3 editor as someone who manages pages and content with the various page and content element types provided by integrators. The certified editor creates new pages, restructures the page tree, and manages languages available in the setup. TYPO3 CMS Certified Consultant (TCCC) A professional website or web application requires a planning and specification phase before the development commences. Therefore, a TYPO3 CMS Certified Consultant comes into play at this early stage. The TYPO3 CMS Certified Consultant exam is appropriate for consultants, project managers, and product owners who advise customers on their TYPO3 projects. The certification shows that successful candidates have a proper understanding of this field for facilitating projects of decent size. The first TCCC certification took place in mid-2017. The exams for each domain comprehensively capture the knowledge and experience of the candidates. In addition, they provide an objective assessment of the candidate’s capability to develop and deliver high- quality TYPO3 projects or consult with clients. TYPO3 experts can prove that they understand their trade by presenting their official certification once passed. ⁵https://typo3.org/project/association Introduction vi In summary, the TYPO3 certifications aim to identify skilled and professional individuals and let budget owners select candidates and TYPO3 agencies based on their proven capabilities. Integrators who want to pass the exam need to prepare (study), learn how processes should be correctly completed, and prove that they understand the topics. TYPO3 CMS Certified Integrator The TYPO3 CMS Certified Integrator (TCCI) was the first certification introduced by the TYPO3 Associa- tion in 2008. The TYPO3 Education Committee defines the role as follows: 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.⁶ We now have a clear definition and demarcation of the knowledge an integrator needs. While an administrator is responsible for the setup and underlying IT infrastructure, the integrator creates and configures the website. When a custom extension is required, a TYPO3 developer comes into play. ⁶See https://typo3.com/services/certifications/integrator-certification Introduction vii Certification Process In the following sections, I dive deeper into the certification process and give you an insight into how the TCCI exam looks like. About the Exam As a general rule, all TYPO3 certification exams are either paper-based or computer-based and are exclusively carried out in English. The question pool has been developed and tested by TYPO3 experts who have to follow strict guidelines. A well-established workflow ensures that the questions and answers are correct, up-to-date, and of a high quality. A separate group of professionals is responsible for a final review before each question is added to the pool. The exact procedure of the exam depends on the type of event where you take the test. You typically have to prove your identity by presenting a valid and official identification document that shows your full name, photo, and signature. This could be, for example, your passport. At the time of writing, the following options to take the exam exist: Online certification The TYPO3 Association (more precisley: the TYPO3 GmbH) uses Meazure Learning⁷⁸ to offer a live remote proctoring service. Simply go to the TYPO3 Certification Platform⁹ where you can purchase, schedule, and take the exams online. At TYPO3 events TYPO3 certifications are also offered at selected TYPO3 events, for example TYPO3camps, the annual TYPO3 conference and TYPO3 CertiFUNcation Day, the TYPO3 Developer Days, etc. As these are in- person events, the exams are typically paper-based¹⁰. Please note that in almost all cases you have to purchase a ticket for the event and for the certification. In-house certification As the operational and commercial arm of the TYPO3 project, the TYPO3 GmbH¹¹ also offers in-house certifications. This is in particular interesting for companies and organizations who want to get their staff certified. Contact the TYPO3 GmbH to request a quote. Test Content and Exam Procedure The TYPO3 CMS Integrator Certification exam contains 75 questions. For each question, several answer options are available. These are typically four to five answers but sometimes more. Candidates have 90 minutes to work through the test and answer as many questions as possible – ideally, all questions, of course. The answers are multiple-choice options. At least one answer but usually multiple answers are correct. The number of correct answers is stated at the question in brackets, for example: ⁷https://www.meazurelearning.com ⁸Formerly known as “ProctorU”. ⁹https://exam.typo3.com ¹⁰The TYPO3 GmbH ran a test-drive of their on-location digital certifications exam tool the first time at the T3DD22 in August 2022. ¹¹https://typo3.com Introduction viii Which statements about the RTE are correct? (3) In this example, the number (3) indicates that exactly three of the given answers are correct. It is important to understand that you have to select all correct answers for each question. You do not receive points for a question that you only partially answered correctly. In this case, the entire question is deemed as incorrect. No aids are allowed during the test. For an in-person exam, you must not take anything with you into the testing room. This includes (but is not limited to) bags, books, notes, mobile phones, tablets, laptops, papers, pencils, etc. For an online proctoring test, the rules set by Meazure Learning apply. You are not allowed to leave the test during the exam (therefore, it may be wise to go to the bathroom shortly before the exam) and you automatically fail the test if you violate the regulations or caught when cheating. How to Prepare for the Exam You bought this eBook/book! This was likely the best decision you made as the main purpose of this study guide is to prepare you to master the exam and become a certified TYPO3 integrator. How to Use this Book/eBook Please note that the questions and answers discussed in this book/eBook are not the original certification questions. They are not the same as those in the official question pool as this would violate the NDA¹². Therefore, it does not make sense to memorize the questions or correct answers. It is important to understand the underlying subject. When you work through the book/eBook and you realize that you have a lack of knowledge in a certain area, do your homework, learn the missing pieces, and work through the chapter again. Each candidate has favored topics. Other topics are rather uninteresting or difficult. Do not hope to pass the test by only answering questions of topics that you are good at. Some candidates fail the exam because they are missing just a few points. They would have passed the exam if they had been a little better at the topics they didn’t like so much. The questions in this book are sorted into thematically discrete chapters by subject. Sometimes you can guess an answer based on the context of the chapter. It goes without saying that you don’t have this luxury in the exam. Do not skip the explanations given for each question in this study guide – even if you know the correct answers straight away. The explanations are valuable as they often contain important details which will help you to correctly answer a similar question in the exam. The way in which the questions, answers, and explanations are structured in the study guide allows you to test yourself. Read the questions and select the answers you assume are correct. Try to explain why you have chosen your answers and why the others are wrong. Then compare your thoughts with the explanation and check whether your answers match the correct solution at the end of each question. Do not read the question, the answers, the explanation, and the solution in one go. Get your hands dirty! The perfect preparation for every TYPO3 certification is practice. Boot up an empty TYPO3 instance and verify every question, explanation, and solution. Make sure that the TYPO3 backend is in English as all terms and labels mentioned in the exam use this language. ¹²NDA: non-disclosure agreement. Introduction ix Many questions contain a note “hints and tips for the exam” in the explanation. Pay special attention to these notes as they contain important suggestions and recommendations. Some of them help you to develop a strategy on how to tackle difficult questions. The Syllabus The syllabus is your ultimate guide to what is expected from a certified TYPO3 integrator. It contains a complete list of all topics that could be tested in your exam. If you are familiar with the topics, including their objectives, the questions in the exam won’t surprise you. Review and familiarize yourself with the syllabus and use it as a checklist while learning. You find further details in the chapter “Syllabus”. You might be wondering how the members of the TYPO3 Education Committee manage the data of the syllabus. Every certification and every TYPO3 version requires a bulletproofed syllabus after all, where skills, goals, and links to resources are documented. The section “Learning Progress Tracking” below sheds some more light on this topic. Training Courses A few training bodies offer in-person and online courses to prepare for the TYPO3 certifications. These courses are not necessarily required to master the exam but they are often the quickest way to prepare for a test. Learning Progress Tracking with SkillDisplay Are you, as a TCCI candidate, on the right track of your learning path? With the help of SkillDisplay, you can keep track of your progress in the SkillDisplay web app: https://www.skilldisplay.eu This tool lets the subject matter experts of the TYPO3 Education Committee store and manage detailed descriptions and clear goals for each skill that is expected from a certified TYPO3 integrator. Skills often depend on each other. To learn and understand the topic “Fluid ViewHelpers”, a student first has to know how Fluid works and what layouts, templates, and partials are. To understand Fluid, a student should be familiar with the general concept of a web template engine, and so on. These dependencies between skills form so-called skill trees in SkillDisplay. A group of skills covering a special topic is called a SkillSet. You can leverage the SkillDisplay web portal in two ways. You can – even without registration – access information about every skill, for example which resources (e.g. documentation) you can use to gain the knowledge and master the skill. SkillDisplay is also an online tool that lets you record, track, and show the skills that you have achieved. These are the milestones on your learning path. A successful finish of your path is eventually your TYPO3 certification. Each chapter of the TYPO3 CMS Certified Integrator study guide perfectly reflects the skills of the official TCCI syllabus and, therefore, the skills in SkillDisplay. To make your progress tracking as easy as possible, you only need to scan the QR codes at the end of each chapter or follow the links respectively. You will end up at the right place at SkillDisplay where you can confirm that you have the necessary knowledge (self assessment). Of course, this function requires a user account, which means that you have to register and log-in to SkillDisplay. This is, however, free of charge. Syllabus Let’s have a closer look at the syllabus for the TYPO3 CMS Certified Integrator (TCCI) exam. You find the interactive document online at: https://typo3.com/services/certifications/integrator-certification/tcci-syllabus The syllabus is your ultimate guide to what we expect from a certified TYPO3 integrator. It contains a complete list of all topics that could be tested in your exam. Each topic (for example, Installation, Backend Administration, TypoScript, Performance, etc.) contains a list of educational objectives. The topic Performance, for example, is covered by three objectives: caching basics, typo3 caching, and page cache. Every question in the TCCI question pool falls into a category listed in the syllabus. In other words: You will not encounter any question in the test that belongs to a category not included in the syllabus. If you are familiar with the topics, including every objective, the questions in the exam won’t surprise you. Please familiarize yourself with the syllabus and use it as a checklist while learning. You will quickly realize that the chapters in this study guide – the TYPO3 CMS Certified Integrator book/eBook – nearly reflect the topics of the syllabus. The only differences are didactic. Sometimes it makes more sense to discuss a specific topic early if subsequent topics are based on it. Also, if you miss a question, an objective, or even an entire topic in the study guide, don’t worry. I sometimes moved the questions and explanations into other topics to ensure smooth reading flow and understandable content. The syllabus goes through a strict quality assurance process. Several stakeholders and entities review each syllabus for every TYPO3 certification. If everyone approves the document, we declare it as the final version and publish it. From this point on, the syllabus will not change, except in the unlikely event that we discover a serious error that would disadvantage candidates and risk passing the exam¹³. It is also essential to understand that the syllabus always applies to a specific TYPO3 LTS version. For example, to TYPO3 v10 LTS, v11 LTS, and in the future to v12 LTS. The version that the syllabus clearly states is the TYPO3 version that the TCCI exam refers to. Make sure that you know which TYPO3 version this is when you prepare for the test and take the exam. As soon as the syllabus for a new version is officially published, we ensure that the exam does not immediately reference this version. Therefore, candidates have sufficient time to inform themselves about the changes and prepare for the exam. This lead time is currently between 1 and 3 months. It is a good idea to keep an eye on the news and articles of the TYPO3 Education Committee so that you don’t miss an announcement of a new syllabus and TYPO3 version. ¹³However, I am not aware of any case where this ever happened. 1. TYPO3 Basics 1.1 Overview TYPO3 stands for more than just the enterprise content management system. TYPO3 is a long-lasting project that is coordinated by a non-profit association and predominantly driven by the TYPO3 community. As a TYPO3 integrator, you likely attend IT conferences and similar events from time to time. You also speak to clients and partners about your work and experience with TYPO3. Certified integrators should be familiar with the TYPO3 project, the tasks of the TYPO3 Association and their members, the TYPO3 community, and how all these are connected. The TYPO3 basics – which is the subject of this chapter – cover this topic. The syllabus defines the following skills that a certified TYPO3 integrator should have in this area. Please note that the syllabus content was not copied one-to-one. The following list contains additional information about the knowledge we expect from a TCCI candidate. TYPO3 Project Certified TYPO3 integrators know about the history of TYPO3 CMS and its license. They also know which other TYPO3 products exists and they are familiar with TYPO3 teams, their aspirations and goals, as well as their main responsibilities. TYPO3 Association We expect from certified TYPO3 integrators that they are familiar with the tasks and responsibilities of the TYPO3 Association and the membership options. TYPO3 Community The TYPO3 community is the driving factor of the TYPO3 project and in particular the TYPO3 CMS. Therefore, it is important that TYPO3 integrators know how and where to engage with other members of the community. TYPO3 Versions The fourth element of the TYPO3 basics focuses on the content management system and its versions. Certified TYPO3 integrators are familiar with sprint and long-term support releases. They also understand the version schema used by TYPO3. TYPO3 Basics 2 1.2 Example Questions 1.2.1 Who invented TYPO3? (1) 1. The TYPO3 Association 2. Robert Lemke 3. Kasper Skårhøj 4. The TYPO3 GmbH 5. The Open Source Business Alliance The answer to this question is quite clear for many TYPO3 enthusiasts. However, conversations with people new to the TYPO3 world repeatedly show that this is not the case for everyone. There is a widespread belief that this CMS was invented by the TYPO3 Association¹, but this is in fact a misconception. The Association was founded in 2004, while the TYPO3 CMS foundation was developed in 1998. Answer 1 can’t be correct. Robert Lemke was an active member of the TYPO3 community for many years. He was the head of development for Flow and Neos² (previously known as TYPO3 Flow and TYPO3 Neos). Robert and his team developed Neos, which was intended to be the successor of TYPO3 but is a discrete product today, independent from TYPO3. He did not develop TYPO3, which makes the second answer also wrong. The TYPO3 GmbH³ is a fully-owned service company that takes care of commercial services around the TYPO3 ecosystem. This includes extended support plans, service level agreements, and partnerships with agencies. The company was founded by the TYPO3 Association in 2016 as an executive branch. This makes answer 4 wrong. The Open Source Business Alliance⁴ (in short OSB Alliance) unites several European companies and organizations developing, building, and using open-source software. It is Europe’s biggest network to promote open-source in Germany and Europe. However, the OSB Alliance has nothing to do with TYPO3 and therefore, answer 5 is also wrong. The correct answer is 3. The Danish developer Kasper Skårhøj realised in 1997 that his clients needed a tool to maintain their website contents. The term “content management system” was still widely unknown back then. In the 90s, websites were predominantly made of static HTML files, images, some JavaScript, etc. The idea of separating content from design was an emerging trend and Kasper started creating such a system. He called his application “TYPO3” and continuously improved it over the following months and years before he launched the first public beta version in August 2000. ¹https://typo3.org/project/association/ ²https://neos.io ³https://typo3.com ⁴http://www.osb-alliance.de/ TYPO3 Basics 3 Hints and tips for the exam You don’t need to know every year and event of the TYPO3 history for the exam. However, a certified TYPO3 integrator should be familiar with the general history and the key people behind the TYPO3 project. The correct answer is 3. TYPO3 Basics 4 1.2.2 What does the abbreviation ECM stand for? (1) 1. Extended Content Management 2. Enterprise Content Module 3. European Content Management 4. Enterprise Content Management 5. Edition of Contemporary Management 6. Enhanced Content Management We are not going to ask you to know many abbreviations in the TCCI exam. However, some terms are important when you deal with TYPO3 and talk to clients. ECM (sometimes also named EMCS) is definitely one of them. The abbreviation CMS (content management system) does not require any explanation. If a system such as TYPO3 is especially designed for the use by large companies and organisations, an “E” is added to the term. This letter stands for enterprise and indicates that the system is suitable for use cases with complex requirements. Wikipedia⁵ defines an ECM as follows: Enterprise Content Management (ECM) is the strategies, methods, and tools used to capture, manage, store, preserve, and deliver content and documents related to organizational processes. ECM covers the management of information within the entire scope of an enterprise whether that information is in the form of a paper document, an electronic file, a database print stream, or even an email. This is based on a definition by the Association for Information and Image Management (AIIM) International from early 2010. The correct answer is 4. ⁵https://en.wikipedia.org/wiki/Enterprise_content_management TYPO3 Basics 5 1.2.3 What are valid spellings of the word “TYPO3”? (2) 1. “TYPO3” 2. “Typo3” 3. “typo3” (in URLs) 4. “TyPo3” 5. “TYPO 3” Communication related to TYPO3 has increased as the CMS has become more successful. The project and product are mentioned in web pages, press releases, articles, blogs, tweets, and more. In mid-2006, the TYPO3 Design Team decided to create a style guide⁶ to define a corporate design for the TYPO3 project. The team specified the possible uses of the logo as well as the fonts, colours, and the spelling of TYPO3. The aim is to preserve a homogeneous appearance in public and to establish TYPO3 as a brand. The style guide specifies, that TYPO3 must be spelled uppercase without a space before the number. There is only one exception: when using the word “typo3” in an URL, for example typo3.org, only lowercase letters must be used. To learn more the correct spelling of the word “TYPO3”, and examples on how to spell it correctly and incorrectly, go to https://typo3.org/project/brand/spelling-typo3. The correct answers are 1 and 3. ⁶https://typo3.org/project/brand/style-guide/ TYPO3 Basics 6 1.2.4 Which open-source license is used by TYPO3 CMS? (1) 1. TYPO3 is open-source software and does not need a license 2. The MIT License 3. The Apache License 4. The GNU General Public License 5. The Creative Commons Attribution-ShareAlike 4.0 International License Although the first answer rightly points out that the TYPO3 software is open-source, this does not mean that TYPO3 does not use a license. Licenses are important as they regulate under which circumstances someone may use, modify, and share the software. The second and third answers are simply wrong. Neither the MIT License nor the Apache License are used in the TYPO3 project. When you open a file of the TYPO3 package in a text editor and look at the source code you will find the following copyright notice at the top of almost every PHP file: You also find the file LICENSE.txt in the package when you download the TYPO3 software. This file contains the full copyright and license information of the GNU General Public License Version 2. Having said that, at the top of this file you also find a note that some icons used in the TYPO3 project are taken from the “Silk⁷” icon set by the creator Mark James. His work is distributed under a Creative Commons Attribution 2.5 License. Nevertheless, TYPO3 CMS uses the GNU General Public License as outlined above. To learn more about TYPO3 licenses, go to https://typo3.org/project/licenses. The correct answer is 4. ⁷http://famfamfam.com/lab/icons/silk/ TYPO3 Basics 7 1.2.5 What does the license used by TYPO3 CMS imply? (3) 1. You are allowed to modify and distribute the TYPO3 logo 2. You are allowed to make copies of the source code 3. You are allowed to sell a modified version of the source code 4. You are allowed to run the software on Linux systems only 5. You are allowed to run, study, share, and modify the software We already clarified in another question that TYPO3 CMS uses the GNU General Public License (GPL). The TYPO3 source code is free software and you can redistribute and/or modify it under the terms of the GPL version 2 or later. But what exactly does this imply? Let’s go through each answer in detail. The beliefs surrounding open-source software can be pretty strange. The truth is that the use of the TYPO3 logo is unambiguously defined by law and the license. The logo is licensed under the Attribution-No Derivative Works 2.5 Generic⁸ license of the Creative Commons License. This means that the logo may be distributed but not modified in any way⁹. This makes the first answer wrong. Answer 2 claims that you are allowed to make copies of the source code – and this is correct of course. The GPL explicitly encourages users to download, copy, and share the software. It may confuse some but the GPL also allows users to sell the original software as modified versions. Answer 3 is therefore correct. However, you still have to meet all of the requirements of the license. This means that you have to make the modified code available to the public. TYPO3 runs well on various operating systems, including Linux, Windows, and macOS – and the GPL does not limit you to run the software on specific platforms. Answer 4 is wrong. Hints and tips for the exam We already determined that the answers 2 and 3 are correct and the answers 1 and 4 are wrong. This means that the last answer must be correct, as the number in brackets at the end of the question indicates that a total of three answers are correct. In theory we could stop here, right? Hold on – don’t do this! Although the exam has a time limit, you significantly increase your chances of passing the test, if you take the time and read every answer thoroughly. Take every option into account and confirm your thinking even if you feel you already know the correct answer(s). Answer 5 claims that you can run, study, share, and modify software that is licensed under GPL – and this is absolutely right. The GNU General Public License, originally written by Richard Stallman, guarantees users the freedom to do so. The correct answers are 2, 3, and 5. ⁸http://creativecommons.org/licenses/by-nd/2.5 ⁹The appearance and use of the logo is defined in the TYPO3 Style Guide. TYPO3 Basics 8 1.2.6 What are the current products of the TYPO3 project? (3) 1. The PHP dependency manager “Composer” 2. The content management system “TYPO3” 3. The content application framework “Neos CMS” 4. The web templating engine “Fluid” 5. The deployment tool “Surf” The TYPO3 project currently fosters three software products. They all use the PHP programming language¹⁰ and are licensed under the GNU General Public License¹¹. Looking at the five possible answers for this question, you likely picked the most obvious answer without hesitation. The content management system TYPO3 (as suggested in answer 2) is clearly the flagship of the TYPO3 project. However, there are two further products you should know. The dependency management tool Composer¹² allows you to declare the libraries your project depends on and manages dependencies of packages for you. Although Composer is used by TYPO3, it is not a product by the TYPO3 project. This makes the first answer wrong. Certified TYPO3 integrators are required to know the basics of Composer though. You will encounter a few more Composer-related questions in this study guide. If you have been in the TYPO3 community long enough, you possibly heard about “Neos CMS”. In 2006, a decision was made to redevelop the content management system TYPO3 from scratch. In the following years, a new framework and CMS was planned and developed. The CMS was named TYPO3 Phoenix and later renamed to TYPO3 Neos. However, the TYPO3 Association announced the split between TYPO3 CMS and TYPO3 Neos in 2015. TYPO3 Neos was renamed to Neos, and since then, the Neos project is not part of the Association and TYPO3 project any more. TYPO3 certification candidates are not tested for any Neos- related knowledge, but if you want to learn more about this application, go to https://www.neos.io. Answer 3 is therefore wrong. Let’s turn to answer 4. Fluid is a web templating engine and quickly became the de facto standard for TYPO3. It is an essential part of every TYPO3 instance and is indeed a product of the TYPO3 family. Your knowledge of Fluid will definitely be tested in the TCCI exam. I will go into more details about Fluid and provide several example questions in chapter “Templating”. Have you ever used “Surf¹³” before? Don’t worry if you have not (see the exam tips below). Surf is a complete automated deployment tool that can be used to deploy TYPO3 and other applications. It is in fact a TYPO3 product but we don’t expect TYPO3 integrators to be familiar with this tool. If you’re interested, read the documentation at https://docs.typo3.org/surf/. ¹⁰https://www.php.net/ ¹¹http://www.gnu.org/licenses/gpl.html ¹²https://getcomposer.org/ ¹³https://github.com/TYPO3/Surf TYPO3 Basics 9 TYPO3 product range Hints and tips for the exam We expect that certified TYPO3 integrators have extensive knowledge of, and experience with TYPO3 CMS and Fluid. Integrators should also be familiar with the basic usage of Composer. Neos and Surf are not part of the TYPO3 integrator certification at all. The correct answers are 2, 4, and 5. TYPO3 Basics 10 1.2.7 Which of the following TYPO3 teams exist? (3) 1. The Documentation Team 2. The Debt Collector Team 3. The Security Team 4. The Server Team 5. The End-user Support Team As a TYPO3 integrator, you configure and maintain systems, install and update extensions, possibly train backend users, and you know how to create templates. Why do you need to know which teams exist? Although the official TCCI question pool does not contain any questions that ask candidates about teams and committees directly, it might be useful to know which teams exist. You can possibly draw a conclusion from the information and answer related questions. Let me give you a quick overview. Teams and committees of the TYPO3 community take care of specific tasks within their area. The Accessi- bility Team, for example, continuously improves and maintains the accessibility in TYPO3. The Documentation Team creates and maintains the official documentation for a range of TYPO3 products. This includes manuals, guides, tutorials, and also the comprehensive TYPO3 Core documentation and API reference for developers. The TYPO3 Security Team takes care of all security-related topics around TYPO3. You will learn more about this team and their activities in the chapter “Security and Privacy”. The smooth, robust, and stable operation of the server infrastructure is in the responsibility of the Server Team. The infrastructure does not only contain servers, but also a great number of software tools and services. The Education and Certification Committee is responsible for the TYPO3 education strategy, access to learning materials, and official TYPO3 certifications. Further active teams are the Marketing Team, the Core Development Team, the Design Team, and the Content Group for example. Go to https://typo3.org/community/teams to learn more about TYPO3 teams and committees. As TYPO3 is a community-driven open-source project, neither a Debt Collector Team nor an End-user Support Team exist. The correct answers are 1, 3, and 4. TYPO3 Basics 11 1.2.8 What is a (strategic) TYPO3 initiative? (1) 1. If someone takes the initiative to submit a bug report 2. The annual newsletter campaign by the TYPO3 Marketing Team 3. A task force to collect membership fees from TYPO3 Association members 4. A community-driven development outside of the TYPO3 Core roadmap Everyone who works with open-source software (and potentially earns money by using it) should contribute and continuously improve the system. Submitting bug reports is one way to do this. But this is not what we call a TYPO3 initiative. So the first answer is wrong. The TYPO3 Marketing Team does a fantastic job. The members are passionate about spreading the word about TYPO3. They create and publish sales and marketing resources to help other people to understand what TYPO3 is. However, their marketing campaigns have nothing to do with (strategic) TYPO3 initiatives either, which makes answer 2 also wrong. Answer 3 is made up. Memberships are an important income for the TYPO3 Association but the Association doesn’t have a task force to collect the fees. Even if they would have, this is not a TYPO3 initiative. In fact, TYPO3 initiatives are a place where new concepts are evaluated, discussed, and developed. Initiatives are independent, community-driven, and they have their own roadmap and timeline. Initiatives aim for a clear, specific, and strategic goal, and once they are finished there is a good chance that they are merged into the TYPO3 Core. Some examples of initiatives that made it into TYPO3 v10 LTS are: The Dashboard in the TYPO3 backend. The new translation server and the integration with Crowdin¹⁴. Previous TYPO3 initiatives are for example: The system extensions “SEO” and “Forms” (also known as the Form Framework). The GDPR initiative. The correct answer is 4. ¹⁴https://crowdin.com/ TYPO3 Basics 12 1.2.9 Which statement about the TYPO3 Association is correct? (1) 1. The TYPO3 Association is a for-profit company that finances the TYPO3 project 2. TYPO3 Association is the name of the company that Kasper Skårhøj founded to support the project 3. The TYPO3 Association is an association registered in Switzerland 4. TYPO3 Association is the name of the association of all TYPO3 user groups in Europe 5. The TYPO3 Association was replaced by the TYPO3 GmbH in 2016 If you proceed systematically, you can exclude most of the answers fairly quickly. First and most importantly, the TYPO3 Association¹⁵ is a non-profit organization with the following goals: Increase number of people involved in TYPO3 Keep good vibes and values Increase market share Increase confidence in products Provide CMS insights/research As mentioned before, the TYPO3 Association is not a commercial institution, so the first two answers are wrong. User groups are not directly connected to the TYPO3 Association but are organized independently and on users’ own initiative. This makes answer 4 also wrong. The TYPO3 GmbH was founded by the TYPO3 Association to take care of commercial services around the TYPO3 ecosystem. It was not founded to replace the Association. Therefore, the last answer is also wrong. This means that answer 3 is the only correct answer. The TYPO3 Association is in fact an association registered in Switzerland. Those who suspect that this is for tax reasons are wrong (associations do not need to pay taxes if they do not operate commercially). The location seemed appropriate as the approximate geographical center of Europe, and many of the founding members were based in Switzerland anyway. In addition, the members of an association have not any priority voting rights according to Swiss association legislation, which makes organization and management noticeably simpler. By the way, the TYPO3 Association was founded in 2004. The correct answer is 3. ¹⁵https://typo3.org/project/association/ TYPO3 Basics 13 1.2.10 What are some tasks of the TYPO3 Association? (3) 1. Organizing TYPO3 community events 2. Financing full-time programmers 3. Specifying the colours used in the TYPO3 logo 4. Collecting membership fees 5. Running security checks against competitive products This question follows on from the previous one, so the correct answers are fairly simple to determine in this context. Naturally, this context will not be given in the certification exam, so you should familiarize yourself with the tasks and events of the Association in detail. Hints and tips for the exam Did you notice that the number in brackets indicates that three out of five answers are correct? If you’re unsure about which answers are correct, you possibly want to tackle the question in a different way. Try to identify the answers that are clearly wrong. Logic dictates that in this case you only need to identify two answers. All of the answers sound plausible. The TYPO3 Association organizes and manages several events. This includes the T3BOARD, the T3DD (TYPO3 Developer Days) and, of course, T3CON, the main TYPO3 conference. Other events, such as TYPO3 camps, are organized independently of the Association. Therefore, the first answer is undeniably correct. As to the other answers: the TYPO3 Association does not pay developers on a full-time basis. Instead, the preferred method is to finance projects and code sprints. This means that answer 2 is wrong. The Association is, however, responsible for the TYPO3 brand and public communication, which includes the design and colour of the logo. Like most other associations, the TYPO3 Association collects membership fees. The income from memberships, donations, and events is used to fund the core development, community projects, etc. Competitive systems exist but we believe in an open collaboration. Running security checks against other products and systems is definitely not a task of the TYPO3 Association, which makes the last answer wrong. The correct answers are 1, 3, and 4. TYPO3 Basics 14 1.2.11 What are the requirements for a membership in the TYPO3 Association? (2) 1. A registered company and tax file number 2. A residency in an European country 3. Payment of a one-off fee (except for the “Community Membership”) 4. Payment of an annual membership fee 5. An invitation by an existing member of the TYPO3 Association 6. Proof that you developed at least one website using TYPO3 You don’t need a company or tax file number to become a member of the TYPO3 Association. You are also welcome if you’re a freelancer or if you want to support the TYPO3 project with a small financial contribution. It also does not matter where you are located and if you have ever worked with TYPO3 before. Your membership supports the Association in its work to make TYPO3 even better and more successful. This means that you can scratch answer 1, answer 2, and answer 6 off the list. They are all clearly wrong. Now you are left with three answers and two of them must be correct. TYPO3 Association memberships are open for everbody. You don’t need an invitation and you can sign-up to become a member on the website¹⁶. A range of membership options are available, varying in price and entitlements. In addition to the annual membership fee, there is a one-time registration fee, except for the Community Membership. The correct answers are 3 and 4. ¹⁶https://typo3.org/project/association TYPO3 Basics 15 1.2.12 Which TYPO3 Association memberships exist? (3) 1. TYPO3 Freelancer membership 2. TYPO3 Community membership 3. TYPO3 Silver membership 4. TYPO3 Premium membership 5. TYPO3 Gold membership 6. TYPO3 Active Contributer membership TYPO3 Association members support the development of TYPO3 and participate in shaping the future of the open-source content management system. The TYPO3 Association offers a range of membership options, varying in price and entitlements. The costs for the Community Membership is under € 10.- per year. This option is predominantly to show your support for TYPO3. Freelancers and agencies should consider one of the standard memberships (see below). For universities, research institutes, and colleges, one of the Academic Memberships are likely a good fit. The annual membership fee depends on the membership level. At the time of writing, these are € 7.92 for the Community, € 125.- for the Bronze, € 1,000.- for the Silver, € 2,750.- for the Gold, and € 12,500.- for the Platinum membership. In addition there is a one-time registration fee, except for the Community membership. TYPO3 Association memberships To learn more about the available memberships of TYPO3 Association, have a look at https://typo3.org/ project/association/membership/. The correct answers are 2, 3, and 5. TYPO3 Basics 16 1.2.13 What is a TYPO3 user group? (1) 1. A group of TYPO3 Association members who are working on a task 2. A commercial support network organized by TYPO3 agencies 3. A casual meeting (physical or virtual) of TYPO3 enthusiasts 4. A chat channel Let’s keep the explanation short. TYPO3 user groups are casual, usually regular, meetings of TYPO3 enthusiasts. These meetings don’t follow a specific agenda necessarily and are organized by their members in many cities across the world. The main ideas behind a user group are to share knowledge and experience, learn from subject matter experts, and hold other related activities. TYPO3 Association members often join TYPO3 user group meetups, but this is not what user groups are about. Although answer 2 sounds plausible – and TYPO3 agencies sometimes support or organize them – TYPO3 user groups are not a commercial support network. The last answer is also wrong. A few chat channels exist, for example #TYPO3 on IRC, but these are channels and not groups. You can find more information about TYPO3 user groups at https://typo3.org/community/meet/user-groups. Check the list if a user group exists in your area that you can join, or start your own group. The correct answer is 3. TYPO3 Basics 17 1.2.14 What does the TYPO3 Code of Conduct say? (3) 1. Treat all community members with respect 2. Be nice and hug everyone you meet at official TYPO3 events 3. Convince others that TYPO3 is the best system on the market no matter what 4. Harassment, personal attacks, and demeaning behavior are not tolerated 5. Be aware that language can be difficult: sarcasm and irony is not understood by everyone 6. Never use your real name for privacy reasons Almost every mid to large size open-source project has (or should have) some rules on how members should collaborate. If hundreds of people worldwide participate in a project in one way or another, it may happen that sometimes not everyone agrees with decisions, opinions, or statements by someone else. The TYPO3 project is not different. Having said that, the TYPO3 community is mainly a nice place. The vision “inspiring people to share” is central to the way the TYPO3 community collaborates. What is a Code of Conduct? In general, a code of conduct is a set of rules around behaviour for community members. These rules aim to support the members in general decision making by giving them a structure to follow and allowing them to be prepared to handle ethical dilemmas. A code of conduct is also an external statement of the community’s values and commitments. Many years ago, Ben van ‘t Ende formally developed a “TYPO3 Code of Conduct” that was based on the Ubuntu Code of Conduct¹⁷. A new code of conduct was developed by the Ombudsperson Group¹⁸ in 2021. The proposed new guidelines came into effect after the community voted in favor of them in March 2022. You don’t need to know every single word of the code of conduct for your TCCI exam. However, as a certified TYPO3 integrator and member of the TYPO3 community, you should read the rules and understand where and when they apply: https://typo3.org/community/values/code-of-conduct. The TYPO3 Code of Conduct contains two sections: the basic rules and the general advice. It is self-evident that you should treat all community members with respect, regardless of race, gender identity, age, sexual orientation, disability, physical appearance, national origin, ethnicity, beliefs, religion, etc. The first answer is therefore correct. Hugs and kisses are seen as a nice gesture by many people but are not accepted in every case as some people find them a breach of their personal integrity. Don’t hug everyone you meet at TYPO3 events! Answer 2 is wrong. ¹⁷https://ubuntu.com/community/code-of-conduct ¹⁸https://typo3.org/community/teams/ombudsperson TYPO3 Basics 18 The rule to convince others that TYPO3 is the best system on the market (answer 3) is not part of the code of conduct. In fact, the rules say that you must not start, continue, or encourage personal attacks, flame wars, and trolling, which is often a result of imposing your opinion or beliefs on others. This makes answer 3 also wrong. Answer 4 is, of course, correct. The TYPO3 Code of Conduct states that harassment, personal attacks, or demeaning behavior are not tolarated. This includes intrusive photography or recording, unwanted sexual attention, and deliberate stalking or following. The next answer is also correct. Others possibly misunderstand language, especially if it is a foreign language. Keep in mind that the TYPO3 project has a strong international focus. Be careful with sarcasm and irony. Now, let’s check the last answer. On the one hand, real names are an essential part of our identity that many of us want to protect. On the other hand, it makes sense to use valid contact information in forums, mailing lists, on Slack, at public meeting, etc. to which direct responses can be made. The TYPO3 Code of Conduct does not force you to use your real name or any sensitive personal information. You can even anonymously contribute to the project. However, the moment you voice an opinion or respond to others, we require you to be able to receive responses from others. Answer 6 suggests that the TYPO3 Code of Conduct states that you must never use your real name. This is obviously wrong. The correct answers are 1, 4, and 5. TYPO3 Basics 19 1.2.15 What can you do if you feel that someone violates the TYPO3 Code of Conduct, for example, at a TYPO3 conference? (1) 1. Do nothing as the TYPO3 Code of Conduct forbids you to speak up 2. Submit a complain to the TYPO3 Security Team 3. Contact the event staff or a TYPO3 Association ombudsperson 4. Jump on the stage, interrupt the speaker, and blame the person publicly This question and the answers don’t require a lot of explanations. Of course, you do not jump on the stage and interrupt the speaker. This is against the basic rule, stated in the TYPO3 Code of Conduct¹⁹, that you should not disrupt talks and other organized events. If you feel that someone violates the TYPO3 Code of Conduct, you should consider to speak up – but you don’t have to. Sometimes it might be more wise to just walk away. There is a difference between the basic rule number 3 and 4. If someone, for example, deliberately provokes emotional reactions or tries to derail a conversation by using insulting, hostile language or offensive words (also known as trolling), simply not reacting can be the solution. Rule number 3 of the TYPO3 Code of Conduct states: Do not start, continue, or encourage personal attacks, flame wars, and trolling. If you witness harassment, personal attacks, or demeaning behavior, the TYPO3 Code of Conduct encourages you to speak up, as this behavior is unacceptable (rule number 4). This means that the first answer is clearly wrong. But how do you speak up and file a complain if you feel that someone violates the TYPO3 Code of Conduct? The TYPO3 Security Team is not the right point of contact. You will learn more about the team and their responsibilities in the chapter “Security and Privacy”. Answer 2 is therefore wrong. You can report a violation of the TYPO3 Code of Conduct by submitting the details to the TYPO3 Ombudsperson Group²⁰: https://typo3.org/community/teams/ombudsperson/report If the incident happens at a TYPO3 event, for example a TYPO3 conference, you can also contact the event staff. The correct answer is 3. ¹⁹https://typo3.org/community/values/code-of-conduct ²⁰The TYPO3 Ombudsperson Group handles reports strictly confidential. You can also submit your report anonymously. TYPO3 Basics 20 1.2.16 Which events are organized by the TYPO3 Association? (3) 1. TYPO3 User Days 2. T3BOARD 3. TYPO3 Conference 4. t3marathon 5. TYPO3camp 6. T3DD 7. TYPO3 Academy Since TYPO3 has become more and more popular, and its importance continues to grow, more and more events have been organized around this software. These events are intended to promote social interaction and communication outside the electronic media to promote TYPO3 and attract new interested parties to the CMS. Although the organization of events is one of the main tasks of the TYPO3 Association, it is not responsible for all the events listed above. None of them are fictitious, by the way, except “t3marathon”. This means that answer 4 is wrong. The TYPO3 User Days, for example, have been organized by agencies or by TYPO3 user groups in various parts of the world. The TYPO3 camp, founded and managed by the TYPO3camp GbR, is also hosted independently of the Association and usually provides three days of sessions on TYPO3 and related topics. Finally, the TYPO3 academy is also independent, organized independently by an agency, and therefore not an official event of the TYPO3 Association. T3BOARD, however, has been organized by Association on an anual basis for many years. This event is a snowboard tour and took place in countries such as Switzerland, Austria, Italy, and even Canada once. The official TYPO3 conferences, as well as the T3DD (TYPO3 Developer Days), are also organized by the TYPO3 Association. The correct answers are 2, 3, and 6. TYPO3 Basics 21 1.2.17 Which statements about major, minor, and bugfix versions in TYPO3’s version schema are correct? (3) 1. The first number is called the major version (e.g. “11” in version 11.5.2) 2. The second number is called the minor version (e.g. “5” in version 11.5.2) 3. The third number is called the minor version (e.g. “2” in version 11.5.2) 4. The last number is only increased between releases if the new version is a security update 5. The last number is called the bugfix or patch version (e.g. “2” in version 11.5.2) 6. Security releases always show four numbers as the version string (e.g. 11.5.2.1) Now let’s dive a little more into the technical aspects of TYPO3. TYPO3 strictly follows semantic versioning. Some questions in the TCCI exam require you to know what this is and what impact a version upgrade could have. You find all the details in the semantic versioning specification²¹ which is authored by Tom Preston- Werner (inventor of Gravatar and co-founder of GitHub) and published under the Creative Commons CC- BY-3.0 license. The chapter “Installation” contains more in-depth questions about semantic versioning. First of all, versions are managed by using the major-dot-minor-dot-patch scheme, for example 11.5.2. There are exactly three numbers, not more and not less. This makes answer 6 wrong straight away. Every new TYPO3 release receives a new version number and it depends on the change(s) which of the three numbers are increased. major If the first number changes between versions, this is called a “major” version update. This change indi- cates incompatible API changes and that TYPO3 integrators likely have to migrate some components, for example the database schema. minor If the second number changes between versions, this is called a “minor” version update. The new version adds new functionality in a backwards-compatible manner. bugfix/patch If the third number (which is also the last number) changes between versions, this is called a backwards- compatible bugfix or patch release. It is possibly a security update but not necessarily. Hints and tips for the exam Make sure that you understand what semantic versioning is. You should know what the terms “major”, “minor”, and “bugfix” mean in this context, and what impact an upgrade between versions might have. ²¹https://semver.org/ TYPO3 Basics 22 With these explanations in mind, let’s turn to the possible answers. Clearly, answer 1 and answer 2 are correct. Answer 3 can’t be correct as it contradicts answer 2. As outlined above, bugfixes can be security updates, but you also increase the third (last) number of a version string for releases that are not security-related. This makes answer 4 wrong. The last number of a version string is called the bugfix or patch version, which makes answer 5 correct. Finally, semantic versioning only allows for three numbers²², so the last answer can’t be correct. The correct answers are 1, 2, and 5. ²²Additional labels for pre-releases and build meta data are possible. They are appended to the version, for example 11.5.2-dev. TYPO3 Basics 23 1.2.18 What does “LTS” mean in TYPO3 v11 LTS? (1) 1. Language Translation Service 2. Long Term Scheduling 3. Long Time Support 4. Long Term Solution 5. Long Term Support 6. Long Time Solution Updates between major versions are sometimes a challenge. They introduce architectural changes and remove internal functions due to deprecations. Agencies, developers, and TYPO3 integrators often rely on TYPO3 versions that receive support on a long-term basis. This is where LTS releases come into play. At this juncture, the abbreviation LTS stands for Long Term Support as these versions receive security fixes and important maintenance updates for at least three years. The LTS concept is a successfully established strategy in many other projects (for example Ubuntu Linux, Drupal, Node.js, etc.). The first version of TYPO3 that was published as a LTS release was version 4.5 in 2011. New features and modern technologies require extensive tests and are usually not merged into LTS releases straight away to keep the code base stable. That’s one reason why TYPO3 deserves to be called enterprise content management system! The correct answer is 5. TYPO3 Basics 24 1.2.19 Which statements about “Sprint Releases” are correct? (3) 1. Sprint Releases are TYPO3 versions which are released as quickly as possible in order to fix security issues 2. Sprint Releases are maintained for at last 12 months 3. Every Sprint Release is based on a merge window which is then followed by a stabilization phase 4. TYPO3 version 9.2, 10.0, 10.3, and 11.2 are Sprint Releases for example 5. Sprint Releases have scheduled release dates New features and modern technologies require extensive testing and are usually not merged into LTS releases (long-term support) in order to keep the code base stable. On the other hand, the sooner a new feature or technology is introduced in a TYPO3 version, and used/tested by agencies and TYPO3 integrators, the sooner issues are discovered. Sprint Releases aim to tackle exactly this challenge. Sprint Releases are versions between LTS versions, which are published in relatively short intervals (usually some weeks or a few months). They may contain significant changes such as new features or new technologies. This concept ensures that problems can be identified in a very early stage and fixed before the appropriate component becomes part of a LTS release (which aims to be as stable and robust as possible). The following table shows the TYPO3 release cycle of the v11 series: Version: Release Date: Release Type: TYPO3 v11.0 22 December 2020 Sprint Release TYPO3 v11.1 23 February 2021 Sprint Release TYPO3 v11.2 4 May 2021 Sprint Release TYPO3 v11.3 13 July 2021 Sprint Release TYPO3 v11.4 7 September 2021 Sprint Release TYPO3 v11.5 5 October 2021 LTS-release (long-term support) The fact that every Sprint Release replaces its previous sprint release means that answer 2 is wrong. Sprint Releases are published in much shorter intervals. Although the term sprint sounds like a fast and urgent release, answer 1 is made up. This agile approach of a release cycle does not mean that Sprint Releases are fragile by default. In fact, every release is based on the proven workflow of a merge window which is then followed by a stabilization phase – very much like the normal releases, but scaled down to be quicker. The last release of a release cycle becomes the LTS-release. The correct answers are 3, 4, and 5. TYPO3 Basics 25 1.2.20 Where can you look-up changes of a new TYPO3 version? (2) 1. Changes are summarised at changes.typo3.org 2. You have to contact the TYPO3 Core Team by email 3. All changes are listed in the ChangeLog file in the root directory of an installed TYPO3 instance 4. All changes are documented as ReST files and included in every release package 5. A summary of changes is available for each release at get.typo3.org 6. Changes are kept secret for security reasons Every single change, new feature, and bugfix of the TYPO3 Core goes through a tracking system. This is “forge²³”, powered by Redmine²⁴. Additionally, every code change goes through a review system²⁵, powered by Gerrit Code Review²⁶ and must be committed to a version control system (git.typo3.org). All these systems enforce developers to provide detailed information on what they changed and why. All these systems are publicly accessible which means everyone can look-up the data. This makes answer 6 clearly wrong. Whenever the TYPO3 developers build a new TYPO3 version, they carefully select which changes²⁷ become part of it. Since every change contains a description, a so-called ChangeLog can be generated (almost) automatically. In early versions of TYPO3, a text file ChangeLog indeed existed in the root directory of an installed TYPO3 instance – as suggested in answer 3. However, this file became huge over the years and was removed some time ago. The release notes that are available at get.typo3.org provide more details. You can look-up every single change in short form, for example for TYPO3 version 11.5.2, at https://get.typo3.org/release-notes/11. 5.2. If a change is a breaking change, a deprecation, a new feature, or is classified as especially important, devel- opers add further details as ReST²⁸ files to official TYPO3 documentation. You find these files in the directory typo3/sysext/core/Documentation/Changelog/ of your TYPO3 instance (answer 4). Alternatively, you can read these files online docs.typo3.org²⁹. The correct answers are 4 and 5. ²³https://forge.typo3.org ²⁴Redmine is an open-source, cross-platform, and cross-database web application written using the Ruby on Rails framework. ²⁵https://review.typo3.org ²⁶https://www.gerritcodereview.com ²⁷A change can also be a new feature, a bugfix, etc. ²⁸ReST (also known as “reST” or “RST”): reStructuredText ²⁹https://docs.typo3.org/c/typo3/cms-core/main/en-us/ TYPO3 Basics 26 1.3 Recap The chapter “TYPO3 Basics” makes it clear that TYPO3 is more than the PHP-based content management system. Although TYPO3 CMS is the main focus of the TYPO3 project, you should also understand that more products exist. You should know what the TYPO3 Association and the TYPO3 GmbH are and you should be able to explain their responsibilities and how they are connected with each other. You should be familar with terms such as TYPO3 teams, initiatives, association memberships, user groups, etc. The values of the TYPO3 community and in particular the TYPO3 Code of Conduct are also important knowledge areas for a certified TYPO3 integrator. Looking at the more technical details of TYPO3 CMS, you should know the basics of the versioning concept that TYPO3 follows, the differences between sprint and long-term support releases, and the license model used by TYPO3. Additional Resources Read more about TYPO3 in general, the products, teams, community, events, and the TYPO3 Association at typo3.org³⁰. You find details about the TYPO3 GmbH and their service offers at typo3.com³¹. Progress Tracking with SkillDisplay Have you successfully worked through the first chapter and do you think that you know the TYPO3 basics? Congratulations! You can track your learning progress with SkillDisplay by scanning the following QR code or by following the link below. https://ebooks.schams.net/tcci/6/1/recap?v=6 ³⁰https://typo3.org ³¹https://typo3.com 2. Web Technology Basics 2.1 Overview The TYPO3 integrator is a technical role. This requires, without doubt, basic knowledge of modern web technologies. Before we dive into TYPO3’s technical details, let’s have a look at the fundamentals. If you are not familiar with these, you risk that you don’t understand the questions and/or answers in the exam – and, of course, the technical explanations in the following chapters of this book. The syllabus defines the following skills that a certified TYPO3 integrator should have in this area. Please note that the syllabus content was not copied one-to-one. The following list contains additional information about the knowledge we expect from a TCCI candidate. HTTP Status Codes Certified TYPO3 integrators have a basic knowledge of HTTP status codes. Regular Expression Basics Certified TYPO3 integrators are able to write simple regular expressions to find/replace patterns in text strings. They know the commonly used operators/quantifiers and character classes. They can also identify regular expressions and understand/explain what these do. YAML Basics Certified TYPO3 integrators know the YAML syntax used in configuration files. They know the importance of indentation and colons, and can read, create, and adjust YAML files. Command Line Basics Certified TYPO3 integrators can perform elementary tasks on the UNIX-based command line. This includes, for example, to list, create, copy, rename, and remove files and directories. TYPO3 integrators also know symbolic links. File System Permissions Certified TYPO3 integrators have an understanding of the file system permissions on UNIX-based systems. This includes, for example, to look-up and gather current permissions and ownerships, and to adjust these as required. Git basics This skill covers the basics and most important commands for working with the version control system “Git”. Certified TYPO3 integrators are familiar with repositories, tags, and common Git commands such as “clone”, “pull”, “commit”, “push”, and “log”. They know how to initialize a Git repository, create branches, switch branches, and how to merge source code. Knowing the Cron Daemon Certified TYPO3 integrators know the cron daemon basics on UNIX-based systems and how to look-up, create, and edit cron jobs. They also know the syntax of cron expressions. Charsets Certified TYPO3 integrators understand charsets, their common usage, and the main differences between specific charsets. Web Technology Basics 28 2.2 Example Questions 2.2.1 Which HTTP response status code indicates that an error occurred at the server side? (1) 1. The HTTP status code 301 2. The HTTP status code 404 3. Any HTTP status code between 500 and 599 4. Any HTTP status code below 200 The specification of the Hypertext Transfer Protocol (HTTP) defines a range of status codes that a web server issues in response to a client’s request. A client is, for example, a web browser that accesses a TYPO3 site. In simplified terms, the web server receives the requests and opens a PHP process that executes the TYPO3 application. The application processes the request and sends a response back to the client. This HTTP response contains a 3-digits response status code that indicates whether the request was successfully completed, could not be processed, or resulted in an error. The Internet Assigned Numbers Authority (IANA)¹ maintains the official registry of HTTP status codes. You do not need to know every status code by heart but you should know the five categories that each code belongs to. You should also know the most common status codes. So, let’s look into the details. You can easily determine the group by looking at the first digit of the code: 1xx - Informational Responses Responses with the status codes that start with 1 mean that the request was received and understood by the server while the request processing continues. The response instructs the client to wait for a final response. Informational responses are rather rare compared to the other categories. 2xx - Successful responses Responses with the status codes that start with 2 mean that the request was successfully received, understood, and accepted by the server. The response body typically (but not always) contains the data that the client requested, This could be, for example, the HTML document of a TYPO3 page. 3xx - Redirections Responses with the status code that starts with 3 indicate that further action is required to complete the request. Servers that respond to clients with a 3xx status code typically instruct the client to follow a redirect and make another request to a different resource (location). 4xx - Client Errors Responses with the status code that starts with 4 are intended for situations in which the error seems to have been caused by the client. A 4xx error occurs, for example, when a client accesses a resource that does not exist. It’s not the server’s fault if the request contains bad syntax or cannot be fulfilled, so it’s client error. ¹https://www.iana.org Web Technology Basics 29 5xx - Server Errors In contrast to client errors, responses with the status code that starts with 5 mean that an error occurred at the server side. These errors could be caused by a misconfiguration or a PHP programming error, for example. The question refers to errors that occurred at the server side. The answer 3 is without doubt the correct answer. Differences between the various HTTP versions (HTTP/1.0, HTTP/1.1, and HTTP/2) exist. However, as pointed out above, the syllabus explicitly states that TYPO3 integrators only need a basic knowledge of HTTP status codes. The next sample question dives a little deeper into specific HTTP response status codes. The correct answer is 3. Web Technology Basics 30 2.2.2 Which HTTP response status code should a web server (or web application) send to inform the client that a resource was moved to a new location? (1) 1. The HTTP status code 100 to instruct the client that further requests are required to complete the request 2. The HTTP status code 200 to indicate that neither a client nor a server error occurred 3. The HTTP status code 301 if the resource was moved permanently, or 302 if the resource was only moved temporarily 4. The HTTP status code 404 as the original resource was not found 5. The HTTP status code 504 as the resource has been changed on the server which means that it’s a server error If a client (e.g. a web browser) requests a resource from a web server, and this resource does not exist, the server’s typical response is a HTTP status 404 (“not found” error). However, a different server response can be more informative. If the resource, for example a page in TYPO3, has been moved and is now available at a different URL, it makes sense to inform the client about the new address. The client can decide to initiate another request and to use the new location for this action. The chances are high that this leads to a successful request and that the user gets what they initially wanted. This process is commonly known as a redirect. HTTP status codes starting with 4xx and 5xx indicate errors. Informing the client that a resource was moved is not an error. The last two answers 4 and 5 are therefore wrong. HTTP status codes in the 2xx category indicate that the client’s request was successful and has been completed. Although the statement given in answer 2 is right (“neither a client nor a server error occurred”), the status code 200 indicates that request was successful and that response contains the resource that the client requested. This is not the case if the resource was moved. Answer 2 is also wrong. HTTP responses with the status codes starting with 1xx are informational responses. This sounds promising at first but 100 responses indicate that the server has received the request headers and the client should proceed to send the request body. Responses of this type can’t be used to inform the client that a resource was moved to a new location. The answer 3 is the only correct answer. If clients receive a response with the status code 301, this means that the resource, that they requested, is now available at a different location. The server also sends the new address in the response. The status code 302 has the similar meaning but indicates that the move is only temporarily. The correct answer is 3. Web Technology Basics 31 2.2.3 What is the main difference between the HTTP response status codes 301, 302, 307, and 308, given that they all redirect a client to a new location? (3) 1. Web servers may only send the status code 307 if the client made a request through HTTPS, whereas the code 301 is valid in HTTP and HTTPS 2. The status codes 307 and 308 return the new URI but explicitly instruct the client not to follow the redirect 3. The status codes 307 and 308 explicitly instruct the client to use the same method (GET or POST) when requesting the resource at the new location 4. The status code 308 explicitly instructs the client to use HTTPS rather than HTTP when requesting the resource at the new location 5. The status code 301 indicates that the resource has been moved permanently, whereas the code 302 indicates a temporary change 6. The status code 307 indicates that the resource has been moved temporarily, whereas the code 308 indicates a permanent change Most TYPO3 integrators know the HTTP response status codes 301 and 302. These are pretty standard. The code 301 indicates a permanent change of the original URI, whereas the code 302 indicates that further changes in the URI might be made in the future. Therefore, the new location is only temporarily. This is what the answer 5 suggests, so this is clearly a correct answer. TYPO3’s redirect backend module, for example, also offers to configure HTTP responses with the 307 and 308 status codes. What are the main differences? First and foremost, the status code 307 has the same semantics as the 302 code (temporary redirect), and the code 308 has the same semantics as the 301 code (permanent redirect) respectively. This might be confusing. Having said that, the last answer provides a valid statement and is, therefore, also correct. There must be another important difference between the four HTTP response status codes. The answers 1 and 4 suggest that it is related to HTTP and HTTPS requests. This is nonsense. All four codes are valid in the HTTP and HTTPS contexts which makes the first answer wrong. Answer 4 is also wrong as the response codes don’t instruct the client to use HTTP or HTTPS for subsequent requests. Think about the answer 2 for a moment. Why should a server inform the client about the new URI but instruct the client not to access it? This does not make sense. This answer is also wrong. In fact, the status code 307 instructs the client not to change the HTTP method used. If the client used the POST method in the first request, this method must also be used if the client follows the redirect. The same applies to the status code 308. The correct answers are 3, 5, and 6. Web Technology Basics 32 2.2.4 What is a regular expression? (1) 1. A rule that the TYPO3 Association developed for the TYPO3 Code of Conduct 2. An expression that is regularly used in the web technology to securely encrypt passwords 3. A technology that allows users to specify search patterns for texts 4. A configuration language to define virtual hosts in the Apache HTTP server TYPO3 uses regular expressions a many places. A prominent backend module that applies this technology is, for example, the Site Management → Redirects module: Wikipedia² defines regular expressions as follows: A regular expression […] is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for “find” or “find and replace” operations on strings, or for input validation. Regular expressions (sometimes referred to as regex or regexp) are a powerful technology. However, it is sometimes not easy to understand for new users. At first glance, the expressions look hieroglyphic. Also, numerous flavours and variations exist which makes a quick introduction almost impossible. Many modern tools such as the Apache HTTP server as well as the programming language PHP use PCRE (Perl Compatible Regular Expressions). If not stated otherwise, PCRE is what we use in TYPO3 and, therefore, also in the TCCI exam. As a certified TYPO3 integrator, you only need to know the basics. You should be able to identify and understand regular expression patterns and build simple pattern based on specific requirements. The most important regex basics are: Operators (also known as quantifiers) such as *, +, ?, {n}, and {n,m} Groups and ranges such as [a-zA-Z0-9] Character classes such as \d, \w, and \s ²https://en.wikipedia.org/wiki/Regular_expression Web Technology Basics 33 I will go into more technical details and provide examples in the following questions. In regards to the question about what a regular expression actually is, you can eliminate the first two answers as well as the last answer. They are all made up, of course. The correct answer is 3. Web Technology Basics 34 2.2.5 Which of the following statements about the regular expression /^(cute)*(kitty)+/ are correct? (3) 1. It matches the input “cute” as the word “kitty” is optional (due to the quantifier +) 2. It matches the input “cutekittycat” as the regex does not feature the $-character that would define the end of the input 3. It matches the input “etucyttik” as the order of characters is arbitrary 4. It does not match the input “fookitty” as the input does neither start with “cute” nor “kitty” 5. It does not match the input “cutekitty” as the input must not start with the word “cute” (due to the quantifier *) 6. It matches the input “kitty” as the word “cute” at the beginning is optional (due to the quantifier *) The regular expression in this question is relatively simple. It mainly tests your knowledge of the so-called quantifiers (see table below). However, the answers are tricky as they require a high level of concentration to identify which statements are right or wrong. Let’s first focus on the regular expression. It matches all terms that optionally start with the word “cute” (optionally due to the quantifier *), followed by the word “kitty” one or more times (due to the quantifier +). You should also understand that the ^-character matches the beginning of the input and that the $-character matches the end. These are called assertions and define boundaries. Commonly used quantifiers (operators) Characters Meaning ? Matches the preceding item 0 or 1 times. * Matches the preceding item 0 or more times. + Matches the preceding item 1 or more times. The first answer suggests that the regular expression matches the input “cute”. Although an input can start with “cute”, the second word “kitty” is not optional. The quantifier + means that these characters have to occur at least one time (see table). The second answer suggests that the regular expression matches the input “cutekittycat”. This is obvi- ously correct as the expression does not explicitly ends the input. If the regular expression would read /^(cute)*(kitty)+$/ (note the trailing $-character), it would not match the input “cutekittycat”. However, this is not the case which means that the answer 2 is correct. The next answer suggests that the order of characters is arbitrary and that the input could also be “etucyttik” (the words “cute” and “kit