TYPO3 Extension Development

TYPO3 Extension Development
eBook: $26.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 30%!
Print + free eBook + free PacktLib access to the book: $71.98    Print cover: $44.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Covers the complete extension development process from planning and extension generation through development to writing documentation
  • Includes both front-end and back-end development
  • Describes TYPO3 areas not covered in the official documentation (such as using AJAX and eID)
  • Hands on style, lots of examples, and detailed walkthroughs
  • Written by Dmitry Dulepov, TYPO3 core developer and developer of TYPO3 extensions such as RealURL and TemplaVoila

Book Details

Language : English
Paperback : 232 pages [ 235mm x 191mm ]
Release Date : September 2008
ISBN : 1847192122
ISBN 13 : 9781847192127
Author(s) : Dmitry Dulepov
Topics and Technologies : All Books, CMS and eCommerce, Content Management (CMS), Open Source

Table of Contents

Chapter 1: About TYPO3 API
Chapter 2: Anatomy of TYPO3 Extension
Chapter 3: Planning Extensions
Chapter 4: Generating Extensions
Chapter 5: Frontend Plugin: An In-Depth Study
Chapter 6: Programming Frontend Plugins
Chapter 7: Programming Backend Modules
Chapter 8: Finalizing Extensions
  • Chapter 1: About TYPO3 API
    • Overview of TYPO3 API
    • PHP Classes and Files
      • t3lib_
      • tslib_
      • tx_
      • ux_
      • user_
    • How Data Is Stored in TYPO3
    • Common TYPO3 API
      • Database API
      • Extension Management
      • Helper Functions (t3lib_div)
        • GET/POST Functions
        • String Functions
        • Array Functions
        • XML Processing
        • File, Directory, and URL Functions
        • Debug Functions
        • System Functions
        • TYPO3-Specific Functions
        • TYPO3 File References
      • Language Support
      • Reference Index
      • Hooks
    • Backend API
      • TCEforms
      • TCEmain
        • Record Manipulation
        • Clearing Cache
    • Frontend API
      • TSFE
      • Content Objects
      • Plugin API
    • Summary
  • Chapter 2: Anatomy of TYPO3 Extension
    • TYPO3 Extension Categories
      • Category: Frontend
      • Category: Frontend plugins
      • Category: Backend
      • Category: Backend module
      • Category: Services
      • Category: Examples
      • Category: Templates
      • Category: Documentation
      • Category: Miscellaneous
    • Extension Files
      • Common Files
        • ext_emconf.php
        • ext_conf_template.txt
        • ext_tables.php
        • ext_tables.sql
        • ext_tables_static+adt.sql
        • ext_localconf.php
        • ext_icon.gif
        • tca.php
        • class.ext_update.php
      • Frontend Plugin Files
        • pi Files
        • TypoScript Templates
      • Backend Module and its Files
      • Module Function Files
      • Documentation Files
    • Summary
  • Chapter 3: Planning Extensions
    • Why is Planning Important?
    • How to Plan
      • Gathering Requirements
      • Implementation Planning
      • Documentation Planning
    • TYPO3-Specific Planning
      • Extension Keys
      • Database Structure
        • Field Names
        • Indexes
        • Database Relations
    • Planning Our Extension
      • Requirements
        • Functionality
        • Usability and Expandability
        • Technical
      • Extension key
      • Frontend Plugins
      • Backend Module
      • Other Classes
      • Extension Database Structure
      • Documentation
    • Summary
  • Chapter 4: Generating Extensions
    • Why Generation?
    • Preparing for Generation
    • Generation Steps
      • Entering an Extension key
      • Entering Extension Information
      • Set Up Languages
      • Creating New Database Tables
      • Extending Existing Tables
      • Creating Frontend Plugins
      • Creating Backend Modules
      • Integrating into Existing Modules
      • Adding Clickmenu Items
      • Creating Services
      • Static TypoScript Code
      • Adding TSConfig
      • Generating the Extension
    • Adjusting Extensions
      • Clean Up
      • Changing Fields
      • Hide Tables
    • Summary
  • Chapter 5: Frontend Plugin: An In-Depth Study
    • Frontend Plugins: The Basics
      • Concepts
      • Plugin Configuration
        • TypoScript Configuration
        • Flexform Configuration
    • Templating
    • Localization
      • Being Localization-Aware
      • Localizing Strings
      • Fetching Localized Records
      • Character Set Handling
    • Caching
      • Caching in TYPO3
      • Cached and Non-Cached Output
      • Using cHash
      • Two Things to Avoid
        • no_cache=1
        • set_no_cache()
      • Advanced: Embedding USER_INT into USER
    • Summary
  • Chapter 6: Programming Frontend Plugins
    • Review and Update Generated Files
      • Frontend Plugin Files
        • class.tx_feuserlist_pi1.php
        • locallang.xml
      • Other Related Files
        • TypoScript Files
        • ext_localconf.php
        • ext_tables.php
      • Non-Reviewed Files
    • Clean Up Extension
    • Programming the Plugin
      • General Workflow
      • Adding Files
        • Templates
        • Flexform Configuration
        • eID
      • Defining Functions
      • Initializing an Extension
        • Checking the Environment
        • Loading Configuration
      • Modifying the Flexform Data Source
      • Dispatching Calls
      • Using Templates
        • Template Basics
        • Using Templates
      • Creating a Single view
        • Creating a Template
        • Adding stdWrap for Fields
        • Programming Single View
      • Creating a List View
        • Creating a Template
        • Modifying the TypoScript Template
        • Programming List View
        • What is Missing in the List View
      • Creating Search
        • Including Styles and Scripts
        • Adding a Search Box to the Template
        • Adding a Search Condition
        • What About Cache?
        • Creating JavaScript for Autocomplete
        • Creating PHP Code for Autocomplete
      • Adding Hooks
      • What Can Be Optimized?
    • Summary
  • Chapter 7: Programming Backend Modules
    • Planning a Backend Module
      • Functionality of a Backend Module
      • Frontend Classes
      • Database Structure
    • Adjusting the Database
      • ext_tables.sql
      • ext_tables.php
      • tca.php
        • Columns
        • Types
        • Palettes
    • Implementing a Frontend Hook
    • Backend Modules: The Basics
      • What Is a Backend Module?
      • Module Functions
      • Backend Module Files
      • Backend API
        • t3lib_BEfunc
        • t3lib_TCEmain
        • t3lib_TCEforms
        • t3lib_htmlmail
        • t3lib_refindex
        • $BE_USER
    • Implementing a Backend Module
      • Files and Classes
      • A Note about Backend HTML
      • Implementing the Main Class
      • Implementing the List of Last Logins
      • Implementing Monthly View
      • Implementing a List of Active Users
      • Implementing Page Statistics
    • Summary
  • Chapter 8: Finalizing Extensions
    • Overview
    • Updating Code Files
      • Checking the Code
      • Using extdeveval to Beautify your Code
      • Script Documentation
      • Adding a Function Index
      • Reformatting the Code
    • Writing Documentation (Extension Manual)
      • Documentation Template
      • Template Structure
      • Styles in the Template
      • Images in the Documentation
      • Writing Documentation
      • Making Documentation Available
    • Uploading Extensions to TER
    • Summary

Dmitry Dulepov

Dmitry Dulepov is a TYPO3 core team member and developer of several popular extensions (such as RealURL, TemplaVoila, comments, ratings, and others). He is known by his active support of the TYPO3 community through TYPO3 mailing lists. In 2008 Dmitry won the contest to appear on the first TYPO3 playing cards. He runs a popular blog where he regularly publishes original tips and articles about various TYPO3 features. In addition to his continuous TYPO3 core and extension development, Dmitry provides support for the TYPO3 translation team on behalf of the core team.

Code Downloads

Download the code and support files for this book.

Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

TYPO3 Extension Development +    Vaadin 7 Cookbook =
50% Off
the second eBook
Price for both: $39.00

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Master the TYPO3 API and get to know the classes and functions
  • Learn all about extension categories and the file structure for extensions
  • Understand planning issues to take care of before development
  • Choose TYPO3 database and form types effectively and adjust generated fields for your needs
  • Create front-end plugins—configuring, templating, localizing, and caching
  • Program and generate front-end plugins
  • Respond to actions using AJAX and eID scripts
  • Program back-end modules—planning, managing the database, hooking up with the front end, and implementing
  • Upload your extension to TYPO3's extension repository (TER)
  • Write documentation following the set template and beautify your code with extdeveval

In Detail

TYPO3 is the enterprise-level content management system for the Web. It is large, feature-rich and very flexible—a lot of this flexibility comes through extensions written by the community. Extensions make it possible to use TYPO3 to drive any type of website, including e-commerce, blogs, social networks, catalogs, and many more. TYPO3 can be completely customized using extensions; however creating an extension can be a challenging task.

This book describes TYPO3 extension creation as it should be done. It starts from an overview of the TYPO3 API and provides recommendations on when and how to use this extensive API. Next it describes the TYPO3 extension generation process. It covers all generation options and emphasizes important decisions that extension developers should be aware of.

Since front-end plugins are the most popular TYPO3 extension type, the book has a chapter dedicated to the process of programming front-end plugins. We then move on to back-end plugin programming. All chapters stress best practices and come with unique tips from the author, who wants his experience to be shared with the TYPO3 community. The book finishes with a chapter about improving code and writing documentation.

This is the first book in English to cover TYPO3 extension development in detail. The author is a member of the TYPO3 core team and developer of many popular TYPO3 extensions. Both novice and experienced TYPO3 programmers can use this book to build the extension they need, following best practices, and saving a lot of time that would otherwise have been spent pouring though the documentation.


The book is structured so that following the chapters in order builds a TYPO3 extension from the ground up. Experienced developers can use individual chapters independently to get only the information that they need.

Each chapter is divided so that the first part contains a description and discussion of the topic covered followed by a coding example with explanation of how principles and techniques from the first part are followed in the code.

The reader is encouraged not only to read the book but also to look into the discussed classes and actually code the extension while reading the book.

Who this book is for

This book is for PHP developers who want to develop a TYPO3 extension. It assumes the reader has experience with PHP, XML, and HTML. No prior knowledge about TYPO3 extension programming or the TYPO3 API is presumed.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software