[Site] マイページ機能 その3

タグ :

作成サイト「koweboo」についてまとめるシリーズです。
今回はマイページ機能についてです。
前記事(データ取得)に続きまして、今回は「他ユーザーから見た表示」についてです。

作成サイト内の関連箇所 — 「マイページ

他ユーザーから見た表示

通常のサイトにおいて、マイページというのは他のユーザーからも閲覧できるものです。
ですが、他ユーザーが自分のマイページを編集できてしまったら、おかしなことになってしまいます。
そこで、他ユーザーが自分のマイページを見た時の表示を新たに設けます。

ユーザーテーブルにて Bake 生成した時のビュー(Users)内の「view.ctp」を利用しようと思います。
内容を以下のように変更します。

<div class="users view">
	<h2><?php echo $user_name.__('\'s page'); ?></h2>
	<?php if ($user_text) : ?>
		<h3><?php echo __(&quot;Introduction&quot;); ?></h3>
		<p><?php echo __($user_text); ?></p>
	<?php endif; ?>
	<?php if ($user_area) : ?>
		<h3><?php echo __(&quot;Area&quot;); ?></h3>
		<p><?php echo __($user_area); ?></p>
	<?php endif; ?>
	<?php if ($user_birth) : ?>
		<h3><?php echo __(&quot;Birthday&quot;); ?></h3>
		<p><?php echo __($user_birth); ?></p>
	<?php endif; ?>
	<?php if ($user_work) : ?>
		<h3><?php echo __(&quot;Work&quot;); ?></h3>
		<p><?php echo __($user_work); ?></p>
	<?php endif; ?>
	<?php if ($user_sex) : ?>
		<h3><?php echo __(&quot;Sex&quot;); ?></h3>
		<p><?php echo __($user_sex); ?></p>
	<?php endif; ?>
</div>

index.ctp の表示とほぼ同じ形式で表示させました。
編集画面へのリンクが無いだけです。
編集画面はURL「〜/users/edit」で移動できますが、ログインしているユーザーの編集画面となりますので、他ユーザーに編集されるということは無くなります。

データ取得に関しても、コントローラ(UsersController.php)内の「view()」へ index() と同じような処理を記述します。

public function view($id = NULL) {
	$user = $this->Auth->user();
	if($id == $user['id']) {
		$this->redirect(array('action' => 'index'));
	} else {
		$data = $this->User->find('first', array(
			'conditions' => array('User.id' => $id)
		));
		// ビューへ値渡し
		if ($data['Profile']) {
			$this->set('user_name', $data['Profile'][0]['name']);
			$this->set('user_text', $data['Profile'][0]['text']);
			$this->set('user_area', $data['Profile'][0]['area']);
			if ($data['Profile'][0]['birth'] != 0) {
				$this->set('user_birth', $data['Profile'][0]['birth']);
			} else {
				$this->set('user_birth', STR_NULL);
			}
			$this->set('user_work', $data['Profile'][0]['work']);
			$this->set('user_sex', $data['Profile'][0]['sex']);
			}
		}
	}

3行目の分岐処理にて、ログインユーザーIDとユーザーページのIDが一致していれば、自分のマイページ(index)へ遷移するようにしています。

他ユーザーのページを見てみると以下のようになります。
URL「〜/users/view/(user_id)」を表示。

site_mypage_view

マイページ機能については、まだまだ色々な機能を用意しています。
好きな音楽、趣味の記入や、専用BBS、さらにはお気に入りリストの表示などがあります。
それらは未だまとめきれていないので、後日ということで。。。

Share

  • このエントリーをはてなブックマークに追加

Comment

コメントを残す

*がついている欄は必須項目です。

  • Twitter
  • Facebook
  • Google Plus
  • RSS Feed