希望从moodle自定义页面下载(PDF,CSV)数据。是否有API函数,需要调用从custompage下载数据。自定义页面有一个表格数据。
自定义页
$table = new html_table();
$table->head = array('course', 'users');
$table->attributes['class'] = 'table';
$sql = "SELECT c.fullname, count(cc.userid) AS 'completed'
FROM {course_completions} cc JOIN {course} ON c.id = cc.course WHERE cc.timestarted > 0
GROUP BY c.fullname ";
$mds = $DB->get_records_sql($sql);
foreach ($mds as $m) {
$table->data[] = new html_table_row(array(implode(array($m->fullname. $m->lastname)),
$m->completed ));
}
echo html_writer::table($table);
对于一个基本的PDF
require_once($CFG->libdir . '/pdflib.php');
$doc = new pdf();
$doc->AddPage();
$output = html_writer::table($table);
$doc->writeHTML($output);
$doc->Output('filename.pdf');
在Moodle源码中有一个更好的例子--libtestsotherpdflibtestpage.php。
对于CSV
require_once($CFG->libdir . '/csvlib.class.php');
csv_export_writer::download_array('filename.csv, $mds);
以上两点都应该是在打印任何东西到屏幕之前,所以它们被下载。
另外,在你的SQL中,你应该使用 GROUP BY c.id
因为课程全名不是唯一的。