Получение данных из формы настройки модуля/активности при его обновлении

Получение данных из формы настройки модуля/активности при его обновлении

от Владимир Владимир -
Количество ответов: 2

Помогите разобраться с вопросом. Создаю плагин для активности в moodle. Как я понял, для добавления и сохранения параметров активности в базе (точнее реализации формы для ввода параметров) используется файл mod_form.php, а функции создания, обновления и удаления прописываются в файле lib.php

Предположим, я создал такую форму (показана только часть) и в ней есть элемент select

mod_form.php:

class mod_pluginname_mod_form extends moodleform_mod {

public function definition() {
$mform = $this->_form;

$fieldname = 'general';
$mform->addElement('header', $fieldname, get_string($fieldname, 'form'));

$fieldname = 'name';
$mform->addElement('text', $fieldname, get_string('name'), array('size' => '64'));
if (!empty($CFG->formatstringstriptags)) {
$mform->setType($fieldname, PARAM_TEXT);
} else {
$mform->setType($fieldname, PARAM_CLEANHTML);
}
$mform->addRule($fieldname, get_string('required'), 'required', null, 'client');
$mform->addRule($fieldname, get_string('maximumchars', '', 255), 'maxlength', 255, 'client');
$mform->addHelpButton($fieldname, 'pluginname', 'pluginname');

// Adding the standard "intro" and "introformat" fields.
$this->standard_intro_elements(get_string('moduleintro'));

$fieldname = 'maxentries';
$maxentries = 10;
$countoptions = range(1, $maxentries);
        $mform->addElement('select', $fieldname, get_string($fieldname, 'mod_pluginname'), $countoptions);
$mform->addHelpButton($fieldname, $fieldname, 'pluginname');
Функция обновления компонента в lib.php:

/**
* @param object $pluginobject
* @param mod_pluginname_mod_form $mform
* @return boolean Success/Fail
*/
function pluginname_update_instance($pluginobject, $mform) {
global $DB;

$emiassurveypro->timemodified = time();
$DB->update_record('plugintable', $pluginobject);

return true;
}

Так вот основной вопрос заключается в том, а как мне в функции pluginname_update_instance получить значение элемента select, который установлен в mod_form.php для того, чтобы при обновлении сохранить его в базу?

В ответ на Владимир Владимир

Re: Получение данных из формы настройки модуля/активности при его обновлении

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

сделайте дамп объекта $mform и посмотрите, что в нём приходит. Наверное вам нужно $mform->get_data()

документация тут https://docs.moodle.org/dev/Form_API#Usage

В ответ на Vadim Dvorovenko

Re: Получение данных из формы настройки модуля/активности при его обновлении

от Владимир Владимир -
Спасибо за совет, помогло. В моем случае:
$data = $mform->get_data();
$maxentries = $formdata->maxentries;
И дальше сохраняем в базу.