将分页应用于MOODLE网站

时间:2014-03-20 04:55:59

标签: php pagination moodle

我们正在尝试在我们的MOODLE网站的课程类别列表页面上应用分页概念,我们已经取得了成功。但是在显示它的同时,每页都显示相同的课程。我们可以设置每页应显示多少主题/类别,并显示相同数量的类别。但是每个页面都显示相同的主题。如果有人在他们的MOODLE网站上申请了分页,请提供帮助。

2 个答案:

答案 0 :(得分:2)

没有通用的方法可以将分页添加到Moodle中的不同页面 - 有一个通用的' $ OUTPUT-> paging_bar'函数,它将为分页栏生成输出,但是由您自己的代码决定如何处理页面'然后将参数传递给PHP脚本。

通常代码看起来像这样:

$page = optional_param('page', 0, PARAM_INT);
$perpage = optional_param('perpage', 30, PARAM_INT);
...
$count = $DB->count_records_sql('Some SQL query to count the number of results');
$start = $page * $perpage;
if ($start > $count) {
    $page = 0;
    $start = 0;
}
$results = $DB->get_records_sql('Some SQL query to get the results', array(parameters for query), $start, $perpage); // Start at result '$start' and return '$perpage' results.

或者,如果无法做到这一点,您可以获得所有结果,然后使用array_slice:

$page = optional_param('page', 0, PARAM_INT);
$perpage = optional_param('perpage', 30, PARAM_INT);
...
$results = $DB->get_records_sql('Some SQL query to get the results', array(params for query));
$start = $page * $perpage;
if ($start > count($results)) {
    $page = 0;
    $start = 0;
}
$results = array_slice($results, $start, $perpage, true);

答案 1 :(得分:0)

某个类别中的课程列表已经分页。

所以我猜你的意思是类别列表?您可以使用带分页的灵活表

http://docs.moodle.org/dev/lib/tablelib.php

您还可以通过课程显示课程的一个部分 - >编辑设置 - >课程表格 - >课程布局 - >每页显示一个部分。

但是如果你想展示一些部分 - 而不仅仅是一部分 - 那么你可能需要看一下设计课程格式

http://docs.moodle.org/dev/Course_formats