Ejemplo n.º 1
0
/**
 * Update widgetspace instance.
 * @param object $data
 * @param object $mform
 * @return bool true
 */
function widgetspace_update_instance($data, $mform)
{
    global $CFG, $DB;
    require_once "{$CFG->libdir}/resourcelib.php";
    $cmid = $data->coursemodule;
    $draftitemid = $data->widgetspace['itemid'];
    $data->timemodified = time();
    $data->id = $data->instance;
    $data->revision++;
    $displayoptions = array();
    if ($data->display == RESOURCELIB_DISPLAY_POPUP) {
        $displayoptions['popupwidth'] = $data->popupwidth;
        $displayoptions['popupheight'] = $data->popupheight;
    }
    $displayoptions['printheading'] = $data->printheading;
    $displayoptions['printintro'] = $data->printintro;
    $data->displayoptions = serialize($displayoptions);
    $data->content = $data->widgetspace['text'];
    $data->contentformat = $data->widgetspace['format'];
    //update, delete or insert gadgets
    $widgetspace = $data;
    foreach ($widgetspace->gadget as $key => $value) {
        $value = trim($value);
        $gadget = new stdClass();
        $gadget->url = $value;
        $gadget->widgetspaceid = $widgetspace->id;
        // set height and name of a gadget
        set_gadget_metadata($gadget->url, $gadget);
        $gadget->timemodified = time();
        if (isset($widgetspace->gadgetid[$key]) && !empty($widgetspace->gadgetid[$key])) {
            //existing choice record
            $gadget->id = $widgetspace->gadgetid[$key];
            if (isset($value) && $value != '') {
                $DB->update_record("widgetspace_gadgets", $gadget);
            } else {
                //empty old option - needs to be deleted.
                $DB->delete_records("widgetspace_gadgets", array("id" => $gadget->id));
            }
        } else {
            if (isset($value) && $value != '') {
                $DB->insert_record("widgetspace_gadgets", $gadget);
            }
        }
    }
    $DB->update_record('widgetspace', $data);
    $context = get_context_instance(CONTEXT_MODULE, $cmid);
    if ($draftitemid) {
        $data->content = file_save_draft_area_files($draftitemid, $context->id, 'mod_widgetspace', 'content', 0, widgetspace_get_editor_options($context), $data->content);
        $DB->update_record('widgetspace', $data);
    }
    return true;
}
Ejemplo n.º 2
0
 function data_preprocessing(&$default_values)
 {
     global $DB;
     if ($this->current->instance) {
         $draftitemid = file_get_submitted_draft_itemid('widgetspace');
         $default_values['widgetspace']['format'] = $default_values['contentformat'];
         $default_values['widgetspace']['text'] = file_prepare_draft_area($draftitemid, $this->context->id, 'mod_widgetspace', 'content', 0, widgetspace_get_editor_options($this->context), $default_values['content']);
         $default_values['widgetspace']['itemid'] = $draftitemid;
     }
     if (!empty($default_values['displayoptions'])) {
         $displayoptions = unserialize($default_values['displayoptions']);
         if (isset($displayoptions['printintro'])) {
             $default_values['printintro'] = $displayoptions['printintro'];
         }
         if (isset($displayoptions['printheading'])) {
             $default_values['printheading'] = $displayoptions['printheading'];
         }
         if (!empty($displayoptions['popupwidth'])) {
             $default_values['popupwidth'] = $displayoptions['popupwidth'];
         }
         if (!empty($displayoptions['popupheight'])) {
             $default_values['popupheight'] = $displayoptions['popupheight'];
         }
     }
     if (!empty($this->current->instance) && ($gadgets = $DB->get_records_menu('widgetspace_gadgets', array('widgetspaceid' => $this->current->instance), 'id', 'id,url'))) {
         $widgetspaceids = array_keys($gadgets);
         $gadgets = array_values($gadgets);
         foreach (array_keys($gadgets) as $key) {
             $default_values['gadget[' . $key . ']'] = $gadgets[$key];
             $default_values['gadgetid[' . $key . ']'] = $widgetspaceids[$key];
         }
     }
 }