Contaoの構成をカスタマイズ方法

Contaoの構成は1つの大きな配列に保持され、システム構成、データコンテナ構成、言語の構成の3つのセクションに分かれています。構成の配列は実行時に構築されて、あるページを生成するのに必要な部分だけを含んでいます。Contaoは、多数の冗長な構成ファイルを解析のために時間とメモリを無駄にするといったことはしません。

システム構成のカスタマイズ

システム構成は、様々なContaoのモジュールのconfig.phpファイルに含まれています。システム構成をカスタマイズしたい場合、変更をsystem/config/localconfig.phpファイルに適用します。こうすると次の更新で上書きされることはありません。殆どのパラメターターは設定モジュールのバックエンドで設定でき、自動的にローカルの構成ファイルに書き込まれます。このため手作業で編集する必要は殆どないでしょう。

// Disable the task center
unset($GLOBALS['BE_MOD']['profile']['tasks']);

### INSTALL TOOL START ###
$GLOBALS['TL_CONFIG']['debugMode'] = false;
$GLOBALS['TL_CONFIG']['displayErrors'] = false;

変更する内容はINSTALL TOOL STARTの行の前に書いていることを確認してください。そうしないと設定モジュールで削除されます。そして、 config.phpに設定パラメーターに保存しないでください、なぜなら更新時に上書きされる可能性があるためです!

データコンテナ構成のカスタマイズ

Contaoはデータコンテナ配列をテーブルのメタ情報の保持に使用しています。データコンテナの構成は、様々なContaoのモジュールのdcaフォルダーに保管されています。変更はsystem/config/dcaconfig.phpファイルに適用してください、次の更新で上書きされません。

// Make company a mandatory field in the members table
$GLOBALS['TL_DCA']['tl_member']['fields']['company']['eval']['mandatory'] = true;
 
// Make sure that company names consist of alphanumeric characters only
$GLOBALS['TL_DCA']['tl_member']['fields']['company']['eval']['rgxp'] = 'alnum';
 
// Allow only admins to use include content elements
if (!$this->User->isAdmin)
{
    unset($GLOBALS['TL_CTE']['includes']);
}

既に見たように、dcaconfig.phpファイルはContaoの構成の些細な修正を保存するのに良い場所です。多くの変更が必要な場合は、失うことがないように変更を独自の機能拡張にまとめることも検討した方が良いでしょう。

ラベルと翻訳のカスタマイズ

ラベルと翻訳は、様々なContaoのモジュールのlanguagesフォルダーに保管されています。各言語は、その ISO-639-1 言語コードで識別します。変更をsystem/config/langconfig.phpファイルに適用してください。すると、次の更新で上書きされることはありません。

// Change a label for all languages
$GLOBALS['TL_LANG']['MSC']['goBack'] = '«';
 
// Change a label for a particular language only
if ($GLOBALS['TL_LANGUAGE'] == 'de')
{
    $GLOBALS['TL_LANG']['tl_layout']['column'] = 'Bereich';
}
elseif ($GLOBALS['TL_LANGUAGE'] == 'fr')
{
    $GLOBALS['TL_LANG']['tl_layout']['column'] = 'Section';
}

もちろん、言語配列の変更はカスタムモジュールにまとめることができ、多数に渡る場合に推奨する方法です。