"#forminput" does not work for multiple forms
I create a page with content:
{{#forminput:form=Form1,Form2}}Page save fails with:
[d1717fd78275c362aeedafa8] /hoo/index.php?title=TestoFormo&action=submit MWException from line 545 of D:\Program Files\XAMPP\htdocs\hoo\includes\Html.php: HTML attribute data-possible-forms can not contain a list of values
Backtrace:
#0 D:\Program Files\XAMPP\htdocs\hoo\includes\Html.php(305): Html::expandAttributes(array)
#1 D:\Program Files\XAMPP\htdocs\hoo\includes\Html.php(210): Html::openElement(string, array)
#2 D:\Program Files\XAMPP\htdocs\hoo\includes\Html.php(235): Html::rawElement(string, array, string)
#3 D:\Program Files\XAMPP\htdocs\hoo\extensions\PageForms\includes\PF_ParserFunctions.php(402): Html::element(string, array, NULL)
#4 D:\Program Files\XAMPP\htdocs\hoo\includes\parser\Parser.php(3340): PFParserFunctions::renderFormInput(Parser, string)
#5 D:\Program Files\XAMPP\htdocs\hoo\includes\parser\Parser.php(3047): Parser->callParserFunction(PPFrame_Hash, string, array)
#6 D:\Program Files\XAMPP\htdocs\hoo\includes\parser\PPFrame_Hash.php(253): Parser->braceSubstitution(array, PPFrame_Hash)
#7 D:\Program Files\XAMPP\htdocs\hoo\includes\parser\Parser.php(2887): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#8 D:\Program Files\XAMPP\htdocs\hoo\includes\parser\Parser.php(1556): Parser->replaceVariables(string)
#9 D:\Program Files\XAMPP\htdocs\hoo\includes\parser\Parser.php(651): Parser->internalParse(string)
#10 D:\Program Files\XAMPP\htdocs\hoo\includes\content\WikitextContent.php(374): Parser->parse(string, Title, ParserOptions, boolean, boolean, integer)
#11 D:\Program Files\XAMPP\htdocs\hoo\includes\content\AbstractContent.php(590): WikitextContent->fillParserOutput(Title, integer, ParserOptions, boolean, ParserOutput)
#12 D:\Program Files\XAMPP\htdocs\hoo\includes\Revision\RenderedRevision.php(263): AbstractContent->getParserOutput(Title, integer, ParserOptions, boolean)
#13 D:\Program Files\XAMPP\htdocs\hoo\includes\Revision\RenderedRevision.php(235): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(WikitextContent, boolean)
#14 D:\Program Files\XAMPP\htdocs\hoo\includes\Revision\RevisionRenderer.php(215): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string)
#15 D:\Program Files\XAMPP\htdocs\hoo\includes\Revision\RevisionRenderer.php(152): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, array)
#16 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#17 D:\Program Files\XAMPP\htdocs\hoo\includes\Revision\RenderedRevision.php(197): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array)
#18 D:\Program Files\XAMPP\htdocs\hoo\includes\Storage\DerivedPageDataUpdater.php(1315): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#19 D:\Program Files\XAMPP\htdocs\hoo\includes\Storage\PageUpdater.php(752): MediaWiki\Storage\DerivedPageDataUpdater->getCanonicalParserOutput()
#20 D:\Program Files\XAMPP\htdocs\hoo\includes\page\WikiPage.php(2015): MediaWiki\Storage\PageUpdater->saveRevision(CommentStoreComment, integer)
#21 D:\Program Files\XAMPP\htdocs\hoo\includes\EditPage.php(2457): WikiPage->doEditContent(WikitextContent, CommentStoreComment, integer, boolean, User, string, array, integer)
#22 D:\Program Files\XAMPP\htdocs\hoo\includes\EditPage.php(1724): EditPage->internalAttemptSave(array, boolean)
#23 D:\Program Files\XAMPP\htdocs\hoo\includes\EditPage.php(680): EditPage->attemptSave(array)
#24 D:\Program Files\XAMPP\htdocs\hoo\includes\actions\EditAction.php(71): EditPage->edit()
#25 D:\Program Files\XAMPP\htdocs\hoo\includes\actions\SubmitAction.php(38): EditAction->show()
#26 D:\Program Files\XAMPP\htdocs\hoo\includes\MediaWiki.php(527): SubmitAction->show()
#27 D:\Program Files\XAMPP\htdocs\hoo\includes\MediaWiki.php(313): MediaWiki->performAction(Article, Title)
#28 D:\Program Files\XAMPP\htdocs\hoo\includes\MediaWiki.php(940): MediaWiki->performRequest()
#29 D:\Program Files\XAMPP\htdocs\hoo\includes\MediaWiki.php(543): MediaWiki->main()
#30 D:\Program Files\XAMPP\htdocs\hoo\index.php(53): MediaWiki->run()
#31 D:\Program Files\XAMPP\htdocs\hoo\index.php(46): wfIndexMain()
#32 {main}If I understand it correctly, it can be fixed via small patch of PF_ParserFunctions.php
diff --git a/includes/PF_ParserFunctions.php b/includes/PF_ParserFunctions.php index 97c28a8a..f8414cc0 100644 --- a/includes/PF_ParserFunctions.php +++ b/includes/PF_ParserFunctions.php @@ -380,7 +380,7 @@ class PFParserFunctions { $inFormName = str_replace( '\,', ',', $inFormName ); $formContents .= Html::hidden( "form", $inFormName ); } else { - $formInputAttrs['data-possible-forms'] = $listOfForms; + $formInputAttrs['data-possible-forms'] = implode( '|', $listOfForms ); } // Recreate the passed-in query string as a set of hidden
But after that we still would have empty first element
Probably that can be solved easily as well. Not sure why empty element was added in the first place
diff --git a/libs/PF_formInput.js b/libs/PF_formInput.js index 3ba6d4e0..a01417e9 100644 --- a/libs/PF_formInput.js +++ b/libs/PF_formInput.js @@ -13,7 +13,7 @@ var autocompleteWidgetConfig = {}; var possibleFormsStr = this.attr('data-possible-forms'); if ( possibleFormsStr !== undefined ) { - var menuOptions = [ {} ]; + var menuOptions = [ ]; var possibleForms = possibleFormsStr.split('|'); for ( var possibleForm of possibleForms ) { menuOptions.push( {
