Example #1
0
/**
 * Given an object containing all the necessary data,
 * (defined by the form in mod.html) this function
 * will update an existing instance with new data.
 *
 * @param object $instance An object from the form in mod.html
 * @return boolean Success/Fail
 **/
function lti_update_instance($lti, $mform)
{
    global $DB, $CFG;
    require_once $CFG->dirroot . '/mod/lti/locallib.php';
    lti_load_tool_if_cartridge($lti);
    $lti->timemodified = time();
    $lti->id = $lti->instance;
    if (!isset($lti->showtitlelaunch)) {
        $lti->showtitlelaunch = 0;
    }
    if (!isset($lti->showdescriptionlaunch)) {
        $lti->showdescriptionlaunch = 0;
    }
    lti_force_type_config_settings($lti, lti_get_type_config_by_instance($lti));
    if (isset($lti->instructorchoiceacceptgrades) && $lti->instructorchoiceacceptgrades == LTI_SETTING_ALWAYS) {
        lti_grade_item_update($lti);
    } else {
        // Instance is no longer accepting grades from Provider, set grade to "No grade" value 0.
        $lti->grade = 0;
        $lti->instructorchoiceacceptgrades = 0;
        lti_grade_item_delete($lti);
    }
    if ($lti->typeid == 0 && isset($lti->urlmatchedtypeid)) {
        $lti->typeid = $lti->urlmatchedtypeid;
    }
    return $DB->update_record('lti', $lti);
}
Example #2
0
 /**
  * Tests lti_load_tool_from_cartridge and lti_load_tool_if_cartridge
  */
 public function test_lti_load_tool_from_cartridge()
 {
     $lti = new stdClass();
     $lti->toolurl = $this->getExternalTestFileUrl('/ims_cartridge_basic_lti_link.xml');
     lti_load_tool_if_cartridge($lti);
     $this->assertEquals('Example tool', $lti->name);
     $this->assertEquals('Example tool description', $lti->intro);
     $this->assertEquals('http://www.example.com/lti/provider.php', $lti->toolurl);
     $this->assertEquals('https://www.example.com/lti/provider.php', $lti->securetoolurl);
     $this->assertEquals('http://download.moodle.org/unittest/test.jpg', $lti->icon);
     $this->assertEquals('https://download.moodle.org/unittest/test.jpg', $lti->secureicon);
 }