データコンテナ配列の内部構造

データコンテナ配列は6つのセクションから構成されています。最初のセクションは、他のテーブルとの関係のような一般的なテーブルの構成を保持しています。 第2と第3のセクションは、レコードを一覧表示する方法とユーザーに実行を許可する操作を定義しています。第4のセクションは「パレット」と呼ばれるフォームの入力項目の異なるグループを定義し、最後の2つのセクションは入力項目の詳細を記述しています。

テーブルの構成(cofig)

テーブルの構成(config)はテーブル自身、すなわちデータを保持するのに使用するデータコンテナのタイプや、他のテーブルとの関係を記述します。また、バージョン管理を有効にしたり、データを編集や削除を行ったときに子のレコードに起きることを定義できます。

キー説明
label &$GLOBALS['TL_LANG']
文字列
ラベルはページやファイルツリーで使用し、一般に言語配列の参照を含んでいます。
ptable 親のテーブル
文字列

親のテーブルに関連した名前です。(table.pid = ptable.id)

ctable 子のテーブル
配列
子のテーブルに関連した名前です。(table.id = ctable.pid)
dataContainer データコンテナ
文字列
Table (データベースのテーブル)、File (ローカルの設定ファイル)、Folder (ファイルマネージャー)のいずれかです。
validFileTypes ファイルの種類
文字列
有効なファイルの拡張子をコンマで区切ったリストです。(ファイルツリーにだけ適用)
uploadScript ファイル名
文字列
system/configフォルダー内のFancyUploadスクリプトの(拡張子を含めない)名前です。
closed true / false
論理値
trueの場合、テーブルにさらにレコードを追加できません。
notEditable true / false
論理値
trueの場合、テーブルは編集できません。
switchToEdit true / false
ronr
新しいレコードを追加するときに「保存して編集」のボタンを有効にします。(並べ替えモード4だけ)
enableVersioning true / false
論理値
trueの場合、Contaoは新しいバージョンを作成するときに古いバージョンを保存します。
doNotCopyRecords true / false
論理値
trueの場合、Contaoは親のテーブルのレコードを複製するとき、現在のテーブルのレコードを複製しません。
doNotDeleteRecords true / false
論理値
trueの場合、Contaoは親のテーブルのレコードを削除するとき、現在のテーブルのレコードを削除しません。
onload_callback コールバック関数
配列
データコンテナを初期化したときに、データコンテナオブジェクトを引数にしてカスタム関数を呼び出します。
onsubmit_callback コールバック関数
配列
レコードを更新した後で、データコンテナオブジェクトを引数にしてカスタム関数を呼び出します。
ondelete_callback コールバック関数
配列
レコードを削除したときに、データコンテナオブジェクトを引数にしてカスタム関数を呼び出します。
oncut_callback コールバック関数
配列
レコードを移動したときに、データコンテナオブジェクトを引数にしてカスタム関数を呼び出します。バージョン2.8.2で追加しました。
oncopy_callback コールバック関数
配列
レコードを複製したときに、挿入したIDとデータコンテナオブジェクトを引数にしてカスタム関数を呼び出します。バージョン2.8.2で追加しました。

レコードの一覧

リストの配列はレコードを一覧表示する方法を定義します。Contaoのコアのエンジンは3つの異なるビューリストビューペアレントビューツリービューをサポートしています。フィルダーやデフォルトの並べ替え順序といった、様々な並べ替えのオプションの設定や、カスタムラベルの追加ができます。

sorting

キー説明
mode 並べ替えモード
整数
0 レコードを並べ替えない
1 レコードを一定のフィールドで並べ替え
2 レコードを切り替えできるフィールドで並べ替え
3 レコードを親のテーブルで並べ替え
4 親のレコードの子のレコードを表示 (スタイルシートモジュールを参照)
5 レコードをツリー表示 (サイト構造を参照)
6 子のレコードをツリー構造の中に表示 (アーティクルモジュールを参照)
flag 並べ替えのフラッグ
整数
1 最初の1文字で昇順に並べ替え
2 最初の1文字で降順に並べ替え
3 最初の2文字で渉儒に並べ替え
4 最初の2文字で降順に並べ替え
5 日で昇順に並べ替え
6 日で降順に並べ替え
7 月で昇順に並べ替え
8 月で降順に並べ替え
9 年で昇順に並べ替え
10 年で降順に並べ替え
11 昇順に並べ替え
12 降順に並べ替え
panelLayout パネルの配置
文字列
search レコードを検索するメニューを表示
sort レコードを並べ替えるメニューを表示
filter レコードをフィルターするメニューを表示
limit レコードを限定するメニューを表示

オプションはsort,filter;search,limitのように、コンマ(=スペース)とセミコロン(=改行)で区切ります。
fields デフォルトの並べ替え値
配列
表の並べ替えに使用する1つ、または複数のフィールドです。
headerFields ヘッダーフィールド
配列
ヘッダー要素に表示する1つ、または複数のフィールドです。(並べ替えモード4だけ)
icon ツリーのアイコン
文字列
ツリーの最上部に表示するアイコンのパスです。(並べ替えモード5と6だけ)
root ルートノード
配列
rootのレコードのID (ページマウント)です。この値は、通常rootのノード自身が管理します。
filter 問い合わせフィルター
配列
例えば array('status=?', 'active')といった、カスタマイズ用のフィルターを追加できます。バージョン2.9.0で追加しました。
disableGrouping true / false
論理値
リストビューとペアレントビューで、グループのヘッダーを無効にできます。
paste_button_callback コールバック関数
配列
デフォルトの貼り付けボタンを表示する代わりに、この関数を呼び出します。array('Class', 'Method')として(クラスとメソッドの配列で)指定してください。
child_record_callback コールバック関数
配列
子の要素を表示するために、この関数を呼び出します。(並べ替えモード4だけ)array('Class', 'Method')として(クラスとメソッドの配列で)指定してください。
child_record_class CSSのクラス
文字列
ペアレントビューの要素にCSSのクラスを追加できます。

label

キー説明
fields フィールド
配列
リストに表示する1つ、または複数のフィールドです。
format 書式文字列
文字列
フィールドの書式を整えるのに使用するHTMLの文字列です。(例: <strong>%s</strong>)
maxCharacters 文字数
整数
ラベルの文字の最大数です。
group_callback コールバック関数
配列
デフォルトのグループのヘッダーの関数を使用する代わりにカスタム関数を呼び出します。
label_callback コールバック関数
配列
デフォルトのラベルの関数を使用する代わりにカスタム関数を呼び出します。

操作

操作の配列は2つのセクションに分かれています。全体的な操作は(複数を変更のような)一度にすべてのレコードに関係し、通常の操作は(レコードの変更や削除といった)特定のレコードだけに関係します。

全体的なオペレーション(global_operations)

キー説明
label &$GLOBALS['TL_LANG']
文字列
ボタンのラベルです。通常はグローバルな言語配列の参照です。
href URLの断片
文字列
URLの断片はボタンがクリックされたときに追加するURIの文字列(例えば、act=editAll)です。
class CSSのクラス
文字列
ボタンのCSSのクラス属性です。
attributes 追加の属性
文字列
イベントハンドラーやスタイルの定義といった、追加の属性です。
button_callback コールバック関数
配列
デフォルトのボタンの関数を使用する代わりにカスタム関数を呼び出します。array('Class', 'Method')として(クラスとメソッドの配列で)指定してください。

通常のオペレーション(operations)

キー説明
label &$GLOBALS['TL_LANG']
文字列
ボタンのラベルです。通常はグローバルな言語配列の参照です。
href URLの断片
文字列
URLの断片はボタンがクリックされたときに追加するURIの文字列(例えば、act=edit)です。
icon アイコン
文字列
アイコンのパスとファイル名です。
attributes 追加の属性
文字列
イベントハンドラーやスタイルの定義といった、追加の属性です。
button_callback コールバック関数
配列
デフォルトのボタンの関数を使用する代わりにカスタム関数を呼び出します。array('Class', 'Method')として(クラスとメソッドの配列で)指定してください。

fields

fieldsの配列は表のカラムを定義します。これらの設定に応じて、読み込むフォームのフィールドの種類、特定のフィールドにユーザーのアクセスを許可しているか、フィールドを並べ替えやフィルターの条件にしようできるかどうかをContaoのコアのエンジンは決定します。

キー説明
label &$GLOBALS['TL_LANG']
文字列
フィールドのラベルです。通常はグローバルな言語配列の参照です。
default デフォルト値
混合値
新しいレコードを作成するときのデフォルトの値です。
exclude true / false
論理値
trueの場合、このフィールドを非管理者からは除外します。ユーザーグループモジュール(の除外されたフィールドの許可)で有効にできます。
search true / false
論理値
trueの場合、このフィールドを検索のメニューに含めます。(並べ替えのレコード → "panelLayout"を参照)
sorting true / false
論理値
trueの場合、このフィールドを並べ替えのメニューに含めます。(並べ替えのレコード → "panelLayout"を参照)
filter true / false
論理値
trueの場合、このフィールドをフィルターのメニューに含めます。(並べ替えのレコード → "panelLayout"を参照)
flag 並べ替えモード
整数
1 最初の1文字で昇順に並べ替え
2 最初の1文字で降順に並べ替え
3 最初のX文字で昇順に並べ替え(lengthを参照)
4 最初のX文字で降順に並べ替え(lengthを参照)
5 日で昇順に並べ替え
6 日で降順に並べ替え
7 月で昇順に並べ替え
8 月で降順に並べ替え
9 年で昇順に並べ替え
10 年で降順に並べ替え
11 昇順に並べ替え
12 降順に並べ替え
length 並べ替えの長さ
整数
並べ替えのグループの作成に使用する文字の数を指定できます。(flagの3と4)バージョン2.5.3から含まれています。
inputType フィールドの種類
文字列
text テキストフィールド
password パスワードフィールド
textarea テキストエリア
select ドロップダウンメニュー
checkbox チェックボックス
radio ラジオボタン
radioTable 画像とラジオボタンのある表
inputUnit 小さな単位のドロップダウンメニューのあるテキストフィールド
trbl 小さな単位のドロップダウンメニューのある4つのテキストフィールド
chmod CHMOD(権限変更)の表
pageTree ページツリー
fileTree ファイルツリー
tableWizard テーブルウィザード
listWizard リストウィザード
optionWizard オプションウィザード
moduleWizard モジュールウィザード
checkboxWizard チェックボックスウィザード
options オプション
配列
ドロップダウンメニューやラジオボタンメニューのオプションです。
options_callback コールバック関数
配列
オプションの配列を返すコールバック関数です。array('Class', 'Method')として(クラスとメソッドの配列で)指定してください。
foreignKey table.field
文字列
データベースのテーブルからオプションを取得します。キーとしてIDと値に指定したフィールドを返します。
reference &$GLOBALS['TL_LANG']
文字列
オプションのラベルを保持する配列です。通常はグローバルな言語配列の参照です。
explanation &$GLOBALS['TL_LANG']
文字列
説明を保持する配列です。通常はグローバルな言語配列の参照です。
input_field_callback コールバック関数
配列
デフォルトの入力フィールドの処理を使用する代わりに、データコンテナオブジェクトとラベルを引数にカスタム関数を実行します。
eval フィールドの構成
配列
様々な構成のオプションです。次の項を参照してください。
wizard コールバック関数
配列
カスタム関数を呼び出して、その戻り値を入力フィールドに加えます。array('Class', 'Method')として(クラスとメソッドの配列で)指定してください。
load_callback コールバック関数
配列
フィールドを読み込んだときに、これらの関数を呼び出します。array('Class', 'Method')として各コールバック関数を指定してください。フィールドの値とデータコンテナを引数として渡します。フィールド値を戻り値とします。
save_callback コールバック関数
配列
フィールドを保存するときに、これらの関数を呼び出します。array('Class', 'Method')として各コールバック関数を指定してください。フィールドの値とデータコンテナを引数として渡します。フィールド値を戻り値とします。エラーメッセージを表示するには例外を投げます。

評価(eval)

評価の配列(eval)は特定のフィールドの詳細を構成します。例えば、必須のフィールドを作成、日付ピッカーの追加、テキストエリアの行と列の指定といったことができます。また、フィールドの外観を変更したり、データの暗号化を有効にするといったこともできます。各フィールドは正規表現に照合して検証できます。

キー説明
helpwizard true / false
論理値
trueの場合、ヘルプウィザードのアイコンをフィールドラベルの次に表示します。
mandatory true / false
論理値
tureの場合、フィールドは空にできません。
maxlength 最大の長さ
整数
現在のフィールドに許可する最大の文字数です。
minlength 最小の長さ
整数
入力しなければならない最小の文字数です。
fallback true / false
論理値
trueの場合、このフィールドはテーブルに対して一度だけ割り当てできます。
rgxp 正規表現
文字列
digit 数字だけを許可
alpha 英字だけを許可
alnum 英数字だけを許可
prcnt 0から100の間の数値を許可
extnd #&()/<=>の文字を禁止
date 有効な日付を要求
time 有効な時刻を要求
datim 有効な日付と時刻を要求
email 有効な電子メールアドレスを要求
friendly 電子メールアドレスの有効な "氏名" の形式を要求
url 有効なURLを要求
phone 有効な電話番号を要求
cols
整数
列の数です。(テキストエリアのフィールドだけ)
rows
整数
行の数です。(テキストエリアのフィールドだけ)
wrap ワードラップの処理
文字列
off ワードラップをオフ
soft ソフトワードラップ(表示だけ)
hard ハードワードラップ(表示と値)
multiple true / false
論理値
入力フィールドを複数値を可能にします。テキストフィールド、選択メニュー、ラジオボタン、チェックボックスが対象となります。チェックボックスウィザードには必要です。
size サイズ
整数
複数の選択メニューや入力フィールドの数の大きさです。
style スタイル属性
文字列
スタイル属性です。(例: border: 2px)
rte リッチテキストエディタのファイル
文字列
tinyMCE config/tinyMCE.phpを使用
tinyFlash config/tinyFlash.phpを使用

同様に独自の構成ファイルも追加できます。
submitOnChange true / false
論理値
trueの場合、フィールドの値を変更したときにフォームを提出します。
nospace true / false
論理値
trueの場合、空白文字を禁止します。
allowHtml true / false
論理値
trueの場合、現在のフィールドはHTMLの入力を受け入れます。
preserveTags true / false
論理値
trueの場合、HTMLタグはそのまま残して一切削除しません。
decodeEntities true / false
論理値
trueの場合、HTMLのエンティティをデコードします。allowHTMLがtrueの場合はすべてのHTMLエンティティをデコードすることに注意してください。
doNotSaveEmpty true / false
論理値
trueの場合、フィールドが空のときは保存しません。
alwaysSave true / false
論理値
trueの場合、値が変更されていない場合でもフィールドを常に保存します。(バージョン2.7RC1から利用可能)これはload_callbackと併せると便利でしょう。
spaceToUnderscore true / false
論理値
trueの場合、すべての空白文字をアンダースコアに置き換えます。
unique true / false
論理値
trueの場合、既に存在する場合はフィールドの値を保存できません。
encrypt true / false
論理値
trueの場合、フィールドの値を暗号化して保存します。
trailingSlash true / false
論理値
trueの場合、フィールドの値の末尾にスラッシュを追加します。falseの場合、フィールドの値の末尾にあるスラッシュを削除します。
files true / false
論理値
trueの場合、ファイルとフォルダーを表示します。falseの場合、フォルダーだけを表示します。ファイルツリーが対象となります。
filesOnly true / false
論理値
フォルダーの隣のラジオボタンやチェックボックスを削除します。ファイルツリーが対象となります。
extensions ファイルの拡張子
文字列
ファイルツリーを特定の(コンマで区切ったリストの)ファイルの種類に制限します。ファイルツリーが対象となります。
path パス
文字列
ファイルツリーのルートディレクトリーの指定します。ファイルツリーが対象となります。
fieldType 入力フィールドの種類
文字列
checkbox 複数の選択が可能
radio 1つだけ選択が可能

ファイルツリーとページツリーが対象となります。
includeBlankOption true / false
論理値
trueの場合、オプションの配列に空白(非選択)のオプションを追加します。ドロップダウンメニューだけが対象です。
blankOptionLabel ラベル
文字列
空白のオプションのラベルです。(デフォルトは - )
findInSet true / false
論理値
ラベルではなく、実際のオプションの値で並べ替えます。(バージョン2.7.RC1から利用可能)
datepicker 日付ピッカー
文字列
日付ピッカーの構成文字列です。
feEditable true / false
論理値
trueの場合、現在のフィールドはフロントエンドで編集できます。tl_memberのテーブルだけが対象です。
feGroup グループ名
文字列
personal 個人データ
address 住所の詳細
contact 連絡先の詳細
login ログインの詳細

tl_memberのテーブルだけが対象です。独自のグループも定義できます。
feViewable true / false
論理値
trueの場合、メンバーリストモジュールで現在のフィールドを表示します。(バージョン2.6.2)
doNotCopy true / false
論理値
trueの場合、レコードを複製するときに現在のフィールドを複製しません。
hideInput true / false
論理値
trueの場合、フィールドの値を隠します。(ページのソースを表示すると、見えるままです!)
doNotShow true / false
論理値
trueの場合、「複数を変更」や「詳細の表示」のモードで現在のフィールドを表示しません。
isBoolean true / false
論理値
特定のフィールドが論理値であると示します。
disabled true / false
論理値
フィールドを無効にします。(フィールドの種類によってはサポートしていません。)
readonly true / false
論理値
フィールドを読み込み専用とします。(フィールドの種類によってはサポートしていません。)

コメントを追加

Kamil Kuzminskiによるコメント| 2010年6月23日

'extensions'のキーはファイルツリーだけではなく、アップロードのフォームも対象となります。
例えば、フロントエンドで新しいファイルをアップロードしたい場合、次のようにフィールドの構成を設定しなければなりません:

'enclosures' => array
(
  'name'      => 'enclosures',
  'label'     => 'Attach files',
  'inputType' => 'upload',
  'eval'      => array('extensions'=>$GLOBALS['TL_CONFIG']['uploadTypes'])
)

Peco Stanoevによるコメント | 2010年10月13日

これによって、Contaoをもっとも強力なCMSエンジンの1つとしています。

Kamil Kuzminskiによるコメント| 2011年6月4日

こちらにあるのとcontao.org/callbacks.html(オリジナル)同様の、onrestore_callbackが抜けています。

Kamil Kuzminskiによるコメント| 2011年9月9日

示された入力の種類(訳注: inputType)の他に、以下も用意されています: textStorekeyValueWizardimageSizetimePeriod