Structures_DataGrid_Renderer_Smarty

Structures_DataGrid_Renderer_Smarty -- Smarty レンダリングドライバ

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 62-1このドライバがサポートする操作モード

モードサポートしている?
コンテナのサポートyes
出力バッファリングyes
ダイレクトレンダリングno
ストリーミングno
オブジェクトの永続化no

オプション

このドライバは、以下のオプションを受け付けます。

表 62-2このドライバのオプション

オプション説明デフォルト値
associativebool デフォルトでは、カラムセットやレコードは数値添字配列となります。 このオプションを true に設定すると、配列のキーがフィールド名となります。 false
buildFooterboolフッタを作成するかどうか。true
buildHeaderboolヘッダを作成するかどうか。true
columnAttributesarray カラムのセルの属性。 array(fieldName => array(attribute => value, ...) ...) 形式の配列となります。 このオプションは、XML/HTML ベースのドライバでのみ使用します。 array()
convertEntitiesbool html エンティティを変換するかどうか。 htmlspecialchars() をコールします。 true
defaultCellValuestring空のセルに表示するデフォルトの値。null
defaultColumnValuesarray カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 array()
encodingstring 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 'ISO-8859-1'
excludeVarsarray作成される HTTP クエリから取り除く変数。array()
extraVarsarray作成される HTTP クエリに追加される変数。array()
fillWithEmptyRowsboolすべてのページで行数が同じになるようにするかどうか。false
hideColumnLinksarray デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 array()
numberAlignbool数値を右詰めにするかどうか。true
onMovestring ユーザがページを移動したりデータをソートしたりしたときの onclick/onsubmit イベント発生時にコールする Javascript 関数の名前。 この関数は、オブジェクトを引数として受け取ります。 このオブジェクトの形式は { page: <page>, sort: [{field: <field>, direction: <direction>}, ...], data: <user_data> } のようになります。このオプションを指定しても、 href 属性は削除されないことに注意しましょう。 href を無効にしたい場合 (AJAX など……) は、ハンドラ関数内で false を返すようにしなければなりません。 null
onMoveDatastring onMove に渡す引数のオブジェクトの、"data" に渡すデータ。JSON 形式のシリアル化は行わず、 そのままの形で "data" 属性に渡されます。 クォートやスラッシュなどを追加する処理は、自分で行ってください。 ''
selfPathstring並べ替えおよびページ処理に使用するパス。$_SERVER['PHP_SELF']
sortingResetsPagingbool並べ替えの HTTP クエリで、ページをリセットするかどうか。true
varPrefixstring このドライバが割り当てる Smarty 変数や関数用の接頭辞。 Structure_DataGrid::setRequestPrefix() と組み合わせて使用することにより、 ひとつのページに複数のグリッドを表示できるようになります。 ''

全般的な注意

このドライバを使用するには、 http://smarty.php.net で入手できる Smarty テンプレートが必要です。

このドライバは render() メソッドをサポートしていません。

fill() で Smarty オブジェクトを代入します。 これは、変数を代入して Smarty 関数 {getPaging} を登録します。 Smarty オブジェクトを設定したあとに、あなたが自分で Smarty::display() をコールします。

あるいは、getOutput() を使用するとすべての変数を PHP の配列として取得できます。 これを使用して、お好みの方法で Smarty インスタンスに変数を設定することもできます。

このドライバは、次の Smarty 変数を代入します。
- $columnSet:       カラム設定の配列。
                    構造は次のとおり。
                         array (
                             0 => array (
                                 'name'       => フィールド名,
                                 'label'      => カラムのラベル,
                                 'link'       => 並べ替え用のリンク,
                                 'attributes' => 属性文字列,
                                 'direction'  => 'ASC'、'DESC' あるいは '',
                                 'onclick'    => onMove 関数
                             ),
                             ...
                         )
- $recordSet:       レコードの値の配列。
- $currentPage:     現在のページ (最初のページは 1)。
- $nextPage:        次のページ。
- $previousPage:    前のページ。
- $recordLimit:     ページ単位の行数。
- $pagesNum:        ページ数。
- $columnsNum:      カラム数。
- $recordsNum:      現在のページのレコード数。
- $totalRecordsNum: 総レコード数。
- $firstRecord:     最初のレコード番号 (1 から数え始める)。
- $lastRecord:      最後のレコード番号 (1 から数え始める)。
- $currentSort:     カラム名および並べ替えの方向の配列。
- $datagrid:        {getPaging} に渡す参照。

このドライバは、getPaging という名前の Smarty カスタム関数を登録します。 これは Smarty テンプレート内で {getPaging} としてコール可能で、 ページ処理用のリンクを表示します。この関数は、 Structures_DataGrid_Renderer_Pager の pagerOptions と同じ形式のオプションをパラメータとして受け付けます。

{getPaging} には、オプションのパラメータ "datagrid" を渡すことができます。これは $datagrid で指定します。 これを使用すると任意のデータグリッドに関するページ処理をすることができます (ひとつのページに複数のグリッドを配置する際に便利です)。

オブジェクトの記録 : このドライバは、渡されたオブジェクトのレコードを記録します。 つまり、データソースから渡されるレコードが連想配列ではなくオブジェクトだった場合、 そのプロパティやメソッドを Smarty テンプレートから直接利用できるようになります。 たとえば {$recordSet[col]->getSomeInformation()} のようにします。