From 777025b2985efd19ce1a51bd762bc77feaa8a196 Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Wed, 3 Aug 2022 11:12:11 +0800 Subject: [PATCH] MDL-75910 core_form: Allow editor field to set a hidden label When an editor is used in a form as part of a group, it is missing its label element. This happens because there is no inline template for the editor, and therefore it reverts to using the old `toHtml` function. The legacy function does not cater to the editor being in a group, and therefore does not add the hidden label. In addition, the hiddenLabel attribute was missing from the editor element. This is a semi-standard element but must be added to each supporting element. Both the missing inline template for the editor, and the hidden label attribute must be present: - If the hidden label attribute is not present, then the standard inline template will add a visible label within the group. - If the inline editor template is missing, then the label is not shown at all. --- lib/form/editor.php | 13 +++++++++++++ lib/form/templates/element-editor-inline.mustache | 5 +++++ 2 files changed, 18 insertions(+) create mode 100644 lib/form/templates/element-editor-inline.mustache diff --git a/lib/form/editor.php b/lib/form/editor.php index 1b6d895c377..6d7c700cb8f 100644 --- a/lib/form/editor.php +++ b/lib/form/editor.php @@ -64,6 +64,9 @@ class MoodleQuickForm_editor extends HTML_QuickForm_element implements templatab /** @var array values for editor */ protected $_values = array('text'=>null, 'format'=>null, 'itemid'=>null); + /** @var bool if true label will be hidden */ + protected $_hiddenLabel = false; + /** * Constructor * @@ -496,4 +499,14 @@ class MoodleQuickForm_editor extends HTML_QuickForm_element implements templatab return ''; } + + /** + * Sets label to be hidden. + * + * @param bool $hiddenLabel Whether the label should be hidden or not. + * @return void + */ + function setHiddenLabel($hiddenLabel) { + $this->_hiddenLabel = $hiddenLabel; + } } diff --git a/lib/form/templates/element-editor-inline.mustache b/lib/form/templates/element-editor-inline.mustache new file mode 100644 index 00000000000..05e460492ff --- /dev/null +++ b/lib/form/templates/element-editor-inline.mustache @@ -0,0 +1,5 @@ +{{< core_form/element-template-inline }} + {{$element}} + {{{element.html}}} + {{/element}} +{{/ core_form/element-template-inline }}