【问题标题】:Discussion pagination in elgg 1.8 is not working properlyelgg 1.8 中的讨论分页无法正常工作
【发布时间】:2014-12-11 14:14:57
【问题描述】:

我们有一个使用 elgg 创建的网站,并且我们有 elgg 的讨论部分,其中分页无法正常工作。

列出所有讨论列表时,分页工作正常,从最新到最旧

但是主题内的分页(讨论之一)回复太多,并且它们被分页(上一个,下一个)分隔,它显示的回复不正确:

在第一页我们有:

如您所见,它是按从最新到最旧的顺序排列的:17 天前,然后是 21 天前。

但是当你转到下一页时:

它在页面内按从最新到最旧的顺序排列,但页面应该交换。

我该如何解决?

谢谢转发

【问题讨论】:

    标签: elgg


    【解决方案1】:

    它工作正常。讨论按线程上的最后操作排序。您可能首先拥有较旧的线程,因为它具有所有线程的最新响应。

    要更改它,请查看mod/groups/lib/discussion 中的discussion_handle_list_page 函数以及它如何使用order_by 参数。您需要覆盖此页面并删除 order_by 以使用默认排序,即实体的创建时间(在他的情况下为线程)。您可以通过点击“路由”插件挂钩或覆盖整个讨论页面处理程序来实现。

    这就是为什么不直接将其更改为内联:http://learn.elgg.org/en/1.9/guides/dont-modify-core.html

    【讨论】:

    • 我已经将函数discussion_handle_list_page() 改变了order_by 为desc 和asc,即使我从desc 改变为asc,我也完全没有改变。而且我还注意到限制参数设置为20,但在页面上显示为25。它可能在其他地方控制吗?不过这真的很奇怪。
    • 你能否举个例子,链接,阅读如何做“路由”插件挂钩和覆盖页面处理程序?
    【解决方案2】:

    我终于找到了所有分页库和注释视图。

    问题是在列出对 replies.php 文件的讨论的回复时,该文件在 /views/default/discussion 页面底部有两个 jquery 函数颠倒顺序。

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

    我已将 iter 更改为从 0 开始并转到 arr.lenthg。

    不过还没完呢,为了能第一时间得到最新的回复,我已经加到了

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

    );

    这一行:

    'order_by'=> 'time_created desc'
    

    然后我的回复顺序正确:从最新到最旧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-14
      • 2014-09-21
      • 2013-08-22
      • 2012-09-25
      • 2016-07-29
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多