[Site] ランキング (表示)

タグ :

作成サイト「koweboo」についてまとめるシリーズです。
今回は前記事に続いてランキングの「表示処理」についてまとめます。

作成サイト内の関連箇所 — 「ランキング

ランキングの表示

音声ランキングは過去記事「音声機能 その3」の一覧表示を使います。
ほとんど同じで、順位だけ追加します。

<div class="voice_ranks index<?php echo $genre_id;?>">

	// ... ジャンル部 省略 ...

<h2><?php echo __('Voice List'); ?></h2>
<?php $rank = 1; ?>
<?php foreach ($voices as $voice): ?>
<p>順位:<?php echo $rank; ?></p>
<p>お題:<?php echo $voice['Request']['title']; ?></p>
<p>タイトル:<?php
	echo $this->Html->link(
		$voice['Voice']['title'],array(
			'action' => 'view',
			$voice['Voice']['id']
		)
	);
?></p>
<p>投稿者:<?php
	echo $this->Html->link(
		$user[$voice['Voice']['user_id']]['name'], array(
			'controller' => 'users',
			'action' => 'view',
			$voice['Voice']['user_id']
		)
	);
?></p>
<audio src=<?php echo VOICE_FILEPATH.$voice['Voice']['filename'].VOICE_FILEEXT; ?> preload="auto"></audio>

	// ... コメント部 省略 ...

<?php $rank++; ?>
<?php endforeach; ?>

お題ランキングも過去記事「お題投稿機能 その2」の一覧表示を使います。
ほとんど同じで、順位だけ追加します。

	// ... ページネータ部 省略 ...

<?php $rank = 1; ?>
<?php foreach ($requests as $request): ?>
<tr>
<td><?php echo $rank; ?></td>
<td><?php echo h($request['Request']['id']); ?></td>
<td>
<?php
	echo $this->Html->link(
		$user[$request['User']['id']]['name'],
		array(
			'controller' => 'users',
			'action' => 'view',
			$request['User']['id']
		)
	);
?>
</td>
<td>
<?php
	echo $this->Html->link(
		$request['Request']['title'],
		array(
			'controller' => 'requests',
			'action' => 'view',
			$request['Request']['id']
		)
	);
?>
</td>
<?php $rank++; ?>
<?php endforeach; ?>

お題職人ランキングも同じ様に作成します。

<table cellpadding="0" cellspacing="0">
<tr>
<th><?php echo __('Rank'); ?></th>
<th><?php echo __('User'); ?></th>
<th><?php echo __('Point'); ?></th>
</tr>
<?php $rank = 1; ?>
<?php foreach ($ranks as $user): ?>
<tr>
<td><?php echo $rank; ?></td>
<td>
<a href=<?php
	echo PAGE_USERPAGE.$user['user_id'];
?>><img src=<?php
	echo IMG_PATH_USER.$user['img'].IMG_STR_S.$user['type'];
?> /></a>
<?php
	echo $this->Html->link(
		$user['user'],
		array(
			'controller' => 'users',
			'action' => 'view',
			$user['user_id']
		)
	);
?>
</td>
<td><?php echo $user['point']; ?>pt</td>
</tr>
<?php $rank++; ?>
<?php endforeach; ?>
</table>

順位追加は、ctp ファイル内で変数「$rank」を設けてループ内インクリメントで表示させます。
本来ならコントローラ側で順位も用意してやるのがカッコいいやり方だと思いますが、このやり方が一番簡単です。

次はデータ取得処理についてですが、次回に。。。

Share

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

Comment

コメントを残す

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

  • Twitter
  • Facebook
  • Google Plus
  • RSS Feed