}
include('tabs.php');
-
/// Process incoming data for adding/updating records
if ($datarecord = data_submitted() and confirm_sesskey()) {
/// Update all content
$field = NULL;
foreach ($fieldids as $fieldid) {
- $name = "field_$fieldid";
- $value = optional_param( $name,'' );
- if (empty($field->field) || ($fieldid != $field->field->id)) { // Try to reuse classes
- $field = data_get_field_from_id($fieldid, $data);
- }
- if ($field) {
- $field->update_content($rid, $value, $name);
- }
+ $bits = explode('_',$fieldid);
+ $justid = $bits[0];
+ $name = "field_$fieldid";
+ $value = optional_param( $name,'' );
+ if (empty($field->field) || ($justid != $field->field->id)) { // Try to reuse classes
+ $field = data_get_field_from_id($fieldid, $data);
+ }
+ if ($field) {
+ $field->update_content($rid, $value, $name);
+ }
}
add_to_log($course->id, 'data', 'update', "view.php?d=$data->id&rid=$rid", $data->id, $cm->id);
$emptyform = true; // assume the worst
foreach ($fieldids as $fieldid) {
+ $bits = explode('_',$fieldid);
+ $justid = $bits[0];
$name = "field_$fieldid";
$value = optional_param( $name,'' );
- if (empty($field->field) || ($fieldid != $field->field->id)) { // Try to reuse classes
+ if (empty($field->field) || ($justid != $field->field->id)) { // Try to reuse classes
$field = data_get_field_from_id($fieldid, $data);
}
if ($field->notemptyfield($value, $name)) {
break; // if anything has content, this form is not empty, so stop now!
}
}
-
if ($emptyform){ //nothing gets written to database
notify(get_string('emptyaddform','data'));
}
//for each field in the add form, add it to the data_content.
foreach ($fieldids as $fieldid) {
+ $bits = explode('_',$fieldid);
+ $justid = $bits[0];
$name = "field_$fieldid";
$value = optional_param( $name,'' );
- if (empty($field->field) || ($fieldid != $field->field->id)) { // Try to reuse classes
+ if (empty($field->field) || ($justid != $field->field->id)) { // Try to reuse classes
$field = data_get_field_from_id($fieldid, $data);
}
if ($field) {
$field->update_content($recordid, $value, $name);
}
}
-
add_to_log($course->id, 'data', 'add', "view.php?d=$data->id&rid=$recordid", $data->id, $cm->id);
notify(get_string('entrysaved','data'));
$replacements[] = $field->display_add_field($rid);
$patterns[]="[[".$field->field->name."#id]]";
$replacements[] = 'field_'.$field->field->id;
- $data->fieldids[] = $field->field->id;
+ $field->list_add_field( $data->fieldids );
}
$newtext = str_ireplace($patterns, $replacements, $data->{$mode});
return $str;
}
+
+// add the field ids to an existing array to track added form fields
+// override if anything with multiple fields (e.g. date)
+ function list_add_field( &$fields ) {
+ $fields[] = $this->field->id;
+ return true;
+ }
+
// Print the relevant form element to define the attributes for this field
// viewable by teachers only.
function display_edit_field() {
if ($form) { // Print forms instead of data
$fieldobj = data_get_field($field, $data);
$str .= $fieldobj->display_add_field($recordid);
- $data->fieldids[] = $fieldobj->field->id;
+ $fieldobj->list_add_field( $data->fieldids );
} else { // Just print the tag
$str .= '[['.$field->name.']]';
}