TYPO3

TYPO3は、フリーのオープンソースコンテンツ管理システムである。PHPで書かれたモデル - ビュー - コントローラー (MVC) のウェブアプリケーション開発フレームワークであり、GNU General Public License (GPL) の下で開発されている。Linux、Windows、OS/2およびmacOS上のApache HTTP Server (Apache) またはInternet Information Services (IIS) で動作する。
歴史.
TYPO3は、最初にKasper Skårhøjによって作成された。
TYPO3に接続可能なエクステンションの多くはサードパーティーの開発者によって書かれている。
特徴.
既存のインタフェース、機能およびモジュールに加え、TYPO3に柔軟性と拡張性を追加するエクステンションが公開されている巨大なリポジトリがある。10,000個以上のエクステンションが、GNU General Public Licenseの下でTYPO3エクステンションリポジトリ (TER) と呼ばれるリポジトリからダウンロード可能である。
TYPO3は、ユーザ向けに提供されるウェブサイトとなるウェブフロントエンドと、ウェブサイトのコンテントを管理するために編集者およびサイト管理者によって利用されるウェブベースのバックエンドから構成される。TYPO3は、Linux、WindowsおよびmacOS上の ApacheまたはIISで動作する。PHPと MySQL、Oracle、PostgreSQLなどの TYPO3 DBAL によってサポートされるリレーショナルデータベースシステムを使う。ハードウェア要件としては、最近のCPUと256MBのRAMを搭載するサーバで動作し、フロントエンドは、JavaScriptが動作する、あらゆるOSのMozilla Firefoxのようなブラウザで表示可能である。
設計.
システムはテンプレートを基本としている。既存のテンプレートを選択して、ロゴ、色およびフォントなどの特徴を変更することができる。または、TypoScriptという設定言語を使って独自のテンプレートを作成することもできる。この単純な記法を用いて、データベースのデータと置き換えられるプレースホルダーとなる情報を大きなオブジェクトツリーへと構成することができる。値や機能を変更または追加することでプログラム済みのオブジェクトが設定される。このオブジェクトツリー構造はテキストファイルに保存される。さまざまなエディタがコンテントの変更に利用可能である。コンテントの生成にはこのデータ構造を使う。TypoScriptは、条件以外の制御構造を持たない; 実際の処理が実行されるときには、PHP関数に渡される。トップレベルオブジェクトはPAGEオブジェクトである。MENUオブジェクトにはさまざまなタイプがある。
TypoScriptの文法.
[オブジェクトパス].[属性] [演算子] [値]
myObject.attribute1=Hello
コンテントは主に、2つのテーブルに格納される: 1つは、「pages」というテーブル、もう1つは、「tt_content」である。これらは、ページに含まれる要素を保持する。各ページオブジェクトには固有の識別キー(uid)があり、現在のページにリンクしている。そのため、ページはツリー状に構成され、システムが簡単にメニューとサイトマップを生成できるようになっている。
TYPO3を特徴づける1つの鍵は、開発者がそれぞれに追加機能を提供することを可能にする柔軟なアプリケーションプログラミングインタフェースを持つことである。このAPIを使っているモジュールのことを「エクステンション」といい、多くの開発者がTYPO3の開発者ポータルの公開リポジトリにエクステンションを提供している。
TemplaVoila.
TemplaVoilaは、TYPO3のもう1つのテンプレートエンジンエクステンションである。テンプレートを作成するグラフィカルなマッピングツールが含まれ、別のページモジュール、フレキシブルコンテントエレメントを作成する機能と開発者向けのAPIがある。新しいコンテントエレメントタイプをプログラムすることなく作成できる。
TemplaVoilaは、完全に統合されたデザインにそって編集者がより直観的にコンテントを扱うことができ、TYPO3標準のテンプレーティングよりもウェブページの保守を柔軟にする。その一方で、標準テンプレートよりも若干遅くなる。