http://www.mediawiki.org/wiki/Special:Code/MediaWiki/100512
Revision: 100512 Author: johnduhart Date: 2011-10-22 20:03:40 +0000 (Sat, 22 Oct 2011) Log Message: ----------- Adding functions to HTMLForm for setting the submitText and WrapperLegend to messages instead of having to use wfMsg every single time Modified Paths: -------------- trunk/phase3/includes/HTMLForm.php Modified: trunk/phase3/includes/HTMLForm.php =================================================================== --- trunk/phase3/includes/HTMLForm.php 2011-10-22 19:56:25 UTC (rev 100511) +++ trunk/phase3/includes/HTMLForm.php 2011-10-22 20:03:40 UTC (rev 100512) @@ -581,6 +581,14 @@ } /** + * Set the text for the submit button to a message + * @param $msg String message key + */ + public function setSubmitTextMsg( $msg ) { + return $this->setSubmitText( wfMsg( $msg ) ); + } + + /** * Get the text for the submit button, either customised or a default. * @return unknown_type */ @@ -619,6 +627,15 @@ public function setWrapperLegend( $legend ) { $this->mWrapperLegend = $legend; } /** + * Prompt the whole form to be wrapped in a <fieldset>, with + * this message as its <legend> element. + * @param $msg String message key + */ + public function setWrapperLegendMsg( $msg ) { + return $this->setWrapperLegend( wfMsg( $msg ) ); + } + + /** * Set the prefix for various default messages * TODO: currently only used for the <fieldset> legend on forms * with multiple sections; should be used elsewhre? @@ -1357,6 +1374,8 @@ return $p; } + print_r( $value ); + $validOptions = HTMLFormField::flattenOptions( $this->mParams['options'] ); if ( in_array( $value, $validOptions ) ) @@ -1382,10 +1401,54 @@ $select->setAttribute( 'disabled', 'disabled' ); } + if ( !empty( $this->mParams['multiple'] ) ) { + $select->setAttribute( 'name', $this->mName . '[]' ); + $select->setAttribute( 'multiple', 'multiple' ); + + if ( !empty( $this->mParams['size'] ) ) { + $select->setAttribute( 'size', $this->mParams['size'] ); + } + } + $select->addOptions( $this->mParams['options'] ); return $select->getHTML(); } + + /** + * @param $request WebRequest + * @return String + */ + function loadDataFromRequest( $request ) { + if ( $this->mParent->getMethod() == 'post' ) { + if( $request->wasPosted() ){ + # Checkboxes are just not added to the request arrays if they're not checked, + # so it's perfectly possible for there not to be an entry at all + return $request->getArray( $this->mName, array() ); + } else { + # That's ok, the user has not yet submitted the form, so show the defaults + return $this->getDefault(); + } + } else { + # This is the impossible case: if we look at $_GET and see no data for our + # field, is it because the user has not yet submitted the form, or that they + # have submitted it with all the options unchecked? We will have to assume the + # latter, which basically means that you can't specify 'positive' defaults + # for GET forms. + # @todo FIXME... + return $request->getArray( $this->mName, array() ); + } + } + + public static function keysAreValues( $array ) { + $resultArray = array(); + + foreach ( $array as $name => $value ) { + $resultArray[$value] = $value; + } + + return $resultArray; + } } /** @@ -1861,7 +1924,7 @@ $this->mParent->addHiddenField( $this->mName, - $this->mDefault, + $value, $params ); _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs