. /** * Social profile field define. * * @package profilefield_social * @copyright 2020 Bas Brands * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ /** * Class profile_field_social. * * @copyright 2020 Bas Brands * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class profile_field_social extends profile_field_base { /** * Adds elements for this field type to the edit form. * @param moodleform $mform */ public function edit_field_add($mform) { $mform->addElement('text', $this->inputname, $this->field->name, null, null); if ($this->field->param1 === 'url') { $mform->setType($this->inputname, PARAM_URL); } else { $mform->setType($this->inputname, PARAM_NOTAGS); } } /** * alter the fieldname to be fetched from the language file. * * @param stdClass $field */ public function set_field($field) { $networks = profilefield_social\helper::get_networks(); $field->name = $networks[$field->name]; parent::set_field($field); } /** * Display the data for this field * @return string */ public function display_data() { $network = $this->field->param1; $networkurls = profilefield_social\helper::get_network_urls(); if (array_key_exists($network, $networkurls)) { $pattern = ['%%ENCODED%%', '%%PLAIN%%']; $data = [rawurlencode($this->data), $this->data]; return str_replace($pattern, $data, $networkurls[$network]); } return $this->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); } }