modules
各モジュールを置くディレクトリです。
各モジュールはmoduleディレクトリ直下に、それぞれ専用のディレクトリに格納されます。従って、moduleディレクトリには通常のファイルは存在しません。
また、moduleディレクトリ直下のディレクトリの名前を並び替えた順番で、各モジュールは初期化されることをモジュールを開発するときには心の片隅に止めておくと良いでしょう。
モジュールの構成
例えばnameというモジュールの場合、modules/nameというディレクトリの中に次のようなファイルやディレクトリが置かれます。これらの中にはモジュールによっては存在しない場合もあります。
モジュールを実装するPHPの(クラス)ファイルです。
モジュールの構成のファイルを置くディレクトリです。多くの場合、以下の2つのファイルを含みます。
config.php
モジュールをContaoに登録するファイルです。
database.sql
データベースに必要なテーブルを定義するSQLのファイルです。
Contaoのデータ格納配列(DCA)に必要な定義を行うPHPのファイルが置かれます。各PHPのファイルは、関連するテーブル名を名前とします。
モジュールに必要な画像やCSSファイルを置くディレクトリです。
モジュールが多言語対応をする場合に、追加で必要な翻訳を提供する言語ファイルを置くディレクトリです。
さらに、この下に言語の言語コードに対応するディレクトリ(日本語の場合だとname/languages/ja)が作成され、その中に実際の言語ファイルを置く構成となります。各言語ファイルは言語ラベルに対する翻訳をArrayを基本として定義しているPHPのファイルです。
モジュールがテンプレートを使用する場合に、テンプレートのファイルを置くディレクトリです。
各テンプレートのファイルは".tpl"の拡張子となります。
モジュールがバックエンドのテーマをサポートする場合に、テーマのCSSや画像のファイルを置くディレクトリです。
標準のモジュール
Contaoバージョン5.5.10では、以下の13個のモジュールが含まれています。
バックエンド、つまりウェブサイトのコンテンツ管理の機能そのものもモジュールとして実装されています。
イベント(カレンダー)のモジュールです。
コメントの機能を提供するモジュールです。Contao(TYPOlight) 2.8からイベント、ニュース、FAQそれぞれにあった機能がまとめられて作成されました。
FAQ、よくある質問(と答え)の機能を提供するモジュールです。
フロントエンドのアクセス、つまりウェブサイトの公開機能そのものがモジュールとして提供されています。
リスティングモジュールはデータベースの特定のテーブルの一覧を表示するモジュールです。
ニュースモジュールは、サイトの新着情報やブログのようなコンテンツを提供するモジュールです。
ニュースレターモジュールは、メールマガジンのようにニュースレターを購読者に一斉配信やニュースレターのアーカイブを表示する機能を提供するモジュールです。
登録(レジストレーション)モジュールは、フロントエンドでウェブサイトの訪問者が自分のユーザー登録、つまりメンバーの登録や管理を行う機能を提供するモジュールです。
リポジトリ基本モジュールは、機能拡張のリポジトリのクライアントとサーバーで共通な基盤を提供するモジュールです。
リポジトリクライアントモジュールは、機能拡張のリポジトリを利用するクライアントの機能を提供するモジュールです。
RSSリーダーモジュールは、他のサイトのRSSやAtomのフィードを読んで表示する機能を提供するモジュールです。
テンプレートエディターモジュールは、テンプレートファイルの編集機能を提供するモジュールです。