共通パーツ(element)
「マイホーム」的なページにするために、members/indexを自IDでviewを見た状態に変更。
旧indexはlistview*1に変更、
自身のIDでviewを閲覧した時は、indexにredirect。
viewとindexのviewはほぼ一緒になるため「レイアウト」機能を使って共通化。
app/controllers/members_controller.php
* $this->Model->readの第一引数は、特定の項目だけ取得したい場合は 例えば name とか入力。null=all。
function index() { $this->set('member', $this->Member->read(null, $this->MemberAuth->user("id"))); } function view($id = null) { if (!$id) { $this->Session->setFlash(__('Invalid Member.', true)); $this->redirect(array('action'=>'listview')); } if ($id == $this->MemberAuth->user("id")) { $this->redirect(array('action'=>'index')); } $member = $this->Member->read(null, $id); if (!$member['Member']) { $this->Session->setFlash(__('Invalid Member.', true)); $this->redirect(array('action'=>'listview')); } $this->set('member', $member); } function listview() { $this->Member->recursive = 0; $this->set('members', $this->paginate()); }
app/views/members/index.ctp
<?php echo $this->renderElement('home', array( 'member' => $member, 'owner' => true, ) );
view.ctpでは owner => false。
app/views/elements/home.thtmlに旧view.ctpを入れ、不要な箇所をけずったり、viewでは表示したくない箇所はifでくくったり。