CakePHP で小さな画像ギャラリーを構築したいと考えています。そのため、画像のサムネイルを含む 3x3 のテーブルを表示するインデックス ビューを作成しました。ページネーションとソートのために、次のコードを追加しました。
ImagesController.php:
var $paginate = array(
'limit' => 9,
'order' => array('Image.id' => 'desc')
);
public function index() {
$data = $this->paginate('Image');
$this->set('images', $data);
}
index.ctp:
<?php echo $this->Paginator->sort('id', 'Id'); ?> |
<?php echo $this->Paginator->sort('name', 'Title'); ?>
...
<?php echo $this->Paginator->prev(' << Previous', null, null, array('class' => 'disabled')); ?>
<?php echo $this->Paginator->numbers(array('first' => 2, 'last' => 2)); ?>
<?php echo $this->Paginator->next('Next >> ', null, null, array('class' => 'disabled')); ?>
これはうまくいきます。これで、サムネイルをクリックすると、'view' という名前のビュー (例: localhost/gallery/images/view/1) を使用して単一の画像が表示されます。インデックス ビューと同様に、このビューにもページネーションが必要です。ここでは、id が 1 の画像が現在選択されており、現在選択されている画像に関連する n 個の前後の画像に移動できます。さらに、画像は、インデックス ビューの画像と同じ基準 (名前など) で並べ替える必要があります。この問題を CakePHP で解決するエレガントな方法はありますか?