TYPO3

TYPO3

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

History

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.

Features

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.

Design

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:

TypoScript

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

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.

CLA for TYPO3 version 5

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]

See also

Further reading

References

  1. ^ http://typo3.org/download/packages/
  2. ^ "The History of TYPO3". The History of TYPO3. http://typo3.com/History.1268.0.html. Retrieved 2011-04-11. 
  3. ^ TYPO3 Extension Repository
  4. ^ TYPO3 Licences
  5. ^ TYPO3 Contributor License Agreement
  6. ^ [1]
  7. ^ Zend Framework CLA
  8. ^ Apache Foundation CLA
  9. ^ YUI CLA
  10. ^ OpenCms CLA
  11. ^ OSS Watch on CLAs

External links