protected $mShowEmptyLabels = true;
/**
- * @var HTMLForm
+ * @var HTMLForm|null
*/
public $mParent;
$tmp = $m[1];
}
if ( substr( $tmp, 0, 2 ) == 'wp' &&
- !isset( $alldata[$tmp] ) &&
- isset( $alldata[substr( $tmp, 2 )] )
+ !array_key_exists( $tmp, $alldata ) &&
+ array_key_exists( substr( $tmp, 2 ), $alldata )
) {
// Adjust for name mangling.
$tmp = substr( $tmp, 2 );
$data = $alldata;
while ( $keys ) {
$key = array_shift( $keys );
- if ( !is_array( $data ) || !isset( $data[$key] ) ) {
+ if ( !is_array( $data ) || !array_key_exists( $key, $data ) ) {
continue 2;
}
$data = $data[$key];
* @return Message
*/
protected function getMessage( $value ) {
- if ( $value instanceof Message ) {
- return $value;
- } elseif ( $value instanceof MessageSpecifier ) {
- return Message::newFromKey( $value );
- } elseif ( is_array( $value ) ) {
- $msg = array_shift( $value );
- return $this->msg( $msg, $value );
- } else {
- return $this->msg( $value, [] );
+ $message = Message::newFromSpecifier( $value );
+
+ if ( $this->mParent ) {
+ $message->setContext( $this->mParent );
}
+
+ return $message;
+ }
+
+ /**
+ * Skip this field when collecting data.
+ * @param WebRequest $request
+ * @return bool
+ * @since 1.27
+ */
+ public function skipLoadData( $request ) {
+ return !empty( $this->mParams['nodata'] );
}
}