Source for file htf_tag_table.phl
Documentation is available at htf_tag_table.phl
* htmlのtableタグ情報を保有・生成するクラス
* @package HtmlTemplateFramework
* @subpackage htmltagbase
* @author Yamauchi Shogo <htf@as-prj.com>
* @version $Id: htf_tag_table.phl ,v 1.0 $
require_once("htf_com_define.inc"); //共通定数
require_once("htf_com_func.inc"); //共通関数
require_once("htf_tag_element.phl"); //エレメントクラス
* htmlのtableタグ情報を保有・生成するクラス
* htmlのtableタグを保有し、保有している内容でhtmlのtableタグ記述を生成します。
* @author Yamauchi Shogo <htf@as-prj.com>
* 使用するtableタグ配下のエリアを指定する。指定値は、使用するエリアのコード値をサマリした値を設定する。エリアコード値は以下。
var $use_area; //タグ出力するエリア指定(thead/tbody/tfoot)
* theadタグのコンテンツ配列番号。生成時に設定される(更新不可)。
* tfootタグのコンテンツ配列番号。生成時に設定される(更新不可)。
* tbodyタグのコンテンツ配列番号。生成時に設定される(更新不可)。
* 引数の大文字小文字出力指定、エリアコードを参照し、htf_tag_tableを生成します。
* タグ出力エリアコードの指定値については、$use_area内容を参照。
* @param int $strelement_case 大文字・小文字出力(デフォルトは小文字出力)
* @param int $use_area_code タグ出力エリアコード(THEAD/TBODY/TFOOTの使用・デフォルトはTBODYのみ)
$use_area_code= HTF_TAG_TABLE_USE_TBODY) {
$this->case = $strelement_case;
//使用エリア(thead/tbody/tfoot)の設定
* 指定エリア(thead/tbody/tfoot)に保持している行数を返します。
* タグ出力エリアコードの指定値については、$use_area内容を参照。
* @param int $use_area_code タグ出力エリアコード(THEAD/TBODY/TFOOT・デフォルトはTBODYのみ)
* @return int 成功時:保持している行数 失敗時:-1
function rows($use_area_code= HTF_TAG_TABLE_USE_TBODY) {
$retnum = count($thead->contents);
$retnum += count($tbody->contents);
$retnum += count($tbody->contents);
* 指定エリア(thead/tbody/tfoot)の指定行番号に保持しているカラム数を返します。
* エリアが複数指定の場合は最初に合致したエリアをサーチします。
* タグ出力エリアコードの指定値については、$use_area内容を参照。
* @param int $rownum 取得する行番号(未指定の場合は0)
* @param int $use_area_code タグ出力エリアコード(THEAD/TBODY/TFOOT・デフォルトはTBODYのみ)
* @return int 成功時:保持している行数 失敗時:-1
function columns($rownum= 0, $use_area_code= HTF_TAG_TABLE_USE_TBODY) {
if ($this->check_rownum($rownum, $thead->contents)) {
return count($thead->contents[$rownum]->contents);
if ($this->check_rownum($rownum, $tbody->contents)) {
return count($tbody->contents[$rownum]->contents);
if ($this->check_rownum($rownum, $tfoot->contents)) {
return count($tfoot->contents[$rownum]->contents);
* 引数のtrオブジェクトを、theadに追加します。
* @param htf_tag_tr $tr 追加するtrタグオブジェクト
* @return int 成功時:追加後のthead内要素数 失敗時:-1
* 引数のtrオブジェクトを、tbodyに追加します。
* @param htf_tag_tr $tr 追加するtrタグオブジェクト
* @return int 成功時:追加後のtbody内要素数 失敗時:-1
* 引数のtrオブジェクトを、tfootに追加します。
* @param htf_tag_tr $tr 追加するtrタグオブジェクト
* @return int 成功時:追加後のtfoot要素数 失敗時:-1
* thead内の指定番号行に、引数のタグオブジェクト(th/td)を追加します。
* @param int $rownum 設定するelementオブジェクトの配列番号
* @param mixed $thtd 追加するthまたはtdのタグオブジェクト
* @return int 成功時:追加後のelement要素数 失敗時:-1
if (!$this->check_rownum($rownum, $this->contents[$this->th_ix]->contents)) {
$ret = $this->contents[$this->th_ix]->contents[$rownum]->add_content($thtd);
* tbody内の指定番号行に、引数のタグオブジェクト(th/td)を追加します。
* @param int $rownum 設定するelementオブジェクトの配列番号
* @param mixed $thtd 追加するthまたはtdのタグオブジェクト
* @return int 成功時:追加後のelement要素数 失敗時:-1
if (!$this->check_rownum($rownum, $this->contents[$this->tb_ix]->contents)) {
$ret = $this->contents[$this->tb_ix]->contents[$rownum]->add_content($thtd);
* tfoot内の指定番号行に、引数のタグオブジェクト(th/td)を追加します。
* @param int $rownum 設定するelementオブジェクトの配列番号
* @param mixed $thtd 追加するthまたはtdタグオブジェクト
* @return int 成功時:追加後のelement要素数 失敗時:-1
if (!$this->check_rownum($rownum, $this->contents[$this->tf_ix]->contents)) {
$ret = $this->contents[$this->tf_ix]->contents[$rownum]->add_content($thtd);
* @param int $inttype エリア指定
* @param int $intusetype 判別するエリア
* @return bool TRUE:使用する FALSE:使用しない
function judge_use_area($inttype, $intusetype) {
if (($inttype&$intusetype) == $intusetype) {
* 指定行番号が正しいか・存在するかどうかチェックします。
* @param int $rownum 指定行番号
* @param array $arr 判別する配列
* @return bool TRUE:OK FALSE:NG
function check_rownum($rownum, $arr) {
if ( 0 <= $rownum && $rownum <= count($arr)- 1) {
|