Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 9
CRAP
0.00% covered (danger)
0.00%
0 / 1
HTMLHiddenField
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 9
156
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
 getHiddenFieldData
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
12
 getTableRow
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 getDiv
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getRaw
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getCodex
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getInputHTML
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 canDisplayErrors
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 hasVisibleOutput
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace MediaWiki\HTMLForm\Field;
4
5use MediaWiki\HTMLForm\HTMLFormField;
6
7/*
8 * @stable to extend
9 */
10class HTMLHiddenField extends HTMLFormField {
11    protected $outputAsDefault = true;
12
13    /**
14     * @stable to call
15     * @inheritDoc
16     */
17    public function __construct( $params ) {
18        parent::__construct( $params );
19
20        if ( isset( $this->mParams['output-as-default'] ) ) {
21            $this->outputAsDefault = (bool)$this->mParams['output-as-default'];
22        }
23
24        # Per HTML5 spec, hidden fields cannot be 'required'
25        # https://www.w3.org/TR/html5/forms.html#hidden-state-%28type=hidden%29
26        unset( $this->mParams['required'] );
27    }
28
29    public function getHiddenFieldData( $value ) {
30        $params = [];
31        if ( $this->mID ) {
32            $params['id'] = $this->mID;
33        }
34
35        if ( $this->outputAsDefault ) {
36            $value = $this->mDefault;
37        }
38
39        return [ $this->mName, $value, $params ];
40    }
41
42    public function getTableRow( $value ) {
43        [ $name, $value, $params ] = $this->getHiddenFieldData( $value );
44        $this->mParent->addHiddenField( $name, $value, $params );
45        return '';
46    }
47
48    /**
49     * @param string $value
50     * @return string
51     * @since 1.20
52     */
53    public function getDiv( $value ) {
54        return $this->getTableRow( $value );
55    }
56
57    /**
58     * @param string $value
59     * @return string
60     * @since 1.20
61     */
62    public function getRaw( $value ) {
63        return $this->getTableRow( $value );
64    }
65
66    public function getCodex( $value ) {
67        return $this->getTableRow( $value );
68    }
69
70    public function getInputHTML( $value ) {
71        return '';
72    }
73
74    public function canDisplayErrors() {
75        return false;
76    }
77
78    public function hasVisibleOutput() {
79        return false;
80    }
81}
82
83/** @deprecated class alias since 1.42 */
84class_alias( HTMLHiddenField::class, 'HTMLHiddenField' );