| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
- /**
- * Author: lf
- * Blog: https://blog.feehi.com
- * Email: job@feehi.com
- * Created at: 2016-06-15 09:25
- */
- namespace backend\widgets;
- use Yii;
- use yii\base\Widget;
- use yii\helpers\Html;
- use yii\helpers\Url;
- class Bar extends Widget
- {
- public $buttons = [];
- public $options = [
- 'class' => 'mail-tools tooltip-demo m-t-md',
- ];
- public $template = "{refresh} {create} {delete}";
- /**
- * @inheritdoc
- */
- public function run()
- {
- $buttons = '';
- $this->initDefaultButtons();
- $buttons .= $this->renderDataCellContent();
- return "<div class='{$this->options['class']}'>{$buttons}</div>";
- }
- /**
- * @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('<i class="fa fa-refresh"></i> ' . 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('<i class="fa fa-plus"></i> ' . 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('<i class="fa fa-trash-o"></i> ' . 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',
- ]);
- };
- }
- }
- }
|