TYPO3

From Wikipedia, the free encyclopedia
Jump to: navigation, search
TYPO3
Logo of TYPO3
TYPO3 Backend.png
TYPO3 CMS 6.0 backend
Original author(s) Kasper Skårhøj
Developer(s) TYPO3 Association
Initial release 1998; 15 years ago (1998)
Stable release 6.1.5 / September 12, 2013 (2013-09-12)[1]
Preview release 6.2.0alpha2
Development status Active
Written in PHP, SQL, JavaScript
Platform Cross-platform
Size 25.2 MB
Available in 51 languages
Type Content management system
License GNU General Public License
Website typo3.org

TYPO3 is a free and open source web content management framework based on PHP. 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.

TYPO3 is, along with Drupal, Joomla! and WordPress, among the most popular content management systems worldwide, however it is more widespread in Europe than in other regions. The biggest market share can be found in German-speaking countries.[2][3]

TYPO3 is credited to be highly flexible - It can be extended by new functions without writing any program code. Also, the software is available in more than 50 languages and has a built-in localization system - therefore supports publishing content in multiple languages. Due to its features, scalability and maturity, TYPO3 is used by to build and manage websites of different types and size ranges, from small sites for individuals or nonprofit organizations to multilingual enterprise solutions for large corporations. According to the ability to support a corporate environment, it is classified as an enterprise level content management system.[4][5]

History & Usage[edit]

TYPO3 was initially authored by Kasper Skårhøj in 1997.[6] It is now developed by two teams. The maintenance (versions 4.x, 6 and newer) tree's team leader is Oliver Hader. The development (TYPO3 Neos) tree's team leader is Robert Lemke.[7]

Latest calculations from the TYPO3 Association claim that it is currently used in more than 500,000 installations. However the number of installations crawled by the public website "CMS Crawler" was around 270,000 by July 2013.[3][8]

Features[edit]

Delivered with a base set of interfaces, functions and modules, TYPO3's functionality spectrum is implemented by extensions. More than 5000 extensions are currently available for TYPO3 for download under the GNU General Public License from a repository called the TYPO3 Extension Repository, or TER.[9]

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.3 or newer and any relational database supported by the TYPO3 DBAL including MySQL, Oracle, PostgreSQL, and others. Some 3rd-party extensions - not using the database API - support MySQL as the only database engine. 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.

System architecture[edit]

Conceptually, TYPO3 consists of two parts: the frontend, visible to visitors, and the administrative backend. The frontend displays the web content. The backend is responsible for administration and managing content. The core functions of TYPO3 include user privileges and user roles, timed display control of content (show/hide content elements), a search function for static and dynamic content, search-engine friendly URLs, an automatic sitemap, multi-language capability for frontend and backend, and more.

Like most modern CMSes, TYPO3 follows the policy of separation of content and layout: The website content is stored in a relational database, while the page templates are stored on the file system. Therefore both can be managed and updated separately.

TYPO3 defines various basic types of content data. Standard content elements are described as text, text with media, images, (plain) HTML, video etc. Various additional types of content elements can be handled using extensions.

The fundamental content unit is a "page". Pages represent a URL in the frontend and are organized hierarchically in the backends' page tree. Standard pages serve as "containers" for one or multiple content elements. There are several additional special page types:

  • shortcuts (they show content from another page)
  • mount points (that insert a part of the page tree at the mount point)
  • external URLs
  • system folders (to handle complex data such as registered users)
  • ...and more

Internally, TYPO3 is managed by various PHP arrays. They contain all the information necessary to generate HTML code from the content stored in the database. This is achieved by a unique configuration language called TypoScript.

Design elements[edit]

Designing and developing with TYPO3 is commonly based on the following elements, among others:

Page tree
Representation of all pages of a site, their structure and properties
Constants
System-wide configuration parameters
Template
Traditionally, a simple HTML skeleton with markers (e.g., „###MARKER###“) and range markers, called subparts (e.g., „<!-- ###CONTENT### Start --> … <!-- ###CONTENT### End -->“); that are replaced by various content elements: navigation, text, graphics etc.) or serve as a subtemplate. Since TYPO3 4.3, the new template engine Fluid can be used.
TypoScript
see TypoScript
Extensions
Additional plug-ins to enable additional functions. See Extensions
PHP
As TYPO3 CMS is written in PHP, therefore most features can be modified or extended by experienced users. Mentionable here is the XCLASS mechanism, by which classes and methods can be overwritten and extended. If available, hooks are preferred.

TypoScript[edit]

TypoScript is a descriptive meta-language which defines how a website in TYPO3 is rendered. Strictly speaking, it is a configuration language, which is purely declarative. In Typoscript, configuration values are defined, which are parsed into a system-wide PHP array. TypoScript is object-based and organized in a tree-like structure.

TypoScript Template: The section associated with generating frontend output is called TypoScript Template. Its main use is to generate HTML code, possibly based on one or more HTML templates. The array controls the functions that, for example, are executed when the page is rendered in the frontend. Therefore it enables developers to globally manage features and extensions for the entire website with just a few modifications. Simplified: By creating an object in TypoScript, the system is instructed to execute several PHP functions, which create the desired output.[10]

TSconfig: TypoScript also influences the backend and other aspects of a TYPO3 project. The TSconfig branch of the TypoScript tree consists of User TSconfig and Page TSconfig. It's built by the same syntax as the TypoScript Template described above.[11]

Basic syntax:

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

Operators include:

= assign a value
< copy an object
=< insert a reference to an object
> delete an object

Example:

In order to create any output at all, at least a PAGE-object has to be defined. Using the following code will render the text "Hello World" in the frontend, wrapped in <h2> HTML tags:

 page = PAGE
 page.10 = TEXT
 page.10.value = Hello, world!
 page.10.wrap = <h2>|</h2>

Output:

<h2>Hello, world!</h2>

Other important TypoScript objects are CONTENT (get content from the database) and TEMPLATE (render a HTML template).[12]

Extensions[edit]

Extensions are the cornerstone in the internal architecture of TYPO3. A feature that was introduced with version 3.5 in 2003 is the Extension Manager, a control center managing all TYPO3 extensions. The division between the TYPO3 core and the extensions is an important concept which determined the development of TYPO3 in the past years. Extensions are designed in a way so they can supplement the core seamlessly. This means that a TYPO3 system will appear as a unit while actually being composed of the core application and a set of extensions providing various features.[13]

Diagram of the basic TYPO3 system architecture

They can be downloaded from the online repository (TER) directly from the backend, and are installed and updated with a few clicks. Every extension is identified by a unique extension key (for example, tt_news). Also, developers can share new or modified extensions by uploading them to the repository.[9]

Examples for popular extensions:

  • News (extension key: tt_news): Website news with front page teasers and article handling
  • TemplaVoila (extension key: templavoila), a popular third-party template engine extension
  • RealURL (extension key: realurl): Creates SEO-friendly URLs, "pretty" URLs
  • Front End User Registration (extension key: sr_feuser_register): A self-registration system for website users
  • Direct Mail (extension key: direct_mail): Newsletter mailer system with options for personalized mails and feedback statistics

Generally, extensions are written in PHP. The full command set of PHP 5.3 can be used (regarded the system requirements of the specific TYPO3 version), but TYPO3 also provides several library classes for better efficiency: Best known and most used is the piBase library class. With introduction of TYPO3 4.3 in 2009, piBase has been replaced (or extended) by the Extbase library, which is a modern, MVC-based development framework. To ensure backwards compatibility, both libraries can to be used in the same TYPO3 installation. Extbase itself is a backport of some features of FLOW3, a general web application framework and also the base for future versions of TYPO3 (see TYPO3 Neos)[14]

Releases[edit]

Version history[edit]

Legend: Old version Older version, still supported Current version Latest preview version Future release
Package name Branch Version [15] Release date Major changes
TYPO3 CMS
formerly TYPO3
3.x Old version, no longer supported: 3.0 2001
  • First public release[16]
Old version, no longer supported: 3.2 May 2002
  • Several bug fixes[17]
Old version, no longer supported: 3.3 3 June 2002
Old version, no longer supported: 3.5 18 February 2003
  • Several bug fixes
  • Introducing the Extension Manager - users can now write their own extension modules
Old version, no longer supported: 3.6 30 April 2004
  • Create XHTML code in standard content elements
  • XML storage for content elements
  • Introducing basic database abstraction concept[19][20]
Old version, no longer supported: 3.7 24 September 2004
  • Simplified content-localisation
  • Extended permission system
  • Renewed TypoScript-Engine
Old version, no longer supported: 3.8 23 May 2005
  • Multi-language ability for the backend (introducing language packs)
  • GraphicsMagick support
  • Improved frontend search[21]
Old version, no longer supported: 3.8.1 14 November 2005
  • Several bug fixes and security improvements[22]
4.x Old version, no longer supported: 4.0 7 April 2006
Old version, no longer supported: 4.1 6 March 2007
  • Improved page tree with Ajax
  • Introducing Inline Relational Record Editing (IRRE)[25]
  • Improved UTF-8 support and enabling of InnoDB features
  • Current version: 4.1.15[15][23][26]
Old version, no longer supported: 4.2 24 May 2008
  • Many GUI improvements in the backend, including AJAX features, extended features of the text editor
  • Improvement of frontend login and extension update process
  • Current version: 4.2.17[27]
Old version, no longer supported: 4.3 30 November 2009
  • Modified frontend editing
  • Flash uploader and recycle bin for the backend
  • New system reports & system scheduler
  • Introducing the new caching framework
  • Security improvements with Salt (cryptography) & RSA
  • Integration of Extbase & Fluid features
  • Current version: 4.3.14[28]
Old version, no longer supported: 4.4 22 June 2010
  • Full backend redesign incl. performance improvements
  • Simplified installation, first Introduction Package - a complete website template
  • CSS and javascript compression, HTML5 support in frontend
  • Current version: 4.4.15[29][30]
Older version, yet still supported: 4.5 LTS 26 January 2011
  • First release with long-term support (LTS) until October 2014, incl. support of IE6
  • UTF-8 as default charset and HTML5 in backend[31]
  • Refurbished backend forms and extension manager
  • Integrated protection against CSRF
  • Current version: 4.5.29[32][33][34][35]
Old version, no longer supported: 4.6 25 October 2011
  • Internationalization with XLIFF
  • New website form content element
  • Security & performance improvements
  • Current version: 4.6.15[36][37][37][38][39]
Older version, yet still supported: 4.7 24 April 2012
  • Complete Accessibility for new installations acc. to WCAG[40]
  • Introducing new HTML5 elements like <audio> & <video>, improvements for TCEforms[41]
  • Introducing the Government Package
  • Current version: 4.7.14[42][43][44][45]
6.x Older version, yet still supported: 6.0 27 November 2012
Current stable version: 6.1 30 April 2013[50]
  • Automatic updates for translations, e.a.[51][52]
  • Current version: 6.1.3 [15]
Future release: 6.2 LTS[52] 29 October 2013
  • Next release with Long Term Support (LTS), until October 2016
  • Current apha release: 6.2.0alpha2[53]
  • Final release scheduled for 29 October 2013[54]
TYPO3 Neos 1.x Latest preview version of a future release: 1.0 Alpha 5 5 August 2013
  • Originally planned as TYPO3 Version 5.0
  • Complete rewrite of TYPO3, based on the new framework FLOW3, following modern design concepts like MVC.[55][56]
TYPO3 Flow
formerly FLOW3
1.x Old version, no longer supported: 1.0 20 October 2011
  • After 5 years of development, the framework FLOW3 1.0. is released, to serve as the foundation for the new product,
    codename "TYPO3 Phoenix",[57] finally named TYPO3 Neos.
Older version, yet still supported: 1.1 28 August 2012
  • Focus on Speed and Stability
  • Cookie management, content negotiation for media types, cache headers support, expiration model support and a new virtual HTTP client [58]
2.x Current stable version: 2.0 24 June 2013
  • Focus on Speed and Stability
  • Lazy Dependency Injection, Safe Request Methods, Composer, REST Support [59]

TYPO3 Neos[edit]

A completely rewritten version (working title "Phoenix") was originally planned as TYPO3 version 5.0. While working on this new release and analyzing the 10-year history and complexity of TYPO3 v4, the TYPO3 community decided to publish version 5 as a completely new product that can not replace version 4 in the near future, and therefore needs to have its own name. Phoenix is based on FLOW3 and various other packages and will be released in late 2012.[60][61]

Starting with the new version, the TYPO3 Association asked all contributors to sign an individual Contributor License Agreement (CLA). Signing such an agreement is not necessary, but recommended.[62] This recommendation is common practice. it is also used by Zend Framework, Apache, Yahoo and other software publishers[63][64][65][66]

In September 2012, the TYPO3 developers decided on the final name for the new product, "TYPO3 Neos".[67] With TYPO3 Neos 1.0 alpha1, a public test version was released in late 2012.[68][69]

See also[edit]

Further reading[edit]

References[edit]

  1. ^ TYPO3 download section
  2. ^ Distribution of content management systems among websites that use German
  3. ^ a b Publishing solution popularity for TYPO3
  4. ^ TYPO3 - The Enterprise CMS
  5. ^ Hinderink e.a., Werner Altmann; René Fritz; Daniel (2005). TYPO3 : enterprise content management (1. ed.). Birmingham [u.a.]: Packt Publ. ISBN 1-904811-41-8. 
  6. ^ "The History of TYPO3". The History of TYPO3. Retrieved 2012-04-11. 
  7. ^ "Reshuffling in the core team: Leadership and Roles". TYPO3 Association. 
  8. ^ TYPO3 in numbers
  9. ^ a b TYPO3 Extension Repository
  10. ^ "TypoScript Templates". TYPO3 Core & Documentation Team. Retrieved 2 August 2012. 
  11. ^ "TSconfig Reference". typo3.org. 
  12. ^ "TypoScript - a quick overview". TYPO3 Wiki. 
  13. ^ "What are extensions?", TYPO3.org
  14. ^ Official Extbase MVC Framework Documentation
  15. ^ a b c d http://typo3.org/download/ Information on support cycles of TYPO3 versions
  16. ^ Installation manual for TYPO3 3.0
  17. ^ Installation manual for TYPO3 3.0 w/ Screenshots of version 3.2
  18. ^ Download older versions of TYPO3
  19. ^ Source code of all newer versions with release dates
  20. ^ Typo3 3.6.0 fertig gestellt | heise online
  21. ^ release notes for TYPO3 3.8
  22. ^ release notes for TYPO3 3.8.1
  23. ^ a b http://typo3.org/news/article/support-for-typo3-40-is-officially-over/ End of life of TYPO3 4.0
  24. ^ release notes for TYPO3 4.0
  25. ^ "Inline Relational Record Editing". TYPO3 Wiki. 
  26. ^ release notes for TYPO3 4.1
  27. ^ release notes for TYPO3 4.2
  28. ^ release notes for TYPO3 4.3
  29. ^ release notes for TYPO3 4.4
  30. ^ Information on TYPO3 4.4
  31. ^ TYPO3 4.5 Projects - TYPO3 450alpha3 - TYPO3 Forge
  32. ^ - TYPO3 4.5 projects - TYPO3 Forge
  33. ^ buzz.typo3.org: TYPO3 4.5 will be the most secure TYPO3 version ever
  34. ^ Status report for TYPO3 4.5, Oct. 2010
  35. ^ TYPO3 4.5 Kick-Off, TYPO3 Developer Days 2010
  36. ^ TYPO3 4.6 release date rec. 6. October 2012
  37. ^ a b Roadmap for TYPO3 4.6
  38. ^ Overview of TYPO3 4.6 projects
  39. ^ typo3.org: A Brief Introduction to TYPO3 version 4.6
  40. ^ TYPO3 Receives German Governmental Funding for Accessibility and Usability Project, rec. 27 Juli 2011
  41. ^ Core - Feature #12664: Idea about faster loading modules - TYPO3 Forge
  42. ^ Roadmap - typo3.org
  43. ^ TYPO3 4.7 Projects - Wiki - TYPO3 Forge
  44. ^ "TYPO3 4.7 release notes". 
  45. ^ Government Package demo site (german)
  46. ^ Development Report: File Abstraction Layer
  47. ^ TYPO3 6.0 Release Timeline - typo3.org
  48. ^ TYPO3 6.0 - Back to the Future
  49. ^ The TYPO3 Core Team is giving a short summary about the upcoming releases of TYPO3. - typo3.org
  50. ^ http://typo3.org/news/article/typo3-60-release-schedule/
  51. ^ http://forge.typo3.org/issues/43703
  52. ^ a b http://typo3.org/news/article/the-typo3-core-team-is-giving-a-short-summary-about-the-upcoming-releases-of-typo3/
  53. ^ "TYPO3 CMS 6.2 LTS alpha1 released". Retrieved 31 July 2013. 
  54. ^ "TYPO3 community news May/June 2013". Retrieved 25 August 2013. 
  55. ^ TYPO3 Roadmap - Phoenix
  56. ^ The TYPO3 Core Team is giving a short summary about the upcoming releases of TYPO3
  57. ^ release notes for FLOW3 1.0 rec. 11 October 2011
  58. ^ "FLOW3 1.1 Release Notes". TYPO3 Association. Retrieved 30 August 2012. 
  59. ^ "FLOW3 2.0 Release Notes". TYPO3 Association. Retrieved 24 June 2013. 
  60. ^ "The TYPO3 Core Team is giving a short summary about the upcoming releases of TYPO3". 
  61. ^ "TYPO3 Phoenix project site". TYPO3 Association. 
  62. ^ TYPO3 Licences
  63. ^ Zend Framework CLA
  64. ^ Apache Foundation CLA
  65. ^ YUI CLA
  66. ^ OSS Watch on CLAs
  67. ^ Dambekalns, Karsten. "TYPO3 Neos and Flow - September 2012". TYPO3 Associtiation. Retrieved 12 October 2012. 
  68. ^ "TYPO3 Neos Alpha Releases". TYPO3 Association. Retrieved 9 May 2013. 
  69. ^ "Change Log Neos 1.0.0 alpha2". TYPO3 Association. Retrieved 9 May 2013. 

External links[edit]