* Construct a HTMLForm object for given display type. May return a HTMLForm subclass.
*
* @param string $displayFormat
- * @param mixed $arguments... Additional arguments to pass to the constructor.
+ * @param mixed $arguments,... Additional arguments to pass to the constructor.
* @return HTMLForm
*/
public static function factory( $displayFormat/*, $arguments...*/ ) {
* @since 1.23
*
* @param string $fieldname Name of the field
- * @param array $descriptor Input Descriptor, as described above
+ * @param array &$descriptor Input Descriptor, as described above
*
* @throws MWException
* @return string Name of a HTMLFormField subclass
* @return string HTML
*/
protected function formatSection( array $fieldsHtml, $sectionName, $anyFieldHasLabel ) {
+ if ( !$fieldsHtml ) {
+ // Do not generate any wrappers for empty sections. Sections may be empty if they only have
+ // subsections, but no fields. A legend will still be added in wrapFieldSetSection().
+ return '';
+ }
+
$displayFormat = $this->getDisplayFormat();
$html = implode( '', $fieldsHtml );
* 'novalidate' attribute will be added on the `<form>` element. It will be removed if the user
* agent has JavaScript support, in htmlform.js.
*
- * @return boolean
+ * @return bool
* @since 1.29
*/
public function needsJSForHtml5FormValidation() {