我的公司已经要求我创建一个引擎,它将移动我们系统中的所有文件(材料主要是PDF文件)在Moodle课程下。
我已将所有文件复制到moodledata目录下的文件夹下,并且我有一张excel表,其中包含所有文件名和路径以及相关课程(在Moodle下创建的课程)。
我需要的是如何使用File API将某个文件链接到某个课程,以便在Moodle课程下显示该文件。
任何意见都表示赞赏。
答案 0 :(得分:3)
对此没有一个简单,快速的答案,因为Moodle File API只是问题的一半 - 另一半是添加了一个'资源的实例'模块到课程,对于每个文件,因此用户可以通过某种方式访问您添加的文件。
对于每个文件,您需要:
如果不为你写出所有代码,我就无法详细说明。
答案 1 :(得分:1)
嘿,这对我来说仍然有用!
@davos
如果不为你写出所有代码,我就无法详细说明。
真的,现在?你是在StackOverflow上发布的,而不是在你大学的留言板上:(
我得到的是:
$pdf_output = $dompdf->output();
$fs = get_file_storage();
$context = context_course::instance($course->id);
// Prepare file record object
$fileinfo = array(
'contextid' => $context->id, // ID of context
'component' => 'mod_mymod', // usually = table name
'filearea' => 'mymod', // usually = table name
'itemid' => $id, // usually = ID of row in table
'filepath' => '/', // any path beginning and ending in /
'filename' => 'test.pdf'); // any filename
$file = $fs->get_file($fileinfo['contextid'], $fileinfo['component'], $fileinfo['filearea'],
$fileinfo['itemid'], $fileinfo['filepath'], $fileinfo['filename']);
// Delete it if it exists
if ($file) {
$file->delete();
}
$file = $fs->create_file_from_string($fileinfo, $pdf_output);
$file = $fs->get_file($fileinfo['contextid'], $fileinfo['component'], $fileinfo['filearea'],
$fileinfo['itemid'], $fileinfo['filepath'], $fileinfo['filename']);
// Read contents
if ($file) {
$contents = $file->get_content();
var_dump($contents);
}
我可以阅读内容并将其转储到浏览器中。 我无法弄清楚的是如何使用“add_moduleinfo()”将我的pdf存储在课程中。
功能签名是:
function add_moduleinfo($moduleinfo, $course, $mform = null) {
唉,没有解释$ moduleinfo应该包含什么,因为moodle没有记录。
任何提示都非常受欢迎。