PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

Structures_DataGrid_Renderer_Flexy | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

Structures_DataGrid_Renderer_Flexy

Structures_DataGrid_Renderer_Flexy – Flexy レンダリングドライバ

注意

このドライバは 実験的な もので、まだ正式にはリリースされていません。 CVS 版 でしか使用できません。

サポートする操作モード

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

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

オプション

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

このドライバのオプション
オプション 説明 デフォルト値
assocColumns bool カラムヘッダを連想配列として作成するかどうか。 true
buildFooter bool フッタを作成するかどうか。 true
buildHeader bool ヘッダを作成するかどうか。 true
columnAttributes array カラムのセルの属性。 array(fieldName => array(attribute => value, ...) ...) 形式の配列となります。 このオプションは、XML/HTML ベースのドライバでのみ使用します。 array()
columnNames array カラムヘッダで使用するカラム名のセット。 array()
convertEntities bool html エンティティを変換するかどうか。 htmlspecialchars() をコールします。 true
defaultCellValue string 空のセルに表示するデフォルトの値。 null
defaultColumnValues array カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 array()
encoding string 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 'ISO-8859-1'
evenRowAttribute string 偶数行に使用する css クラス。 'even'
excludeVars array 作成される HTTP クエリから取り除く変数。 array()
extraVars array 作成される HTTP クエリに追加される変数。 array()
fillWithEmptyRows bool すべてのページで行数が同じになるようにするかどうか。 false
formatter array カラムヘッダの formatter メソッドで使用するコールバックの配列。 array($this,'defaultHeaderFormatter')
hideColumnLinks array デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。
numberAlign bool 数値を右詰めにするかどうか。 true
oddRowAttribute string 奇数行に使用する css クラス。 'odd'
onMove string ユーザがページを移動したりデータをソートしたりしたときの onClick/onSubmit イベント発生時にコールする Javascript 関数の名前。 この関数は、オブジェクトを引数として受け取ります。 このオブジェクトの形式は { page: <page>, sort: [{field: <field>, direction: <direction>}, ...], data: <user_data> } のようになります。このオプションを指定しても、 href 属性は削除されないことに注意しましょう。 href を無効にしたい場合 (AJAX など……) は、ハンドラ関数内で false を返すようにしなければなりません。 null
onMoveData string onMove に渡す引数のオブジェクトの、"data" に渡すデータ。JSON 形式のシリアル化は行わず、 そのままの形で "data" 属性に渡されます。 クォートやスラッシュなどを追加する処理は、自分で行ってください。 ''
pagerOptions array Pager レンダラに送信する独自のオプション。
resultsFormat string 結果を表示する際に使用する sprintf の書式文字列。 'You have %s results in %s pages'
selfPath string 並べ替えおよびページ処理に使用するパス。 $_SERVER['PHP_SELF']
sortingResetsPaging bool 並べ替えの HTTP クエリで、ページをリセットするかどうか。 true

全般的な注意

このドライバは render() メソッドをサポートしていません。 コンテナを現在の Flexy インスタンスにアタッチすることのみが可能となっています。 レンダラに対するオプションは setOptions() メソッドで渡さなければなりません。

Flexy の出力のバッファリングには、DataGrid の getOutput() メソッドを使用します。

このドライバは、次のような Flexy テンプレート変数を代入します。 - columnSet: カラムのラベルおよび並べ替えリンクの配列 - columnHeader: カラムのラベルおよび並べ替えリンクのオブジェクト - recordSet: レコードの値を表す連想配列 - numberedSet: レコードの値を表す数値添字配列 - currentPage: 現在のページ (1 から数えます) - recordLimit: 1 ページあたりの行数 - pagesNum: ページ数 - columnsNum: カラム数 - recordsNum: 現在のページのレコード数 - totalRecordsNum: レコードの総数 - firstRecord: 最初のレコードの番号 (1 から数えます) - lastRecord: 最後のレコードの番号 (1 から数えます)

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

動的なテンプレートの例です。並べ替えおよびページ処理を含みます。

<!-- カスタム関数 getPaging でページ移動リンクを表示します -->
{getPaging():h}

<p>Showing records {firstRecord} to {lastRecord}
from {totalRecordsNum}, page {currentPage} of {pagesNum}</p>

<table cellspacing="0">
   <!-- ヘッダを作成します -->
   <tr>
       <th>
           {foreach:columnSet,column}
               <td><a href="{column[link]:h}">{column[label]:h}</a></td>
           {end:}
       </th>
   </tr>

   <!-- 本体を作成します -->
   <tr class="{getRowCSS()}" flexy:foreach="numberedSet,k,row">
       {foreach:row,field}
           <td>{field}</td>
       {end:}
   </tr>
</table>

静的なテンプレートの例です。並べ替えおよびページ処理を含みます。

<table cellspacing="0">
   <!-- ヘッダを作成します -->
   <tr>
       <th>
           <td>
               <a href="{columnHeader.name[link]:h}">{columnHeader.field1[label]:h}</a>
           </td>
           <td>
              <a href="{columnHeader.surname[link]:h}">{columnHeader.field2[label]:h}</a>
           </td>
       </th>
   </tr>

   <!-- 本体を作成します -->
   <tr class="{getRowCSS()}" flexy:foreach="recordSet,k,row">
       <td>{row[field1]}</td>
       <td>{row[field2]}</td>
   </tr>
</table>

require_once 'HTML/Template/Flexy.php';
require_once 'Structures/DataGrid.php';
require_once 'Structures/DataGrid/Renderer/Flexy.php';

$tpl = new HTML_Template_Flexy($config['HTML_Template_Flexy']);
$dg =& new Structures_DataGrid($_GET['setPerPage'] ? $_GET['setPerPage']
                                                   : 10,$_GET['page']
                                                   ? $_GET['page'] : 1);
$dg->bind($dataObject);
$renderer = new Structures_DataGrid_Renderer_Flexy();
$renderer->setContainer($tpl);
$renderer->setOptions($config['Structures_DataGrid']);
$dg->attachRenderer($renderer);
$this->tpl->compile($template);
echo $dg->getOutput();

忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「Structures_DataGrid_Renderer_Flexy」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | Structures_DataGrid_Renderer_Flexy」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: