public function addColumn($name, $title = null, $buttontext = null, $grid = null)
{
if ($grid === null) {
$grid = $this->owner;
}
/** @type Grid $this->owner */
/** @type Grid $grid */
if (!is_array($buttontext)) {
$buttontext = array();
}
if (!$buttontext['descr']) {
$buttontext['descr'] = $title ?: ucwords(str_replace('_', ' ', $name));
}
$icon = '';
if ($buttontext['icon']) {
if ($buttontext['icon'][0] != '<') {
$icon .= '<i class="icon-' . $buttontext['icon'] . '"></i>';
} else {
$icon .= $buttontext['icon'];
}
$icon .= ' ';
}
$grid->addColumn('template', $name, $buttontext ?: $title);
$grid->setTemplate('<button type="button" class="atk-button-small pb_' . $name . '">' . $icon . $this->app->encodeHtmlChars($buttontext['descr']) . '</button>');
$grid->columns[$name]['thparam'] .= ' style="width: 40px; text-align: center"';
//$grid->js(true)->_selector('#'.$grid->name.' .pb_'.$name)->button();
$t = $this->type;
$grid->js('click')->_selector('#' . $grid->name . ' .pb_' . $name)->univ()->{$t}($title, array($this->getURL($name), $this->name . '_id' => $grid->js()->_selectorThis()->closest('tr')->attr('data-id')), $this->frame_options);
return $this;
}