Radio.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Block\Widget\Grid\Column\Renderer;
  7. /**
  8. * Grid radiogroup column renderer
  9. *
  10. * @api
  11. * @deprecated 100.2.0 in favour of UI component implementation
  12. * @since 100.0.2
  13. */
  14. class Radio extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
  15. {
  16. /**
  17. * @var int
  18. */
  19. protected $_defaultWidth = 55;
  20. /**
  21. * @var array
  22. */
  23. protected $_values;
  24. /**
  25. * @var \Magento\Backend\Block\Widget\Grid\Column\Renderer\Options\Converter
  26. */
  27. protected $_converter;
  28. /**
  29. * @param \Magento\Backend\Block\Context $context
  30. * @param \Magento\Backend\Block\Widget\Grid\Column\Renderer\Options\Converter $converter
  31. * @param array $data
  32. */
  33. public function __construct(
  34. \Magento\Backend\Block\Context $context,
  35. \Magento\Backend\Block\Widget\Grid\Column\Renderer\Options\Converter $converter,
  36. array $data = []
  37. ) {
  38. parent::__construct($context, $data);
  39. $this->_converter = $converter;
  40. }
  41. /**
  42. * Prepare data for renderer
  43. *
  44. * @return array
  45. */
  46. protected function _getValues()
  47. {
  48. $values = $this->getColumn()->getValues();
  49. return $this->_converter->toFlatArray($values);
  50. }
  51. /**
  52. * Returns all values for the column
  53. *
  54. * @return array
  55. */
  56. public function getValues()
  57. {
  58. if ($this->_values === null) {
  59. $this->_values = $this->getColumn()->getData('values') ? $this->getColumn()->getData('values') : [];
  60. }
  61. return $this->_values;
  62. }
  63. /**
  64. * Renders grid column
  65. *
  66. * @param \Magento\Framework\DataObject $row
  67. * @return string
  68. */
  69. public function render(\Magento\Framework\DataObject $row)
  70. {
  71. $values = $this->_getValues();
  72. $value = $row->getData($this->getColumn()->getIndex());
  73. if (is_array($values)) {
  74. $checked = in_array($value, $values) ? ' checked="checked"' : '';
  75. } else {
  76. $checked = $value === $this->getColumn()->getValue() ? ' checked="checked"' : '';
  77. }
  78. $html = '<input type="radio" name="' . $this->getColumn()->getHtmlName() . '" ';
  79. $html .= 'value="' . $row->getId() . '" class="radio"' . $checked . '/>';
  80. return $html;
  81. }
  82. }