*/
class Multiaction extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Action
{
/**
* Renders column
*
* @param \Magento\Framework\DataObject $row
* @return string
*/
public function render(\Magento\Framework\DataObject $row)
{
$html = '';
$actions = $this->getColumn()->getActions();
if (!empty($actions) && is_array($actions)) {
$links = [];
foreach ($actions as $action) {
if (is_array($action)) {
$link = $this->_toLinkHtml($action, $row);
if ($link) {
$links[] = $link;
}
}
}
$html = implode('
', $links);
}
if ($html == '') {
$html = ' ';
}
return $html;
}
/**
* Render single action as link html
*
* @param array $action
* @param \Magento\Framework\DataObject $row
* @return string|false
*/
protected function _toLinkHtml($action, \Magento\Framework\DataObject $row)
{
$product = $row->getProduct();
if (isset($action['process']) && $action['process'] == 'configurable') {
if ($product->canConfigure()) {
$style = '';
$onClick = sprintf('onclick="return %s.configureItem(%s)"', $action['control_object'], $row->getId());
return sprintf('%s', $action['url'], $style, $onClick, $action['caption']);
} else {
return false;
}
} else {
return parent::_toLinkHtml($action, $row);
}
}
}