2015-07-09 2 views
0

Я новичок в Moodle. Я создал пользователя с помощью веб-сервиса api, и он работает успешно. Теперь я хочу создать курс таким же образом. Для этого я использую функцию «core_course_create_courses». Сообщение тело моего запроса являетсяСоздать курс API не работает в Moodle

$courses=array("courses" => 
      array(
       0=>array(
        "fullname" => $fullname, 
        "shortname" => $shortname, 
        "categoryid" => $categoryid, 
        "idnumber" =>$idnumber, 
        "summary"=>$summary, 
        "summaryformat"=>$summaryformat 
       ) 
      ) 
     ); 

Всякий раз, когда я бегу это он дает мне ответ "{\" исключение \ ": \" moodle_exception \», \ "ErrorCode \": \ "errorcatcontextnotvalid \" , \ "message \": \ "Вы не можете выполнять функции в контексте категории (категория id: 101). Сообщение об ошибке контекста: обнаружено недопустимое значение параметра \ "}".

Но категория курса «программирование» с идентификатором 101 существует на моем сайте moodle. Пожалуйста, помогите мне. Заранее спасибо.

ответ

0

Я был неправ, категория не является идентификатором категории, это идентификатор последовательности категории. Теперь, если я даю 2, он отлично работает.

-1
$token = $this->config->item('id_token'); 
    $domainname = $this->config->item('domainname'); 
    $functionname = 'core_course_create_courses'; 
    $restformat = 'json'; 

    //crear objeto de acuerdo a la estructura para crear Categoría en Moodle 

    $curso = new stdClass();   
    $curso->fullname = $data['patron']['nombre']; 
    $curso->shortname = $data['patron']['nombre']; // Is unique 
    **$curso->idnumber = $id; // consecutive 
    $curso->visible = 1; 
    $curso->categoryid = 6; 

    $modulos = array($curso); 

    $params = array('courses' => $modulos); 

    header('Content-Type: text/plain'); 
    $serverurl = $domainname . '/webservice/rest/server.php' . '?wstoken=' . $token . '&wsfunction=' . $functionname; 
    require_once(APPPATH . 'libraries/curl.php'); 
    $curl = new curl; 

    $restformat = ($restformat == 'json') ? '&moodlewsrestformat=' . $restformat : ''; 
    $resp = $curl->post($serverurl . $restformat, $params); 
    return $resp; 
Смежные вопросы