对MOODLE网站应用分页


Apply pagination to MOODLE website

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

在Moodle中没有通用的方法来为不同的页面添加分页-有一个通用的'$OUTPUT->paging_bar'函数,它将生成分页栏的输出,但这取决于您自己的代码来决定如何处理'page'参数,然后将其传递给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);

一个类别内的课程列表已被分页。

所以我猜你是指类别列表?您可以使用带有分页

的灵活表http://docs.moodle.org/dev/lib/tablelib.php

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

但是如果你想展示一些部分——而不仅仅是一个——那么你可能需要考虑设计一个课程格式

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