第4弾/管理画面HTML生成 Mambot

 金魚屋開発支援シリーズ第4弾。

 手抜き屋のための管理画面HTML 生成 Mambot。

はじめに

  • 以下あらゆる著作物の利用に関して著作者は一切の責任を負いません。
  • 以下あらゆる著作物の著作権は金魚屋ですが、とりたてて利用に制限はありません。
  • 利用にはHTML とPHP について多少の知識が必要です。
  • ツッコミ大歓迎。
  • 細かいところは解説しません。
  • 設定とか間違えるとエラー吐きます。

NAME

管理画面HTML生成 Mambot - KingyoyaAdminHTML

HISTORY

2008-04-08 Version 1.0.0

 公開

動作環境

  • Joomla 1.0.x

目的

  • 一覧とかフォームとか、作るHTML は大体一緒。

NOTICE

  • 引数間違えたり値とり損ねたりするとE_USER_WARNING にエラー吐きます。
  • form 生成はまだ未実装。

USAGE

// mambot 呼び出し
$_MAMBOT->loadBotGroup('Kingyoya');

// 一般的なヘッダを表示
mosKingyoyaAdminHTML::showHeader('一覧表示', 'edit');

// 一般的なフォームヘッダを表示
mosKingyoyaAdminHTML::showFormHeader($option); // $option = 'mycomponent';

/** @var mosKingyoyaAdminHTMLList 一覧生成クラスオブジェクト */
$listhtml = mosKingyoyaAdminHTML::factory('list', $option); // $option = 'mycomponent';
$listhtml->pageNav( $pageNav );
// フィールドを定義
$listhtml->appendRowNumberField('#', '5'); // pagenav から Row Number を表示
$listhtml->appendCheckboxField('5'); // pagenav から cids のcheckbox を表示
$listhtml->appendField('id', 'ID', null, '5');
$listhtml->appendField('field1', 'Field 1', null, '20%');
$listhtml->appendField('field2', 'Field 2', 'form');
$listhtml->appendField('field3', 'Field 3');
// 行を追加(1)
$row = $listhtml->createRow();
$row->id('100'); // データのID
$row->field('filed1', 'Field1 value1'); // field1 の表示値
$row->field('filed2', 'Field2 value1'); // field2 の表示値
$row->field('filed3', 'Field3<br />value1'); // field3 の表示値
$listhtml->appendRow($row);
// 行を追加(2)
$row = $listhtml->createRow('101'); // データのID も合わせて指定
$row->field('filed1', 'Field1 value2'); // field1 の表示値
$row->field('filed2', 'Field2 value2'); // field2 の表示値
$row->field('filed3', 'Field3<br />value2'); // field3 の表示値
$listhtml->appendRow($row);
// 行を追加(3)
$row = $listhtml->appendRow('102'); // データのID も合わせて指定
$row->field('filed1', 'Field1 value3'); // field1 の表示値
$row->field('filed2', 'Field2 value3'); // field2 の表示値
$row->field('filed3', 'Field3<br />value3'); // field3 の表示値
// 表示
$listhtml->show();

// 一般的なフォームフッタを表示
mosKingyoyaAdminHTML::showFormFooter();
表示HTML
<!-- showHeader() -->
<table class="adminheading">
	<tr>
		<th class="edit">一覧表示</th>
	</tr>
</table>

<!-- showFormHeader() -->
<?php mosCommonHTML::loadOverlib(); ?>

<form action="index2.php" method="post" name="adminForm">
	<input type="hidden" name="option" value="mycomponent" />
	<input type="hidden" name="task" value="" />
	<input type="hidden" name="id" value="" />
	<input type="hidden" name="cid" value="" />
	<input type="hidden" name="boxchecked" value="" />

	<!-- $listhtml->show() -->
<table class="adminList">
	<tr>
		<th width="5">#</th>
		<th width="5"><input type="checkbox" name="toggle" value="" onclick="checkAll(3);" /></th>
		<th width="5">ID</th>
		<th width="20%">Field 1</th>
		<th>Field 2</th>
		<th>Field 3</th>
	</tr>
	<tr>
		<td>1</td>
		<td align="center"><input type="checkbox" id="cb0" name="cid[]" value="101" onclick="isChecked(this.checked);" /></td>
		<td>Field1 value1</td>
		<td><a href="index.php?option=mycomponent&task=form&id=101">Field2 value2</a></td>
		<td>Field3<br />value1</td>
	</tr>
	<tr>
		<td>2</td>
		<td align="center"><input type="checkbox" id="cb1" name="cid[]" value="102" onclick="isChecked(this.checked);" /></td>
		<td>Field1 value2</td>
		<td><a href="index.php?option=mycomponent&task=form&id=102">Field2 value2</a></td>
		<td>Field3<br />value2</td>
	</tr>
	<tr>
		<td>3</td>
		<td align="center"><input type="checkbox" id="cb2" name="cid[]" value="103" onclick="isChecked(this.checked);" /></td>
		<td>Field1 value3</td>
		<td><a href="index.php?option=mycomponent&task=form&id=102">Field2 value3</a></td>
		<td>Field3<br />value3</td>
	</tr>
</table>

<?php echo $pageNav->getListFooter(); ?>

<!-- showFormFooter() -->
</form>

mosKingyoyaAdminHTML 概説

static factory()
object mosKingyoyaAdminHTML::factory(string type, string option)

HTML 生成クラスのインスタンスを返す。

list
mosKingyoyaAdminHTMLList
form
mosKingyoyaAdminHTMLForm
static showHeader()
void mosKingyoyaAdminHTML::showHeader(string title [, string class ] )

一般的なヘッダを表示する。

static showFormHeader()
void mosKingyoyaAdminHTML::showHeader(string option )

一般的なフォームのヘッダを表示する。

static showFormFooter()
void mosKingyoyaAdminHTML::showFormFooter()

一般的なフォームのフッタを表示する。

mosKingyoyaAdminHTMLList 概説

mosKingyoyaAdminHTMLList()
mosKingyoyaDBTable(string option)

コンストラク

pageNav()
mosPageNav pageNav( [mosPageNav pageNav] )

pageNav オブジェクトの設定、または設定されているpageNav オブジェクトの取得。

appendField()
void appendField( string name, string title [, string task [, string width ] ] )

列定義の追加。

name
行で値を指定するための識別子。
title
ヘッダ行で表示される列名。
task
各行の表示でtask へのリンクを作成する。
width
列の幅。
appendRowNumberField()
void appendRowNumberField( string title [, string width ] )

行番号を表示する列を追加する。
利用にはpageNav を設定する必要がある。

appendCheckboxField()
void appendCheckboxField( [ string width ] )

行指定するためのチェックボックスを表示する列を追加する。
利用にはpageNav を設定する必要がある。
ヘッダ行では全選択のチェックボックスが表示される。

createRow()
mosKingyoyaAdminHTMLListRow createRow( [ mixed id ] )

行オブジェクトを作成する。
id はtask でのリンクやcheckbox に利用される。

appendRow()
mosKingyoyaAdminHTMLListRow appendRow( mixed id )

次の行を追加して、そのオブジェクトのリファレンスを返す。
id はtask でのリンクやcheckbox に利用される。

mosKingyoyaAdminHTMLListRow appendRow( mosKingyoyaAdminHTMLListRow row )

row を次の行に追加する。

mosKingyoyaAdminHTMLListRow 概説

mosKingyoyaAdminHTMLList のための行オブジェクト

id()
mixed id( [ mixed id ] )

task でのリンクやcheckbox に利用されるID を設定する。または設定されているID を返す。

field()
void field( string name [, string value ])

name で設定されている列の値に value を設定する。またはname に設定されている値を返す。

FILES

KingyoyaAdminHTML.xml

 Mambot 設定XML

KingyoyaAdminHTML.php

 Mambot 本体スクリプト