Пагинация по дате

Добрый вечер.

Возникла такая идея - сделать пагинацию по дате:

  1. чтобы в пагинаторе вместо номеров страниц (1,2,3,4…) были дни/месяцы/года (26.01.10, 27.01.10 и т.д.)

  2. кликаем на дату в пагинаторе и получаем все записи за указанную дату

поле create_time имеет тип datetime в БД

Два вопроса:

  1. Можно ли это реализовать через CDbCriteria и CPagination (CLinkPager) ?

  2. вот так посчитал количество страниц:




$criteria = new CDbCriteria();

$criteria->select = new CDbExpression('extract(day from create_time) as "day"');

$criteria->distinct = true;

$criteria->group='day'; 

$count=Post::model()->count($criteria);



Но как сделать чтобы на странице выводились записи за эту дату? Как задать модель?

  1. Как сделать чтобы в пагинаторе страницы были не вида 1,2,3,… а имели вид даты 26.01.10, 27.01.10 и т.д.

Как это сделать в CLinkPager ?

Спасибо!

А потом захочется сделать обычную пагинацию внутри пагинации по дате? Или пагинацию по хэшу пароля пользователя :lol:

Не надо пугать посетителей такими новинками, лучше сделайте обычный виджет-календарик.

Никак. Нужно будет очень тщательно покопаться и в коде CLinkPager, и CPagination.