'mail-tools tooltip-demo m-t-md', ]; public $template = "{refresh} {create} {delete}"; /** * @inheritdoc */ public function run() { $buttons = ''; $this->initDefaultButtons(); $buttons .= $this->renderDataCellContent(); return "
"; } /** * @inheritdoc */ protected function renderDataCellContent() { return preg_replace_callback('/\\{([\w\-\/]+)\\}/', function ($matches) { $name = $matches[1]; if (isset($this->buttons[$name])) { return $this->buttons[$name] instanceof \Closure ? call_user_func($this->buttons[$name]) : $this->buttons[$name]; } else { return ''; } }, $this->template); } /** * 生成默认按钮 * */ protected function initDefaultButtons() { if (! isset($this->buttons['refresh'])) { $this->buttons['refresh'] = function () { return Html::a(' ' . Yii::t('app', 'Refresh'), Url::to(['refresh']), [ 'title' => Yii::t('app', 'Refresh'), 'data-pjax' => '0', 'class' => 'btn btn-white btn-sm refresh', ]); }; } if (! isset($this->buttons['create'])) { $this->buttons['create'] = function () { return Html::a(' ' . Yii::t('app', 'Create'), Url::to(['create']), [ 'title' => Yii::t('app', 'Create'), 'data-pjax' => '0', 'class' => 'btn btn-white btn-sm', ]); }; } if (! isset($this->buttons['delete'])) { $this->buttons['delete'] = function () { return Html::a(' ' . Yii::t('app', 'Delete'), Url::to(['delete']), [ 'title' => Yii::t('app', 'Delete'), 'data-pjax' => '0', 'data-confirm' => Yii::t('app', 'Really to delete?'), 'class' => 'btn btn-white btn-sm multi-operate', ]); }; } } }