54 'action' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Action::class,
55 'button' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Button::class,
56 'checkbox' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Checkbox::class,
57 'concat' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Concat::class,
58 'country' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Country::class,
59 'currency' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Currency::class,
60 'date' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Date::class,
61 'datetime' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Datetime::class,
62 'default' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Text::class,
63 'draggable-handle' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\DraggableHandle::class,
64 'input' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Input::class,
65 'massaction' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Massaction::class,
66 'number' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Number::class,
67 'options' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Options::class,
68 'price' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Price::class,
69 'radio' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Radio::class,
70 'select' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Select::class,
71 'store' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Store::class,
72 'text' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Longtext::class,
73 'wrapline' => \Magento\Backend\Block\Widget\Grid\Column\Renderer\Wrapline::class,
82 'datetime' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Datetime::class,
83 'date' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Date::class,
84 'range' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Range::class,
85 'number' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Range::class,
86 'currency' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Range::class,
87 'price' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Price::class,
88 'country' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Country::class,
89 'options' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Select::class,
90 'massaction' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Massaction::class,
91 'checkbox' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Checkbox::class,
92 'radio' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Radio::class,
93 'skip-list' => \Magento\Backend\Block\Widget\Grid\Column\Filter\SkipList::class,
94 'store' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Store::class,
95 'theme' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Theme::class,
96 'default' => \Magento\Backend\Block\Widget\Grid\Column\Filter\Text::class,
110 if ($this->
hasData(
'grouped')) {
111 $this->_isGrouped = (bool)$this->
getData(
'grouped');
114 parent::_construct();
135 $this->_grid = $grid;
158 return $this->
getGrid()->getId() .
'_' . $this->
getGrid()->getVarNameFilter() .
'_' . $this->
getId();
187 if ($this->_cssClass ===
null) {
188 if ($this->getAlign()) {
189 $this->_cssClass .=
'a-' . $this->getAlign();
192 if ($this->
hasData(
'column_css_class')) {
193 $this->_cssClass .=
' ' . $this->
getData(
'column_css_class');
195 if ($this->getEditable()) {
196 $this->_cssClass .=
' editable';
198 $this->_cssClass .=
' col-' . $this->
getId();
242 return $this->
hasData(
'sortable') ? (bool)$this->
getData(
'sortable') :
true;
253 $classes = $this->
getData(
'header_css_class') ? $this->
getData(
'header_css_class') .
' ' :
'';
265 $str .=
' class="' .
$class .
'"';
279 $renderedValue = $this->
getRenderer()->render($row);
280 if ($this->getHtmlDecorators()) {
281 $renderedValue = $this->
_applyDecorators($renderedValue, $this->getHtmlDecorators());
291 $frameCallback = $this->getFrameCallback();
292 if (is_array($frameCallback)) {
293 $this->validateFrameCallback($frameCallback);
297 return $renderedValue;
308 private function validateFrameCallback(array $callback)
310 if (!is_object($callback[0]) || !$callback[0] instanceof
Widget) {
311 throw new \InvalidArgumentException(
312 "Frame callback host must be instance of Magento\\Backend\\Block\\Widget" 325 $renderedValue = $this->
getRenderer()->renderExport($row);
334 $frameCallback = $this->getFrameCallback();
335 if (is_array($frameCallback)) {
336 $this->validateFrameCallback($frameCallback);
340 return $renderedValue;
350 if ($this->getHeaderExport()) {
351 return $this->getHeaderExport();
353 return $this->getHeader();
365 if (!is_array($decorators)) {
366 if (is_string($decorators)) {
367 $decorators = explode(
' ', $decorators);
370 if (!is_array($decorators) || empty($decorators)) {
373 switch (array_shift($decorators)) {
378 if (!empty($decorators)) {
392 $this->_renderer = $renderer;
415 $type = strtolower($this->getType());
416 $rendererClass = isset(
417 $this->_rendererTypes[
$type]
418 ) ? $this->_rendererTypes[
$type] : $this->_rendererTypes[
'default'];
420 return $rendererClass;
430 if ($this->_renderer ===
null) {
431 $rendererClass = $this->
getData(
'renderer');
432 if (empty($rendererClass)) {
435 $this->_renderer = $this->
getLayout()->createBlock($rendererClass)->setColumn($this);
448 $filterBlock = $this->
getLayout()->createBlock($filterClass);
449 $filterBlock->setColumn($this);
450 $this->_filter = $filterBlock;
472 $type = $this->getFilterType() ? strtolower($this->getFilterType()) : strtolower($this->getType());
473 $filterClass = isset($this->_filterTypes[
$type]) ? $this->_filterTypes[
$type] : $this->_filterTypes[
'default'];
485 if ($this->_filter ===
null) {
486 $filterClass = $this->
getData(
'filter');
487 if (
false === (
bool)$filterClass &&
false === ($filterClass ===
null)) {
492 if ($filterClass ===
false) {
496 $this->_filter = $this->
getLayout()->createBlock($filterClass)->setColumn($this);
510 $output = $filter ? $filter->getHtml() :
' ';
getData($key='', $index=null)
call_user_func($callable, $param)
$_option $_optionId $class
setData($key, $value=null)