6月 07
22.会員一覧と会員検索
会員管理をやります。
最初に一覧(indexアクション)の整形をしておきます。いまのままだと見づらいので。
admin_index.ctp を開いて、不要な列を削除します。
今は、
<tr>
<th><?php echo $paginator->sort('id');?></th>
<th><?php echo $paginator->sort('email');?></th>
<th><?php echo $paginator->sort('password');?></th>
<th><?php echo $paginator->sort('type_id');?></th>
<th><?php echo $paginator->sort('birthday');?></th>
<th><?php echo $paginator->sort('img1');?></th>
<th><?php echo $paginator->sort('img2');?></th>
<th><?php echo $paginator->sort('created');?></th>
<th><?php echo $paginator->sort('modified');?></th>
<th class="actions"><?php __('Actions');?></th>
</tr>
こうなっていますが、password img1 img2 modified あたりはなくてもよいと思います。
(クライアント次第ですが)
対応する td の方も削除しておきます。
と、一見して、登録日(created)がDBの日付データそのままで出力されていて見づらいです。
ということで、 members_controller.php の helper にさらに ‘Time’ を追加します。
var $helpers = array('Html', 'Form', 'Time','Javascript');
で、ビューに戻り、誕生日と登録日は、
こうなっているのを
<td> <?php echo $member['Member']['birthday']; ?> </td> <td> <?php echo $member['Member']['created']; ?> </td>
こうします。
<td> <?php echo $time->format($format = 'Y/m/d', $member['Member']['birthday']); ?> </td> <td> <?php echo $time->format($format = 'Y/m/d', $member['Member']['created']); ?> </td>
ついでに、
<div class="actions"> ... </div>
の中のアクションリストは不要なので丸ごと削除しておきます。
最後に paginate の設定を入れておきます。
members_controller.php の上の方に、
var $paginate = array( 'limit' => 15, 'order' => array( 'Member.id' => 'desc' ), );
を入れます。15件で改ページ、デフォルトの並び順を会員のID降順にします。
引き続き、会員検索のページの準備をします。
一覧の admin_index.ctp にそのまま検索フォームをつけてしまうというのもありかとは思いますが、とりあえず今回は別ビュー、別アクションにします。
admin_index.ctp を別の名前で保存で admin_serch.ctp を作ります。
で、フォーム開始を
<?php echo $form->create(array("action" => "search", "type" => "post")) ?>
として、
<table>
<tr>
<th>入会日</th>
<td>
<?php echo $form->year("from", '2009','2010'); ?>年
<?php echo $form->month("from",null,array('monthNames'=>false)); ?>月
<?php echo $form->day("from",null); ?>日
~
<?php echo $form->year("to", '2009','2010'); ?>年
<?php echo $form->month("to",null,array('monthNames'=>false)); ?>月
<?php echo $form->day("to",null); ?>日
</td>
</tr>
<tr>
<th>メールアドレス</th>
<td>
<?php echo $form->text("email"); ?>
</td>
</tr>
<tr>
<th>種別</th>
<td>
<?php echo $form->select("type_id", $types); ?>
</td>
</tr>
<tr>
<th>好きな物</th>
<td>
<?php echo $form->input('favorites', array('multiple'=>'checkbox', 'label' => false)); ?>
</td>
</tr>
</table>
<?php echo $form->end(' 検索 '); ?>
このような検索フォーム部分を追加します。
さらにその下に
<?php $paginator->options(array('url' => $searchword )); ?>
peginator のオプションを入れておきます。
これは peginator に検索キーワードを渡すためのものです。
