TYPO3
Encyclopedia
TYPO3 is a free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 and open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 web content management framework
Content management framework
A content management framework is an application programming interface for creating a customized content management system . The relationship between a CMF and a CMS can be illustrated by the following analogy:...

. It is released under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

. It can run on several web servers, such as Apache
Apache HTTP Server
The Apache HTTP Server, commonly referred to as Apache , is web server software notable for playing a key role in the initial growth of the World Wide Web. In 2009 it became the first web server software to surpass the 100 million website milestone...

 or IIS
Internet Information Services
Internet Information Services – formerly called Internet Information Server – is a web server application and set of feature extension modules created by Microsoft for use with Microsoft Windows. It is the most used web server after Apache HTTP Server. IIS 7.5 supports HTTP, HTTPS,...

, on top of many operating systems, among them Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

, Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 and OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

.

History

TYPO3 was initially authored by Kasper Skårhøj in 1997. 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
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 from a repository called the TYPO3 Extension Repository, or TER. 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
Apache HTTP Server
The Apache HTTP Server, commonly referred to as Apache , is web server software notable for playing a key role in the initial growth of the World Wide Web. In 2009 it became the first web server software to surpass the 100 million website milestone...

 or IIS
Internet Information Services
Internet Information Services – formerly called Internet Information Server – is a web server application and set of feature extension modules created by Microsoft for use with Microsoft Windows. It is the most used web server after Apache HTTP Server. IIS 7.5 supports HTTP, HTTPS,...

 on top of Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 or Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

. It uses PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

 5.2 or newer and any relational database supported by the TYPO3 DBAL
Database abstraction layer
A database abstraction layer is an application programming interface which unifies the communication between a computer application and databases such as SQL Server, DB2, MySQL, PostgreSQL, Oracle or SQLite...

 including MySQL
MySQL
MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...

, Oracle
Oracle database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....

, PostgreSQL
PostgreSQL
PostgreSQL, often simply Postgres, is an object-relational database management system available for many platforms including Linux, FreeBSD, Solaris, MS Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software...

, and others; although MySQL is the only database widely supported by 3rd-party extensions.
The system can be run on any web server
Web server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....

 with a modern CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

 and at least 256 MB RAM. The Backend can be displayed in any modern browser with JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

. 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:
  • the official developer's resource: typo3.org
  • the wiki: wiki.typo3.org
  • the mailing lists: lists.typo3.org. Lists also have a Usenet
    Usenet
    Usenet is a worldwide distributed Internet discussion system. It developed from the general purpose UUCP architecture of the same name.Duke University graduate students Tom Truscott and Jim Ellis conceived the idea in 1979 and it was established in 1980...

     interface and are readable with a newsreader.

TypoScript

The basic syntax is:

[objectpath].[attribute] [operator] [value]

Operators include:
  • = assigns a value
  • < copies an object
  • =< inserts a reference to an object
  • > deletes an object


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
Template engine
A template engine is software that is designed to process web templates and content information to produce output web documents. It runs in the context of a template system.-Types:...

 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.

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 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).

The requirement to sign a CLA is common. It is used by Zend Framework, Apache, YUI, and OpenCms. A nice explanation of why a CLA is a good idea can be found at OSS Watch

See also

  • Content management
    Content management
    Content management, or CM, is the set of processes and technologies that support the collection, managing, and publishing of information in any form or medium. In recent times this information is typically referred to as content or, to be precise, digital content...

  • Content management system
    Content management system
    A content management system is a system providing a collection of procedures used to manage work flow in a collaborative environment. These procedures can be manual or computer-based...

  • List of content management systems
  • List of applications with iCalendar support
  • TCPDF
    TCPDF
    TCPDF is a free and open source software PHP class for generating PDF documents. TCPDF is currently the only PHP-based library that includes complete support for UTF-8 Unicode and right-to-left languages, including the bidirectional algorithm....

    library for generating PDF documents with TYPO3

Further reading

  • Rene Fritz, Daniel Hinderink, Werner Altmann – TYPO3: Enterprise Content Management (Paperback) – ISBN 1-904811-41-8
  • Michael Peacock – Building Websites with TYPO3 (Paperback) – ISBN 1-847191-11-8
  • Dan Osipov - TYPO3 4.3 Multimedia Cookbook (Paperback) - ISBN 978-1847198488
  • Dmitry Dulepov – TYPO3 Extension Development (Paperback) – ISBN 978-1847192127

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK