У меня есть таблица SQL с сообщениями и датой их публикации.
Давайте назовем эти сообщения M1, M2, ... M99.M1 - самое новое сообщение.
Я хочу отобразить их (я использую Yii 1.1 framework) в виде WhatsApp: самое новое сообщение M1 находится внизу, а над ним - второе новейшее сообщение M2 и т. Д..
Но я хочу отобразить их по блокам с фиксированным номером сообщения (скажем, 5), и я буду загружать предыдущее сообщение, если потребуется.Поэтому при загрузке страницы вы должны увидеть:
(кнопка «Загрузить еще»)
M5
M4
M3
M2
M1
При однократном нажатии на кнопку «загрузить больше» у меня будет сверху вниз:
(кнопка «загрузить еще») / M10 / M9 / M8 / M7 /M6 / M5 / M4 / M3 / M2 / M1
Я пытаюсь добиться этого с помощью ActiveDataProvider на Yii, однако для этого мне нужно отсортировать данные следующим образом:
M5, M4, M3, M2, M1, M10, M9, M8, M7, M6, M15, M14, M13, M12, M11 и т. Д.
Я не уверен, как добиться такой сортировки, даже используя лимит и смещение.
Я был бы рад, если бы кто-нибудь мог помочь мне в этом, спасибо!
edit: Вот ActiveDataProvider, который я использую
public function getMessagesDataProvider()
{
$dataProvider = new CActiveDataProvider(Message::model(), array(
'criteria' => array(
'condition' => 't.inquiry_thread_id = :threadId',
'params' => array(':threadId' => $this->id),
'order' => 't.created_at DESC',
),
'pagination' => array('pageSize' => 5, 'pageVar' => 'page'),
));
$dataProvider->getData();
}
А на мой взгляд
<?php $this->widget('\common\widgets\ListView', array(
'dataProvider' => $messagesDataProvider,
'pager' => array(
'class' => '\common\widgets\LoadMorePager',
'canBeReloadedByAjax' => true,
),
'template' => '{pager}{items}',
'itemView' => '/message/_messageItem',
'itemsCssClass' => 'pager-container',
'pagerCssClass' => 'inquiry-message-button',
)); ?>