$this->mSubmitText = $t;
}
+ /**
+ * 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
*/
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
return $p;
}
+ print_r( $value );
+
$validOptions = HTMLFormField::flattenOptions( $this->mParams['options'] );
if ( in_array( $value, $validOptions ) )
$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;
+ }
}
/**
$this->mParent->addHiddenField(
$this->mName,
- $this->mDefault,
+ $value,
$params
);