Only include data from field types that are "small"

This commit is contained in:
ikawhero 2007-10-08 08:10:45 +00:00
parent 4354a3e563
commit 91cddbc454
2 changed files with 17 additions and 1 deletions

View File

@ -11,6 +11,12 @@ class profile_field_textarea extends profile_field_base {
$mform->setType($this->inputname, PARAM_CLEAN);
}
/// Overwrite base class method, data in this field type is potentially too large to be
/// included in the user object
function is_user_object_data() {
return false;
}
}
?>

View File

@ -162,6 +162,16 @@ class profile_field_base {
}
}
/**
* Check if the field data should be loaded into the user object
* By default it is, but for field types where the data may be potentially
* large, the child class should override this and return false
* @return boolean
*/
function is_user_object_data() {
return true;
}
/***** The following methods generally should not be overwritten by child classes *****/
@ -399,7 +409,7 @@ function profile_user_record($userid) {
require_once($CFG->dirroot.'/user/profile/field/'.$field->datatype.'/field.class.php');
$newfield = 'profile_field_'.$field->datatype;
$formfield = new $newfield($field->id, $userid);
$user->{$field->shortname} = $formfield->data;
if ($formfield->is_user_object_data()) $user->{$field->shortname} = $formfield->data;
}
}