. /** * Text profile field. * * @package profilefield_text * @copyright 2007 onwards Shane Elliot {@link http://pukunui.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ /** * Class profile_field_text * * @copyright 2007 onwards Shane Elliot {@link http://pukunui.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class profile_field_text extends profile_field_base { /** * Overwrite the base class to display the data for this field */ public function display_data() { // Default formatting. $data = format_string($this->data); // Are we creating a link? if (!empty($this->field->param4) && !empty($data)) { // Define the target. if (! empty($this->field->param5)) { $target = 'target="'.$this->field->param5.'"'; } else { $target = ''; } // Create the link. $data = ''.htmlspecialchars($data, ENT_COMPAT).''; } return $data; } /** * Add fields for editing a text profile field. * @param moodleform $mform */ public function edit_field_add($mform) { $size = $this->field->param1; $maxlength = $this->field->param2; $fieldtype = ($this->field->param3 == 1 ? 'password' : 'text'); // Create the form field. $mform->addElement($fieldtype, $this->inputname, format_string($this->field->name), 'maxlength="'.$maxlength.'" size="'.$size.'" '); $mform->setType($this->inputname, PARAM_TEXT); } /** * Process the data before it gets saved in database * * @param string|null $data * @param stdClass $datarecord * @return string|null */ public function edit_save_data_preprocess($data, $datarecord) { if ($data === null) { return null; } return core_text::substr($data, 0, $this->field->param2); } /** * Convert external data (csv file) from value to key for processing later by edit_save_data_preprocess * * @param string $data * @return string|null */ public function convert_external_data($data) { if (core_text::strlen($data) > $this->field->param2) { return null; } return $data; } /** * Return the field type and null properties. * This will be used for validating the data submitted by a user. * * @return array the param type and null property * @since Moodle 3.2 */ public function get_field_properties() { return array(PARAM_TEXT, NULL_NOT_ALLOWED); } }