データコンテナ配列の内部構造
データコンテナ配列は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 論理値 |
フィールドを読み込み専用とします。(フィールドの種類によってはサポートしていません。) |
コメントを追加
'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)の他に、以下も用意されています: textStore、keyValueWizard、imageSize、timePeriod。
Kamil Kuzminskiによるコメント| 2010年6月23日
'extensions'のキーはファイルツリーだけではなく、アップロードのフォームも対象となります。
例えば、フロントエンドで新しいファイルをアップロードしたい場合、次のようにフィールドの構成を設定しなければなりません: