User:Daniel5000/SemanticForms-HideAdditionalQuery

This patch adds an additional parameter to the info tag to hide the additional query form after a form has been submitted. This could be useful if you want to split a large query into many smaller queries and connect them via.

includes/SF_FormPrinter.php
Modify includes/SF_FormPrinter.php:

Replace this section (around line 1501):

} elseif ( $tag == 'query form at top' ) { // TODO - this should be made a field of							// some non-static class that actually // prints the form, instead of requiring // a global variable. global $sfgRunQueryFormAtTop; $sfgRunQueryFormAtTop = true;

with this extended section:

} elseif ( $tag == 'query form at top' ) { // TODO - this should be made a field of							// some non-static class that actually // prints the form, instead of requiring // a global variable. global $sfgRunQueryFormAtTop; $sfgRunQueryFormAtTop = true; } elseif ( $tag == 'hide additional query' ) { global $sfgHideAdditionalQuery; $sfgHideAdditionalQuery = true; }

specials/SF_RunQuery.php
At about line 34, replace:

function printPage( $form_name, $embedded = false ) { global $wgOut, $wgRequest, $sfgFormPrinter, $wgParser, $sfgRunQueryFormAtTop; global $wgUser, $wgTitle;

with:

function printPage( $form_name, $embedded = false ) { global $wgOut, $wgRequest, $sfgFormPrinter, $wgParser, $sfgRunQueryFormAtTop, $sfgHideAdditionalQuery; global $wgUser, $wgTitle;

and about line 125, replace:

// Either don't display a query form at all, or display the // query form at the top, and the results at the bottom, or the // other way around, depending on the settings. if ( $wgRequest->getVal( 'additionalquery' ) == 'false' ) { $text .= $resultsText; } elseif ( $sfgRunQueryFormAtTop ) { $text .= $fullFormText; $text .= $dividerText; $text .= $resultsText; } else { $text .= $resultsText; $text .= $additionalQueryHeader; $text .= $fullFormText; }

with:

// Either don't display a query form at all, or display the // query form at the top, and the results at the bottom, or the // other way around, depending on the settings. if ( $wgRequest->getVal( 'additionalquery' ) == 'false' ) { $text .= $resultsText; } elseif ( $sfgHideAdditionalQuery and $form_submitted ) { $text .= $resultsText; } elseif ( $sfgRunQueryFormAtTop ) { $text .= $fullFormText; $text .= $dividerText; $text .= $resultsText; } else { $text .= $resultsText; $text .= $additionalQueryHeader; $text .= $fullFormText; }