2018-08-13 12:25:20 +02:00
|
|
|
|
Extension
|
|
|
|
|
=========
|
|
|
|
|
|
2018-08-13 14:16:27 +02:00
|
|
|
|
First of all we have to understand what an extension is, in the context of TYPO3 CMS.
|
|
|
|
|
|
2018-08-13 12:25:20 +02:00
|
|
|
|
What is an extension?
|
|
|
|
|
---------------------
|
|
|
|
|
|
2018-08-13 14:16:27 +02:00
|
|
|
|
See :ref:`t3coreapi:extension-architecture` in TYPO3 Core API Reference.
|
|
|
|
|
|
|
|
|
|
TYPO3 is built only with extensions, there is no framework below. All features are
|
|
|
|
|
assigned to a specific extension. This way it's possible to build the TYPO3 that fits
|
|
|
|
|
the project needs.
|
|
|
|
|
|
|
|
|
|
An extension is something like `frontend` or `backend`, which provides the TYPO3
|
|
|
|
|
frontend or backend. It can also be `extbase` or `fluid` which provides and Framework
|
|
|
|
|
to build further extensions or an template engine.
|
|
|
|
|
|
|
|
|
|
Nowadays most installations also have a `site_` or `sitepackage` extensions, which
|
|
|
|
|
encapsulates the systems configuration and resources like assets and templates. Thus
|
|
|
|
|
an TYPO3 extension is the same as an composer package.
|
|
|
|
|
|
2018-08-20 17:08:06 +02:00
|
|
|
|
In this workshop we will concentrate on a "typical" extension that will provide a
|
2018-08-13 14:16:27 +02:00
|
|
|
|
plugin and custom record types. This can be installed into any compatible TYPO3
|
|
|
|
|
installation. A new record type will be added, which can be edited in the TYPO3
|
|
|
|
|
backend. Also a new plugin will be added which can be added as a content element and
|
|
|
|
|
displayed in frontend.
|
|
|
|
|
|
2018-08-13 12:25:20 +02:00
|
|
|
|
Structure of an extension
|
|
|
|
|
-------------------------
|
|
|
|
|
|
2018-08-13 14:16:27 +02:00
|
|
|
|
.. code-block:: plain
|
|
|
|
|
|
|
|
|
|
extension_key
|
|
|
|
|
├── Classes
|
|
|
|
|
│ ├── Command
|
|
|
|
|
│ │ └── ExampleCommandController.php
|
|
|
|
|
│ ├── Controller
|
|
|
|
|
│ │ └── ExampleController.php
|
|
|
|
|
│ └── Domain
|
|
|
|
|
│ └── Model
|
|
|
|
|
│ └── Example.php
|
|
|
|
|
├── composer.json
|
|
|
|
|
├── Configuration
|
|
|
|
|
│ ├── TCA
|
|
|
|
|
│ │ └── Overrides
|
|
|
|
|
│ │ └── tt_content.php
|
|
|
|
|
│ └── TypoScript
|
|
|
|
|
│ ├── constants.typoscript
|
|
|
|
|
│ └── setup.typoscript
|
|
|
|
|
├── Documentation
|
|
|
|
|
├── ext_conf_template.txt
|
|
|
|
|
├── ext_emconf.php
|
|
|
|
|
├── ext_localconf.php
|
|
|
|
|
├── ext_tables.php
|
|
|
|
|
├── readme.rst
|
|
|
|
|
└── Resources
|
|
|
|
|
└── Private
|
|
|
|
|
└── Templates
|
|
|
|
|
└── Search
|
|
|
|
|
└── Search.html
|
|
|
|
|
|
|
|
|
|
See :ref:`t3coreapi:extension-files-locations` in TYPO3 Core API Reference.
|
|
|
|
|
|
2018-08-13 12:25:20 +02:00
|
|
|
|
Further resources
|
|
|
|
|
-----------------
|
2018-08-13 14:16:27 +02:00
|
|
|
|
|
|
|
|
|
* :ref:`t3coreapi:extension-architecture` in TYPO3 Core API Reference.
|
|
|
|
|
|
|
|
|
|
* :ref:`t3coreapi:extension-files-locations` in TYPO3 Core API Reference.
|
|
|
|
|
|
|
|
|
|
* https://docs.typo3.org/typo3cms/ExtbaseFluidBook/Index.html
|