예제 #1
0
/**
 * Update certificate instance.
 * 
 * @param stdClass $certificate
 * @return bool true
 */
function simplecertificate_update_instance(stdclass $data)
{
    global $DB, $CFG;
    require_once $CFG->dirroot . '/mod/simplecertificate/locallib.php';
    $context = context_module::instance($data->coursemodule);
    $simplecertificate = new simplecertificate($context, null, null);
    return $simplecertificate->update_instance($data);
}
 /**
  * Overwrites parents to format $formdata
  * @see simplecertificate::update_instance()
  */
 public function update_instance(stdClass $instance)
 {
     global $CFG, $USER;
     //usercontext
     $user_context = context_user::instance($USER->id);
     // Draft fileinfo
     $fileinfo = array('contextid' => $user_context->id, 'component' => 'user', 'filearea' => 'draft', 'filepath' => '/');
     $formdata = clone $instance;
     unset($formdata->certificatetext);
     unset($formdata->certificatetextformat);
     $formdata->certificatetext['text'] = $instance->certificatetext;
     $formdata->certificatetext['format'] = $instance->certificatetextformat;
     if (!empty($instance->secondpagetext)) {
         unset($formdata->secondpagetext);
         unset($formdata->secondpagetextformat);
         $formdata->secondpagetext['text'] = $instance->secondpagetext;
         $formdata->secondpagetext['format'] = $instance->secondpagetextformat;
     }
     $fs = get_file_storage();
     if (!empty($instance->certificateimage)) {
         $imagefileinfo = self::get_certificate_image_fileinfo($this->get_context()->id);
         $imagefile = $fs->get_file($imagefileinfo['contextid'], $imagefileinfo['component'], $imagefileinfo['filearea'], $imagefileinfo['itemid'], $imagefileinfo['filepath'], $instance->certificateimage);
         $fileinfo['itemid'] = rand(1, 10);
         $fs->delete_area_files($fileinfo['contextid'], $fileinfo['component'], $fileinfo['filearea'], $fileinfo['itemid']);
         $fs->create_file_from_storedfile($fileinfo, $imagefile);
         $formdata->certificateimage = $fileinfo['itemid'];
         $imagefileinfo = null;
     }
     if (!empty($instance->secondimage)) {
         $imagefileinfo = self::get_certificate_secondimage_fileinfo($this->get_context()->id);
         $imagefile = $fs->get_file($imagefileinfo['contextid'], $imagefileinfo['component'], $imagefileinfo['filearea'], $imagefileinfo['itemid'], $imagefileinfo['filepath'], $instance->secondimage);
         $fileinfo['itemid'] = rand(11, 21);
         $fs->delete_area_files($fileinfo['contextid'], $fileinfo['component'], $fileinfo['filearea'], $fileinfo['itemid']);
         $fs->create_file_from_storedfile($fileinfo, $imagefile);
         $formdata->secondimage = $fileinfo['itemid'];
         $imagefileinfo = null;
     }
     parent::update_instance($formdata);
 }