MDL-14299 New checkbox profile field type.
Credit to Brian King.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
<?php //$Id:
|
||||
|
||||
class profile_define_checkbox extends profile_define_base {
|
||||
|
||||
function define_form_specific(&$form) {
|
||||
/// select whether or not this should be checked by default
|
||||
$form->addElement('selectyesno', 'defaultdata', get_string('profiledefaultchecked', 'profilefield_checkbox'));
|
||||
$form->setDefault('defaultdata', 0); // defaults to 'no'
|
||||
$form->setType('defaultdata', PARAM_BOOL);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php //$Id:
|
||||
|
||||
class profile_field_checkbox extends profile_field_base {
|
||||
|
||||
/**
|
||||
* Constructor method.
|
||||
* Pulls out the options for the checkbox from the database and sets the
|
||||
* the corresponding key for the data if it exists
|
||||
*/
|
||||
function profile_field_checkbox($fieldid=0, $userid=0) {
|
||||
//first call parent constructor
|
||||
$this->profile_field_base($fieldid, $userid);
|
||||
|
||||
if (!empty($this->field)) {
|
||||
$datafield = get_field('user_info_data', 'data', 'userid', $this->userid, 'fieldid', $this->fieldid);
|
||||
if ($datafield !== false) {
|
||||
$this->data = $datafield;
|
||||
} else {
|
||||
$this->data = $this->field->defaultdata;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function edit_field_add(&$mform) {
|
||||
/// Create the form field
|
||||
$checkbox = &$mform->addElement('advcheckbox', $this->inputname, format_string($this->field->name));
|
||||
if ($this->data == '1') {
|
||||
$checkbox->setChecked(true);
|
||||
}
|
||||
$mform->setType($this->inputname, PARAM_BOOL);
|
||||
if ($this->is_required() and !has_capability('moodle/user:update', get_context_instance(CONTEXT_SYSTEM, SITEID))) {
|
||||
$mform->addRule($this->inputname, get_string('required'), 'nonzero', null, 'client');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the data for this field
|
||||
*/
|
||||
function display_data() {
|
||||
$options->para = false;
|
||||
$checked = intval($this->data) === 1 ? 'checked="checked"' : '';
|
||||
return '<input disabled="disabled" type="checkbox" name="'.$this->inputname.'" '.$checked.' />';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user