libdir.'/blocklib.php'); require_once('pagelib.php'); require_login(); $id = optional_param('id', 0, PARAM_INT); // course module id $d = optional_param('d', 0, PARAM_INT); // database id $fid = optional_param('fid', 0 , PARAM_INT); //update field id $newtype = optional_param('fieldmenu','',PARAM_ALPHA); //type of the new field //action specifies what action is performed when data is submitted $mode = optional_param('mode','',PARAM_ALPHA); $displayflag = ''; //str to print after an operation, if ($id) { if (! $cm = get_record('course_modules', 'id', $id)) { error('Course Module ID was incorrect'); } if (! $course = get_record('course', 'id', $cm->course)) { error('Course is misconfigured'); } if (! $data = get_record('data', 'id', $cm->instance)) { error('Course module is incorrect'); } } else { if (! $data = get_record('data', 'id', $d)) { error('Data ID is incorrect'); } if (! $course = get_record('course', 'id', $data->course)) { error('Course is misconfigured'); } if (! $cm = get_coursemodule_from_instance('data', $data->id, $course->id)) { error('Course Module ID was incorrect'); } } if (!isteacheredit($course->id)){ error(get_string('noaccess','data')); } $strdata = get_string('modulenameplural','data'); print_header_simple($data->name, "", "$strdata -> $data->name", "", "", true, "", navmenu($course)); print_heading(format_string($data->name)); /************************************ * Data Processing * ***********************************/ switch($mode){ case 'add': ///add a new field if (confirm_sesskey() and $field = data_submitted($CFG->wwwroot.'/mod/data/fields.php')){ $sql = 'SELECT * from '.$CFG->prefix.'data_fields WHERE name LIKE "'.$field->name. '" AND dataid = '.$data->id; if ($field->name and !get_record_sql($sql)){ $field->dataid = $data->id; // Check for arrays. If we encounter an array, we save the array as a // comma-delimited string in the database. foreach ($field as $key=>$val) { if (is_array($val)) { $str = ''; foreach ($val as $inner) { $str .= $inner . ','; } $str = substr($str, 0, -1); $field->$key = $str; } } $field->id = insert_record('data_fields', $field); // Add the new field to the form templates. data_append_field_in_form($field->dataid, $field->name); add_to_log($course->id, 'data', 'fields add', "fields.php?d=$data->id&mode=display&fid=$field->id", $field->id, $cm->id); $displayflag = get_string('fieldadded','data'); } else { //no duplicate names allowed in one database! $displayflag = get_string('invalidfieldname','data'); } } break; case 'delete': // Delete a field if (confirm_sesskey()){ if ($confirm = optional_param('confirm', 0, PARAM_INT)) { // Delete the associated data_contents and files. if (!$fieldRecordSet = get_record('data_fields', 'id', $fid)) { notify('Field not found'); exit; } $field = data_get_field($fieldRecordSet); $field->delete_data_contents(); // Update the templates. data_replace_field_in_forms($fieldRecordSet->dataid, $fieldRecordSet->name, ''); // Delete the field. delete_records('data_fields', 'id', $fid); add_to_log($course->id, 'data', 'fields delete', "fields.php?d=$data->id", $data->id, $cm->id); $displayflag = get_string('fielddeleted', 'data'); } else { // Print confirmation message. $field = get_record('data_fields','id',$fid); print_simple_box_start('center', '60%'); echo '