Ethnaの導入(その4)アプリケーションオブジェクトの利用その2
実行画面

以下、ポイントと思われる部分の説明と各スクリプトです。プロジェクト全体は、こちらからダウンロードしてご覧下さい。
アプリケーションマネージャでの処理
前回は、追加処理のみを実装しましたが、今回は一覧、更新、削除と実装しました。一覧では、Ethna_AppManagerクラスのgetObjectPropListメソッドを使用して取得しています。(※詳細は、マニュアルのこちらを参照して下さい。)その他の処理は、Ethna_AppObjectクラスadd、update、removeの各メソッドを使用しています。以下はそのスクリプトです。
ビュークラスでの処理
実際の一覧の取得は、ビュークラスのpreforward()で行っています。以下がそのスクリプトです。
<?php
/**
* List.php
*
* @author {$author}
* @package Appobj
* @version $Id: skel.view.php,v 1.8 2006/11/06 14:31:24 cocoitiban Exp $
*/
/**
* listビューの実装
*
* @author {$author}
* @access public
* @package Appobj
*/
class Appobj_View_List extends Appobj_ViewClass
{
/**
* 遷移前処理
*
* @access public
*/
function preforward()
{
//一覧の取得、設定
$memberManager =& $this->backend->getManager('member');
$this->af->setApp('members', $memberManager->getList());
}
}
?>
以下は、一覧表示のテンプレートです。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
<h2>Member - List</h2><hr>
<table border="0"
{if count($errors)}
<ul>{foreach from=$errors item=error}
<li>{$error}</li>
{/foreach}</ul>
{/if}>
</table>
<dl>
{foreach from=$app.members item=member}
<dt>ID:{$member.memid}
<a href="?action_edit=true&memid={$member.memid}">Edit</a>
<a href="?action_delete=true&memid={$member.memid}">Delete</a></dt>
<dd>
Name:{$member.name}<br>
Email:{$member.email}<br>
</dd><br>
{/foreach}
<br><a href="?action_input=true">Add new data</a>
</dl>
</body>
</html>
その他の処理は、各アクションからアプリケーションマネージャを経由して行っています。お手数ですが、こちらからダウンロードしてご覧下さい。(※入力チェック等の細かい処理は実装出来ていませんのでご了承下さい。)
関連リンク
Ethna
データベースアクセス(アプリケーションオブジェクトを使わない場合)
Webプログラミング関連記事
Posted by nishida at 17:52:26


