2014-12-11 2 views
0

У нас есть сайт, созданный с использованием elgg, и у нас есть часть обсуждения elgg, где разбиение на страницы не работает должным образом.Обсуждение pagination в elgg 1.8 не работает должным образом

При перечислении весь список дискуссий, пагинация работает правильно, от позднего к старейшей

Но пагинацией внутри темы (одна из дискуссии), где ответы слишком много, и они отделены друг от пагинацией (предыдущий, следующий), она показывает ответы неправильно:

на первой странице мы имеем: The first page

Как вы можете видеть, что заказана от позднего к старейшим: 17 дней назад, а затем приходит 21 дней назад.

Но когда вы идете на следующую страницу: Page 2

Он заказанный внутри страницы от поздней к старому, но страницы должны быть заменены.

Как это исправить?

Thanks forward

ответ

0

я нашел, наконец, пройдя через все библиотеки постраничной и виды аннотаций.

Проблема заключается в том, перечисляя ответы для обсуждения на replies.php файл, который в /просмотров/по умолчанию/обсуждение есть две функции JQuery в нижней части страницы, в обратном порядке.

function reverse(arr){ 
    var newArr = []; 
    for(var iter = arr.length -1; iter >= 0; iter--){ 
     newArr.push(arr[iter]) 
    } 

    return newArr; 
} 

У меня есть итератор, чтобы начать с 0 и перейти к arr.lenthg.

Но это еще не все, для того, чтобы получить последние ответы первый, я добавил к

$options = array(
'guid' => $vars['entity']->getGUID(), 
'annotation_name' => 'group_topic_post', 

);

эта линия:

'order_by'=> 'time_created desc' 

А потом я получил мои ответы заказал правильно: от поздней к старому.

0

Он работает должным образом. Дискуссии упорядочиваются последним действием в потоке. У вас может быть более старый поток из-за того, что он имеет самую последнюю реакцию всех потоков.

Чтобы изменить его, просмотрите discussion_handle_list_page функцию в mod/groups/lib/discussion и как она использует параметр order_by. Вам необходимо переопределить эту страницу и просто удалить order_by, чтобы использовать заказ по умолчанию, который является временем создания объекта (в его случае). Вы можете сделать это, нажав на крючок плагина «маршрут» или переопределив весь обработчик страницы обсуждения.

И поэтому не просто изменить его рядный: http://learn.elgg.org/en/1.9/guides/dont-modify-core.html

+0

Я изменил функцию discussion_handle_list_page(), изменив order_by на desc и asc, я не меняюсь вообще, хотя я изменяюсь от desc до asc. И я также заметил, что предельный параметр установлен равным 20, но на странице он показывает 25. Возможно, он контролируется где-то еще? Это действительно странно. – amol01

+0

Можете ли вы привести пример, ссылки, показания к тому, как сделать «маршрут» плагина и перегружать обработчик страниц? – amol01

Смежные вопросы