From 0dd35558646b5859c816cdbe739beb4a87459c6a Mon Sep 17 00:00:00 2001 From: Satoshi Sahara Date: Wed, 19 Aug 2020 17:58:30 +0900 Subject: [PATCH] Form::toHTML() can trigger event New event naming scheme HTMLFORM_*_OUTPUT should be tiggered to prevent break of old third-party plugins using old events HTML_*FORM_OUTPUT. --- inc/Form/Form.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 062b51b6e..445718751 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -467,12 +467,21 @@ class Form extends Element /** * The HTML representation of the whole form * + * @param string $eventName (optional) name of the event: HTMLFORM_{$name}_OUTPUT * @return string */ - public function toHTML() + public function toHTML($eventName = null) { $this->balanceFieldsets(); + // trigger event to provide an opportunity to modify this form + if (isset($eventName)) { + if (!preg_match('/^HTMLFORM_[A-Z]+?_OUTPUT$/', $eventName)) { + $eventName = 'HTMLFORM_'.strtoupper($eventName).'_OUTPUT'; + } + Event::createAndTrigger($eventName, $this, null, false); + } + $html = '
attrs()) .'>'; foreach ($this->hidden as $name => $value) { -- 2.11.4.GIT