Привет, ребята, так что я сейчас строю проект на основе Moodle в PHP, и мне было просто интересно, как можно было бы удалить определенные опции выбора в массиве для опции выбора. Я думал об использовании функции disabledIf, но не могу придумать ни одного варианта использования. Например, вот мой код:
$mform->addElement('select', 'showresults', get_string("publish", "choice"), $CHOICE_SHOWRESULTS);
$mform->addElement('select', 'publish', get_string("privacy", "choice"), $CHOICE_PUBLISH);
//$mform->disabledIf('publish', 'showresults', 'eq', 0);
$CHOICE_SHOWRESULTS
и $CHOICE_PUBLISH
являются массивами.
Скажем, например, для $CHOICE_SHOWRESULTS
есть варианты «Мне нравится вечеринка» и «Я не люблю вечеринки»
Если бы я выбрал «Мне нравится вечеринка», я бы получил только подмножество $CHOICE_PUBLISH
Но если я выберу "Я не люблю вечеринки", я получу все элементы в $CHOICE_PUBLISH
В документации Moodle здесь https://docs.moodle.org/dev/Form_API
Я вижу только disableIf, который на самом деле работает как оператор if, но на самом деле он не указывает, выбран ли определенный элемент в массиве, а затем показывает некоторые результаты.
Итак, я хочу что-то вроде этого в коде:
$mform->addElement('select', 'showresults', get_string("publish", "choice"), $CHOICE_SHOWRESULTS);
if ( one choice within $CHOICE_SHOWRESULTS)
$mform->addElement('select', 'publish', get_string("privacy", "choice"), SUBSET OF $CHOICE_PUBLISH);
else { //another choice of CHOICE_SHOWRESULTS
$mform->addElement('select', 'publish', get_string("privacy", "choice"), $CHOICE_PUBLISH);
}
Я новичок в Moodle, поэтому все поможет :)