TYPO3 4.4 backend |
|
Developer(s) | TYPO3 Association |
Stable release | 4.6.0 / 2011-10-25 [1] |
Operating system | Cross-platform |
Platform | PHP |
Type | Content management system |
License | GNU General Public License |
Website | typo3.org |
TYPO3 is a free and open source web content management framework. It is released under the GNU General Public License. It can run on several web servers, such as Apache or IIS, on top of many operating systems, among them Linux, Microsoft Windows, FreeBSD, Mac OS X and OS/2.
Contents |
TYPO3 was initially authored by Kasper Skårhøj in 1997.[2] It is now developed by two teams. The maintenance (version 4.x) tree's team leader is Oliver Hader. The development (version 5.x) tree's team leader is Robert Lemke.
More than 5000 extensions are available for TYPO3 for download under the GNU General Public License from a repository called the TYPO3 Extension Repository, or TER[3]. Most of them have been written by third-party developers and are available for free.
Delivered with a base set of interfaces, functions and modules, TYPO3's huge functionality spectrum is implemented by extensions.
A web based backend is used by authors and site administrators to manage content for the web site.
TYPO3 can run on most HTTP servers such as Apache or IIS on top of Linux, Microsoft Windows or Mac OS X. It uses PHP 5.2 or newer and any relational database supported by the TYPO3 DBAL including MySQL, Oracle, PostgreSQL, and others; although MySQL is the only database widely supported by 3rd-party extensions. The system can be run on any web server with a modern CPU and at least 256 MB RAM. The Backend can be displayed in any modern browser with JavaScript. There is no browser restriction for displaying user-oriented content generated by TYPO3.
Conceptually, TYPO3 consists of two parts: the visitor-visible Frontend and the administrative Backend. The Frontend displays the web content. The Backend is responsible for administration and manipulating content.
TYPO3 defines various basic types of content data. Standard types include: text, image, text with image, HTML, table, video, lists, etc. These types can be extended through plugins. The most fundamental type is "page". Every element that can appear to the user belongs to a certain page. Pages are hierarchical. There are special page types; such as shortcuts (that show content from another page), mount points (that insert a part of the page tree at the mount point), external URL, and more.
The system uses a special configuration language called "TypoScript" to instruct the system to fetch data from the database, process this data and generate web content. Usually TypoScript is used in conjunction with one of the available template engines, such as "automaketemplate" or "TemplaVoila", to create output based on one or more HTML templates.
TYPO3 is almost completely pluggable and extensible. For example, TYPO3 can use several user authentication methods (such as RSA shared keys or OpenID) by installing extensions to the main system.
TYPO3 is a complex framework with a focus on high flexibility. There are various information sources for developers, such as:
The basic syntax is:
[objectpath].[attribute] [operator] [value]
Operators include:
Examples:
page.10 = TEXT page.10.value = Hello, world!
It must be noted that TypoScript is not a programming language, but a configuration language; that means, it is purely declarative. The following code will trigger no action in TYPO3 while it will would cause item creation and removal in proper programming languages:
page.10 = TEXT page.10.value = Hello, world! page.10 >
In this example, a TypoScript object named "page.10" was created and immediately removed. When TYPO3 parses TypoScript, it will remove the object declaration of "page.10" before actually processing or creating objects.
TemplaVoila is a popular third-party template engine extension for TYPO3. It includes a graphical mapping tool for creating templates, an alternative page module, the ability to create flexible content elements and an API. New content element types can be created without programming.
TemplaVoila is more comfortable for maintaining web pages than TYPO3's standard TypoScript-based templating, while making it possible to enforce a strict corporate design and allowing editors to work with content more intuitively.
Starting with TYPO3 version 5, the TYPO3 Association asks all contributors of ideas, code, or documentation to the TYPO3 projects (including FLOW3) to complete, sign, and submit an individual Contributor License Agreement (CLA). Without a signed CLA on file, no (non-trivial) contributions can be accepted. Signing such an agreement is not necessary (but recommended) for contributions to the version 4 branch of TYPO3[4].
For a corporation that has assigned employees to work on a TYPO3 project, a Corporate CLA (CCLA) is available for contributing intellectual property via the corporation, that may have been assigned as part of an employment agreement. Note that a Corporate CLA does not remove the need for every developer to sign their own CLA as an individual, to cover any of their contributions which are not owned by the corporation signing the CCLA.
In a nutshell the CLA[5] gives the TYPO3 Association non-exclusive, unlimited permission to use and distribute the contribution in any way, as long as it remains free (since the TYPO3 Association is bound to public benefit by its statutes, article 3[6]).
The requirement to sign a CLA is common. It is used by Zend Framework[7], Apache[8], YUI[9], and OpenCms[10]. A nice explanation of why a CLA is a good idea can be found at OSS Watch[11]