示例#1
0
 /**
  * Make sure that all profile fields can be initialised without arguments.
  */
 public function test_default_constructor()
 {
     global $DB, $CFG;
     require_once $CFG->dirroot . '/user/profile/definelib.php';
     $datatypes = profile_list_datatypes();
     foreach ($datatypes as $datatype => $datatypename) {
         require_once $CFG->dirroot . '/user/profile/field/' . $datatype . '/field.class.php';
         $newfield = 'profile_field_' . $datatype;
         $formfield = new $newfield();
         $this->assertNotNull($formfield);
     }
 }
示例#2
0
        foreach ($fields as $field) {
            $table->data[] = array(format_string($field->name), profile_field_icons($field));
        }
    }
    echo $OUTPUT->heading(format_string($category->name) . ' ' . profile_category_icons($category));
    if (count($table->data)) {
        echo html_writer::table($table);
    } else {
        echo $OUTPUT->notification($strnofields);
    }
}
// End of $categories foreach.
echo '<hr />';
echo '<div class="profileeditor">';
// Create a new field link.
$options = profile_list_datatypes();
$popupurl = new moodle_url('/user/profile/index.php?id=0&action=editfield');
echo $OUTPUT->single_select($popupurl, 'datatype', $options, '', array('' => $strcreatefield), 'newfieldform');
// Add a div with a class so themers can hide, style or reposition the text.
html_writer::start_tag('div', array('class' => 'adminuseractionhint'));
echo get_string('or', 'lesson');
html_writer::end_tag('div');
// Create a new category link.
$options = array('action' => 'editcategory');
echo $OUTPUT->single_button(new moodle_url('index.php', $options), get_string('profilecreatecategory', 'admin'));
echo '</div>';
echo $OUTPUT->footer();
die;
/***** Some functions relevant to this script *****/
/**
 * Create a string containing the editing icons for the user profile categories
示例#3
0
function profile_edit_field($id, $datatype, $redirect)
{
    global $CFG, $DB, $OUTPUT, $PAGE;
    if (!($field = $DB->get_record('user_info_field', array('id' => $id)))) {
        $field = new stdClass();
        $field->datatype = $datatype;
        $field->description = '';
        $field->descriptionformat = FORMAT_HTML;
        $field->defaultdata = '';
        $field->defaultdataformat = FORMAT_HTML;
    }
    // Clean and prepare description for the editor
    $field->description = clean_text($field->description, $field->descriptionformat);
    $field->description = array('text' => $field->description, 'format' => $field->descriptionformat, 'itemid' => 0);
    require_once 'index_field_form.php';
    $fieldform = new field_form(null, $field->datatype);
    // Convert the data format for
    if (is_array($fieldform->editors())) {
        foreach ($fieldform->editors() as $editor) {
            if (isset($field->{$editor})) {
                $field->{$editor} = clean_text($field->{$editor}, $field->{$editor . 'format'});
                $field->{$editor} = array('text' => $field->{$editor}, 'format' => $field->{$editor . 'format'}, 'itemid' => 0);
            }
        }
    }
    $fieldform->set_data($field);
    if ($fieldform->is_cancelled()) {
        redirect($redirect);
    } else {
        if ($data = $fieldform->get_data()) {
            require_once $CFG->dirroot . '/user/profile/field/' . $datatype . '/define.class.php';
            $newfield = 'profile_define_' . $datatype;
            $formfield = new $newfield();
            // Collect the description and format back into the proper data structure from the editor
            // Note: This field will ALWAYS be an editor
            $data->descriptionformat = $data->description['format'];
            $data->description = $data->description['text'];
            // Check whether the default data is an editor, this is (currently) only the
            // textarea field type
            if (is_array($data->defaultdata) && array_key_exists('text', $data->defaultdata)) {
                // Collect the default data and format back into the proper data structure from the editor
                $data->defaultdataformat = $data->defaultdata['format'];
                $data->defaultdata = $data->defaultdata['text'];
            }
            // Convert the data format for
            if (is_array($fieldform->editors())) {
                foreach ($fieldform->editors() as $editor) {
                    if (isset($field->{$editor})) {
                        $field->{$editor . 'format'} = $field->{$editor}['format'];
                        $field->{$editor} = $field->{$editor}['text'];
                    }
                }
            }
            $formfield->define_save($data);
            profile_reorder_fields();
            profile_reorder_categories();
            redirect($redirect);
        }
        $datatypes = profile_list_datatypes();
        if (empty($id)) {
            $strheading = get_string('profilecreatenewfield', 'admin', $datatypes[$datatype]);
        } else {
            $strheading = get_string('profileeditfield', 'admin', $field->name);
        }
        /// Print the page
        $PAGE->navbar->add($strheading);
        echo $OUTPUT->header();
        echo $OUTPUT->heading($strheading);
        $fieldform->display();
        echo $OUTPUT->footer();
        die;
    }
}
示例#4
0
function profile_edit_field($id, $datatype, $redirect)
{
    global $CFG;
    if (!($field = get_record('user_info_field', 'id', $id))) {
        $field = new object();
        $field->datatype = $datatype;
    }
    require_once 'index_field_form.php';
    $fieldform = new field_form(null, $field->datatype);
    $fieldform->set_data($field);
    if ($fieldform->is_cancelled()) {
        redirect($redirect);
    } else {
        if ($data = $fieldform->get_data()) {
            require_once $CFG->dirroot . '/user/profile/field/' . $datatype . '/define.class.php';
            $newfield = 'profile_define_' . $datatype;
            $formfield = new $newfield();
            $formfield->define_save($data);
            profile_reorder_fields();
            profile_reorder_categories();
            redirect($redirect);
        }
        $datatypes = profile_list_datatypes();
        if (empty($id)) {
            $strheading = get_string('profilecreatenewfield', 'admin', $datatypes[$datatype]);
        } else {
            $strheading = get_string('profileeditfield', 'admin', $field->name);
        }
        /// Print the page
        admin_externalpage_print_header();
        print_heading($strheading);
        $fieldform->display();
        admin_externalpage_print_footer();
        die;
    }
}