ページ送り機能の実装

自宅サーバでの音楽再生履歴DBを管理するに当たって、間違って登録されたデータは今はインタフェースを作っていないので、pgAdminIIIでテーブルを開いて手動で削除している。
いつまでもそれではまずいので、Last.fmやmixi musicを参考にページを作ってみることにした。
データの一覧は簡単に得られるから、問題はページ送りの問題だけになる。
PEAR::Pagerというモジュールを使えば簡単にできるらしいのでいろいろなページを参考にしながら構築。トップページは簡単に表示できた。
しかし、次のページに移動できない。Zend Frameworkで作っているから、URLはファイル名ではなく、ディレクトリで切れたような形式となっている。
しかし、デフォルトでは最後に「index.php」が付加されてしまうようで、こんなファイルはないからエラーになってしまうのだ。で、参考になったのがこのページ。
[Zend Framework での Amazon ItemSearch with PEAR Pager](http://dev.convexstyle.net/2007/07/zend_framework_amazon_itemsear.html)
まさに、Zend FrameworkとPEAR::Pagerの組み合わせでございますよ。
ここからパクって次の三行を書き、問題は解決した。Pagerモジュールのオプションである。
“path”=>”/zend/controller/songlist”,
‘fileName’=>’?id=’ . $req->getQuery(‘id’) . ‘&pageID=%d’,
‘append’=>FALSE,
‘httpMethod’=>’GET’,
4行あるが、最初の1行は別のサイトで先にパクっておいたもの。fileNameのパラメータに、idのパラメータを追加しているのは、これによってDBからレコードを引くからIDがないといけないからである。
一人でしか使わないのにユーザIDを内部で使っていて、ユーザを増やすことも念頭に置いているのである。
既存のサービス以上のものが提供できるとは思えないので実際にはユーザは増えないだろうが、そういう実装にしてしまうのがSEの悲しいサガなのである。
ちなみに、一人しか使わないのに、今後ログインの機能も作る予定がある。

コメント