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

カラムフォーマッタ | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

カラムフォーマッタ

カラムフォーマッタ – カラムフォーマッタで何ができるのか?

説明

カラムフォーマッタメソッドを使用すると、よくある要望にうまく対応することができます。 グリッドのセルの出力方法をカスタマイズして、例えばフォーム要素へのリンクにすることなどが可能です。 これを行うには、単に "コールバック" 関数を指定するだけです。 この関数は、表示される文字列を返します。

カラムフォーマッタの使用法

<?php
require_once 'Structures/DataGrid.php';

$dg =& new Structures_DataGrid();
$result $dg->bind('http://pear.php.net/feeds/pkg_structures_datagrid.rss');
if (
PEAR::isError($result)) {
    die(
'RSS 情報の取得中にエラーが発生しました。');
}

$dg->addColumn(
    new 
Structures_DataGrid_Column('Release''title''title',
                                   
nullnull'printLink')
);
$dg->addColumn(
    new 
Structures_DataGrid_Column('Description''description',
                                   
'description'nullnull,
                                   
'printDesc', array('length' => 15))
);
$dg->addColumn(
    new 
Structures_DataGrid_Column('Date''dc:date''dc:date')
);
$dg->render();

function 
printLink($params$args = array())
{
    
extract($params);
    
extract($args);

    return 
'<a href="' $record['link'] . '">' $record['title'] . '</a>';
}

function 
printDesc($params$args = array())
{
    
extract($params);
    
extract($args);

    if (
strlen($record[$fieldName]) > $length) {
        return 
nl2br(substr($record[$fieldName], 0$length)) . '...';
    } else {
        return 
nl2br($record[$fieldName]);
    }
}
?>

各コールバック関数は、すくなくともひとつのパラメータ (上の例では $params ) を受け取れるようにしなければなりません。 このパラメータには、さまざまな情報が含まれます。

  • 'record': 現在のレコード全体を含む配列。

  • 'fieldName': 現在のカラムのフィールド名。

  • 'columnName': 現在のカラムのカラム名。

  • 'orderBy': 現在のカラムの引数 'orderBy' の値。

  • 'attribs': 現在のカラムの属性。

  • 'currRow': 現在の行番号。

  • 'currCol': 現在の列番号。

オプションの二番目のパラメータ (上の例では $args ) を使用して、コールバック関数に追加情報を渡すことができます。 上の例では、description 列のコールバック関数 printDesc() がコールされた際に、長さ情報を含む配列を渡しています。この二番目のパラメータは、 カラムのコンストラクタで指定したときにだけ渡されることに注意しましょう。 したがって、コールバック関数のパラメータリストでは $args = array() を使用することをお勧めします。

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

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