UploadSourceField.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * This program is free software; you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation; either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License along
  14. * with this program; if not, write to the Free Software Foundation, Inc.,
  15. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  16. * http://www.gnu.org/copyleft/gpl.html
  17. *
  18. * @file
  19. */
  20. /**
  21. * A form field that contains a radio box in the label
  22. */
  23. class UploadSourceField extends HTMLTextField {
  24. /**
  25. * @param array $cellAttributes
  26. * @return string
  27. */
  28. function getLabelHtml( $cellAttributes = [] ) {
  29. $id = $this->mParams['id'];
  30. $label = Html::rawElement( 'label', [ 'for' => $id ], $this->mLabel );
  31. if ( !empty( $this->mParams['radio'] ) ) {
  32. $radioId = $this->mParams['radio-id'] ??
  33. // Old way. For the benefit of extensions that do not define
  34. // the 'radio-id' key.
  35. 'wpSourceType' . $this->mParams['upload-type'];
  36. $attribs = [
  37. 'name' => 'wpSourceType',
  38. 'type' => 'radio',
  39. 'id' => $radioId,
  40. 'value' => $this->mParams['upload-type'],
  41. ];
  42. if ( !empty( $this->mParams['checked'] ) ) {
  43. $attribs['checked'] = 'checked';
  44. }
  45. $label .= Html::element( 'input', $attribs );
  46. }
  47. return Html::rawElement( 'td', [ 'class' => 'mw-label' ] + $cellAttributes, $label );
  48. }
  49. /**
  50. * @return int
  51. */
  52. function getSize() {
  53. return $this->mParams['size'] ?? 60;
  54. }
  55. }