我需要直接在数据库中创建一些moodle的itens。
我有查询要插入一个新的moodle课程,以及创建课程上下文的规则(在mdl_context
中)并且它运作良好。
INSERT INTO mdl_course (category,fullname,shortname) VALUES (1,'NewCourse','C1')
还需要插入新的moodle category,
,但在这种情况下,简单的插入查询不起作用
我不知道如何在mdl_context中发现创建新类别上下文的参数
INSERT INTO `unasus_ava`.`mdl_course_categories` (`name`, `idnumber`, `description`, `descriptionformat`, `sortorder`, `timemodified`, `depth`, `path`) VALUES ('New category', '', '<p>some text</p>', 1, 50000, 1392726085, 1, '/5');
关于参数,显然上下文中的path
是关于什么类别的课程,depth
是'2'
到categories
和{{1}到'3'
。但我没有关于contextlevel的意识形态
courses
答案 0 :(得分:0)
使用moodle REST api解决了我的问题
中的示例执行了此脚本$token = 'my_auth_token';
$domainname = 'http://localhost/moodle';
$functionname = 'core_course_create_categories';
$restformat = 'json';
$category = new stdClass();
$category->name = 'Example';
$category->parent = 0;
$category->description = '<p>text</p>';
$category->descriptionformat = 1;
$categories = array( $category);
$params = array('categories' => $categories);
/// REST CALL
header('Content-Type: text/plain');
$serverurl = $domainname . '/webservice/rest/server.php'. '?wstoken=' . $token . '&wsfunction='.$functionname;
require_once('./curl.php');
$curl = new curl;
//if rest format == 'xml', then we do not add the param for backward compatibility with Moodle < 2.2
$restformat = ($restformat == 'json')?'&moodlewsrestformat=' . $restformat:'';
$resp = $curl->post($serverurl . $restformat, $params);
print_r($resp);
此方法自动创建上下文