如何通过Web Service获取Moodle课程的页面HTML内容



我想通过Moodle Web服务获得Moodle课程中页面资源的所有HTML内容。文档中缺少示例,我通读过的讨论线程似乎没有解决这个看似基本的操作。

获取页面资源HTML内容的正确Web服务功能是什么?

mod_page_get_pages_by_courses函数返回给定课程(如果提供(或用户可以访问的所有课程(如果courseids为空(的信息加HTML内容

以下是对Web服务的一般调用,以检索特定课程的所有页面信息,假设您正确设置了Moodle Web服务:

https://<your-moodle-url>/webservice/rest/server.php?wstoken=<your-token>&moodlewsrestformat=json&wsfunction=mod_page_get_pages_by_courses&courseids[0]=<your-course-id>

以下是帮助我弄清楚的文档中的缩写信息:

mod_page_get_pages_by_courses

返回所提供课程列表中的页面列表,如果未提供列表,则将返回用户可以查看的所有页面。

参数

courseids(默认为"Array(("(-阵列的球场ID

响应

注意content条目,它是一个包含页面内容的HTML字符串。

object {
pages list of ( 
object {
id int   //Module id
coursemodule int   //Course module id
course int   //Course id
name string   //Page name
intro string   //Summary
introformat int  Default to "1" //intro format (1 = HTML, 0 = MOODLE, 2 = PLAIN or 4 = MARKDOWN)
introfiles   //Files in the introduction text
list of ( 
//File.
object {
filename string  Optional //File name.
filepath string  Optional //File path.
filesize int  Optional //File size.
fileurl string  Optional //Downloadable file url.
timemodified int  Optional //Time modified.
mimetype string  Optional //File mime type.
isexternalfile int  Optional //Whether is an external file.
repositorytype string  Optional //The repository type for external files.
} 
)content string   //Page content
contentformat int  Default to "1" //content format (1 = HTML, 0 = MOODLE, 2 = PLAIN or 4 = MARKDOWN)
contentfiles   //Files in the content
list of ( 
//File.
object {
filename string  Optional //File name.
filepath string  Optional //File path.
filesize int  Optional //File size.
fileurl string  Optional //Downloadable file url.
timemodified int  Optional //Time modified.
mimetype string  Optional //File mime type.
isexternalfile int  Optional //Whether is an external file.
repositorytype string  Optional //The repository type for external files.
} 
)legacyfiles int   //Legacy files flag
legacyfileslast int   //Legacy files last control flag
display int   //How to display the page
displayoptions string   //Display options (width, height)
revision int   //Incremented when after each file changes, to avoid cache
timemodified int   //Last time the page was modified
section int   //Course section id
visible int   //Module visibility
groupmode int   //Group mode
groupingid int   //Grouping id
} 
)warnings  Optional //list of warnings
list of ( 
//warning
object {
item string  Optional //item
itemid int  Optional //item id
warningcode string   //the warning code can be used by the client app to implement specific behaviour
message string   //untranslated english message to explain the warning
} 
)}

备选方案:core_course_get_contents

Juan Levya发现了这篇有用的论坛帖子,它提供了一种将页面内容作为可下载HTML文件的替代方法。改编自原始帖子的信息:

函数core_course_get_contents返回:

  • 章节
    • 每个部分中的模块(活动或资源(
      • 如果模块是一个资源,则它在";内容";属性

该属性是一个文件数组,在那里您将有一个fileurl属性,它是文件的下载URL。如果您正在使用Web服务,则应该附加WS令牌。

返回的URL示例:

https://<your-moodle-url>/webservice/pluginfile.php/29/mod_page/content/index.html?forcedownload=1

您需要修改URL以下载文件,方法是添加WS令牌作为查询参数,密钥为token:

https://<your-moodle-url>/webservice/pluginfile.php/29/mod_page/content/index.html?forcedownload=1&token=<your-token>

这将初始化资源文件的下载。


使用Web服务获取课程内容是一个有点相关的问题,但它特别询问课程资源,这些资源有自己的专用功能。

相关内容

  • 没有找到相关文章

最新更新