2015-09-21 3 views
4

Кто-нибудь знает, можно ли программным образом добавить программу в курс Moodle?Создание программ Moodle программно

Я думал, может быть, использовать класс module_add_instance() из lib.php моего пользовательского плагина ...

например

function feedback_add_instance(stdClass $mod) { 
    global $DB; 

    $newmodule->timecreated = time(); 

    // You may have to add extra stuff in here. 

    $newmodule->id = $DB->insert_record('exams', $newmodule); 

    unicexams_grade_item_update($newmodule); 

    return $newmodule->id; 
} 

Но потом снова: Что такое переменная $mod? Что он содержит и как его построить?

У кого-нибудь есть знания по этому предмету? Или что-то посоветовать?

ответ

2

add_moduleinfo() было бы лучше. Ниже я кое-что использую для facetoface.

Для начала редактирования /course/modedit.php временно добавить следующее, затем добавить требуемую активность через передний конец - это даст вам список большинства требуемых свойств:

var_dump($fromform); 
die(); 
$fromform = add_moduleinfo($fromform, $course, $mform); 

код для создания экземпляр facetoface

$newfacetoface = new stdClass(); 
$newfacetoface->name = $facetoface->facetofacename; 
$newfacetoface->intro = ''; 
$newfacetoface->thirdparty = ''; 
$newfacetoface->display = 6; 
$newfacetoface->approvalreqd = 0; 
$newfacetoface->selfapprovaltandc = $strmgr->get_string('selfapprovaltandccontents', 'facetoface', $facetoface->langcode); 
$newfacetoface->allowcancellationsdefault = 1; 
$newfacetoface->cancellationscutoffdefault = 0; 
$newfacetoface->multiplesessions = 1; // Allow multiple sessions. 
$newfacetoface->managerreserve = '0'; 
$newfacetoface->maxmanagerreserves = '1'; 
$newfacetoface->reservecancel = '1'; 
$newfacetoface->reservecanceldays = '1'; 
$newfacetoface->reservedays = '2'; 
$newfacetoface->showoncalendar = '1'; 
$newfacetoface->usercalentry = '1'; 
$newfacetoface->shortname = ''; 
$newfacetoface->published = $facetoface->visible; 
$newfacetoface->branches = $facetoface->branches; 
$newfacetoface->visible = $facetoface->visible; 
$newfacetoface->cmidnumber = $facetoface->facetofaceid; 
$newfacetoface->idnumber = $facetoface->facetofaceid; 
$newfacetoface->groupmode = '0'; 
$newfacetoface->availabilityconditionsjson = '{"op":"&","c":[],"showc":[]}'; 
$newfacetoface->completionunlocked = 1; 
$newfacetoface->completionunlockednoreset = 0; 
$newfacetoface->completion = COMPLETION_TRACKING_AUTOMATIC; 
$newfacetoface->completionstatusrequired = '{"100":1}'; 
$newfacetoface->completionexpected = 0; 
$newfacetoface->course = $course->id; 
$newfacetoface->coursemodule = 0; 
$newfacetoface->section = 1; 
$newfacetoface->module = $moduleid; 
$newfacetoface->modulename = 'facetoface'; 
$newfacetoface->instance = 0; 
$newfacetoface->add = 'facetoface'; 
$newfacetoface->update = 0; 
$newfacetoface->return = 0; 
$newfacetoface->sr = 0; 

$moduleinfo = add_moduleinfo($newfacetoface, $course); 
+0

Отлично, я понятия не имел, что add_moduleinfo() существует. У Moodle есть так много функций и нет документации! Я попробую и отправлю отчет с помощью решения. Благодаря – Christos312

Смежные вопросы