第1弾/抽象MOS クラスコンポーネント

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

はじめに

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

NAME

抽象MOS クラスコンポーネント - com_kingyoya_mosabstract

HISTORY

Version 1.0.0

 公開

動作環境

  • Joomla 1.0.x

目的

  • PRIMARY KEY はid でauto_increment だ
  • 登録日時、登録ユーザID、更新日時、更新ユーザIDは必須でしょ。ついでに勝手に登録して欲しいよね。
  • UNIX TIMESTAMP じゃないの!?
  • store で新規レコード作った後にいちいち insertid なんて取ってらんないよ

NOTICE

 mosKingyoyaAbstract は引数間違えたり値とり損ねたりするとE_USER_WARNING にエラー吐きます。

USAGE

global $mainframe;
require_once $mainframe->getPath('class', 'com_kingyoya_mosabstract');

class mosMyComponent extends mosKingyoyaAbstract {

	var $hoge;
	var $fuga;
	var $piyo;

	function mosMyComponent(&$db) {
		parent::mosKingyoyaAbstract('#__mytable', $db);
	}
}

global $database;
$row = new mosMyComponent($database);
$row->hoge = 'hoge';
$row->fuga = 'fuga';
$row->piyo = 'piyo';
$result = $row->store();
if (!$result) {
	// error
}
$created = $row->created(); // int timestamp
echo "Created: ", date('Y-m-d H:i:s', $created), "\n";
$created_by = $row->created_by(); // object mosUser
echo "Created by {$created_by->name}\n";

$id = $row->id(); // int row id
$result = $row->load($id);
if (!$result) {
	// error
}
$row->hoge = 'hoge';
$row->fuga = 'fuga';
$row->piyo = 'piyo';
$result = $row->store();
if (!$result) {
	// error
}
$modified = $row->modified(); // int timestamp
echo "Modified: ", date('Y-m-d H:i:s', $modified), "\n";
$modified_by = $row->modified_by(); // object mosUser
echo "Modified by {$modified_by->name}\n";

FILES

kingyoya_mosabstract.xml

 コンポーネント設定XML

kingyoya_mosabstract.class.php

 抽象MOS クラススクリプト

admin.kingyoya_mosabstract.php

 管理画面出力スクリプト