banners.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. /**
  3. * Author: lf
  4. * Blog: https://blog.feehi.com
  5. * Email: job@feehi.com
  6. * Created at: 2017-12-03 23:03
  7. */
  8. /**
  9. * @var $this yii\web\View
  10. * @var $dataProvider yii\data\ArrayDataProvider
  11. * @var $searchModel backend\models\search\MenuSearch
  12. * @var $model backend\models\form\BannerForm
  13. * @var $bannerType common\models\Options
  14. */
  15. use backend\grid\GridView;
  16. use backend\grid\SortColumn;
  17. use backend\grid\StatusColumn;
  18. use backend\widgets\Bar;
  19. use yii\helpers\Html;
  20. use yii\helpers\Url;
  21. use backend\grid\CheckboxColumn;
  22. use backend\grid\ActionColumn;
  23. $this->title = "Banners";
  24. $this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Banner Types'), 'url' => Url::to(['index'])];
  25. $this->params['breadcrumbs'][] = Yii::t('app', 'Banner') . ' (' . $bannerType->tips . "-{$bannerType->name})";
  26. ?>
  27. <div class="row">
  28. <div class="col-sm-12">
  29. <div class="ibox">
  30. <?= $this->render('/widgets/_ibox-title') ?>
  31. <div class="ibox-content">
  32. <?= Bar::widget([
  33. 'buttons' => [
  34. 'create' => function () {
  35. return Html::a('<i class="fa fa-plus"></i> ' . Yii::t('app', 'Create'), Url::to(['banner-create', 'id' => Yii::$app->getRequest()->get('id')]), [
  36. 'title' => Yii::t('app', 'Create'),
  37. 'data-pjax' => '0',
  38. 'class' => 'btn btn-white btn-sm',
  39. ]);
  40. },
  41. 'update' => function () {
  42. return Html::a('<i class="fa fa-sort-numeric-desc"></i> ' . Yii::t('app', 'Sort'), Url::to(['banner-sort', 'id' => Yii::$app->getRequest()->get('id')]), [
  43. 'title' => Yii::t('app', 'Sort'),
  44. 'data-pjax' => '0',
  45. 'param-sign'=>'sign',
  46. 'class' => 'btn btn-white btn-sm sort',
  47. ]);
  48. },
  49. 'delete' => function () {
  50. return Html::a('<i class="fa fa-trash-o"></i> ' . Yii::t('app', 'Delete'), Url::to(['banner-delete', 'id' => Yii::$app->getRequest()->get('id')]), [
  51. 'title' => Yii::t('app', 'Delete'),
  52. 'data-pjax' => '0',
  53. 'data-confirm' => Yii::t('app', 'Really to delete?'),
  54. 'param-sign'=>'sign',
  55. 'class' => 'btn btn-white btn-sm multi-operate',
  56. ]);
  57. },
  58. ]
  59. ])?>
  60. <?= GridView::widget([
  61. 'dataProvider' => $dataProvider,
  62. 'layout' => '{items}',
  63. 'columns' => [
  64. [
  65. 'class' => CheckboxColumn::className(),
  66. 'checkboxOptions' => function($model){
  67. return ['value' => $model->sign];
  68. }
  69. ],
  70. [
  71. 'attribute' => 'img',
  72. 'label' => Yii::t('app', 'Image'),
  73. 'format' => 'raw',
  74. 'value' => function($model){
  75. return "<img class='img-responsive' src='{$model->img}'>";
  76. }
  77. ],
  78. [
  79. 'attribute' => 'link',
  80. 'label' => Yii::t('app', 'Jump Link'),
  81. ],
  82. [
  83. 'attribute' => 'desc',
  84. 'label' => Yii::t('app', 'Description'),
  85. ],
  86. [
  87. 'class' => SortColumn::className(),
  88. 'label' => Yii::t('app', 'Sort'),
  89. 'primaryKey' => function($model) use($bannerType){
  90. return ['id'=>$bannerType->id, "sign" => $model->sign];
  91. },
  92. 'action' => Url::to(['banner-sort', 'id'=>Yii::$app->getRequest()->get('id')]),
  93. ],
  94. [
  95. 'class' => StatusColumn::className(),
  96. 'label' => Yii::t('app', 'Status'),
  97. 'url' => function($model){
  98. return Url::to(['banner-update', 'id' => $model['id'], 'sign'=>$model['sign']]);
  99. }
  100. ],
  101. [
  102. 'class' => ActionColumn::className(),
  103. 'width' => '190px',
  104. 'buttons' => [
  105. 'view-layer' => function ($url, $model, $key, $index, $gridView) use($bannerType) {
  106. return Html::a('<i class="fa fa-folder"></i> ', 'javascript:void(0)', [
  107. 'title' => Yii::t('yii', 'View'),
  108. 'onclick' => "viewLayer('" . Url::toRoute(['banner-view-layer', 'id'=>$bannerType->id, 'sign'=>$model->sign]) . "',$(this))",
  109. 'data-pjax' => '0',
  110. 'class' => 'btn-sm',
  111. 'url' => Url::toRoute(['banner-view-layer', 'id'=>$bannerType->id, 'sign'=>$model->sign]),
  112. ]);
  113. },
  114. 'update' => function ($url, $model, $key, $index, $gridView) use($bannerType){
  115. return Html::a('<i class="fa fa-edit"></i> ', Url::toRoute(['banner-update', 'id'=>$bannerType->id, 'sign'=>$model->sign]), [
  116. 'title' => Yii::t('app', 'Update'),
  117. 'data-pjax' => '0',
  118. 'class' => 'btn-sm',
  119. ]);
  120. },
  121. 'delete' => function ($url, $model, $key, $index, $gridView) use($bannerType){
  122. return Html::a('<i class="glyphicon glyphicon-trash" aria-hidden="true"></i> ', Url::toRoute(['banner-delete', 'id'=>$bannerType->id, 'sign'=>$model->sign]), [
  123. 'title' => Yii::t('app', 'Delete'),
  124. 'data-confirm' => Yii::t('app', 'Are you sure you want to delete this item?'),
  125. 'data-method' => 'post',
  126. 'data-pjax' => '0',
  127. 'data-params' => json_encode(['sign'=>$model->sign]),
  128. 'class' => 'btn-sm',
  129. 'url' => Url::toRoute(['banner-delete', 'id'=>$bannerType->id, 'sign'=>$model->sign]),
  130. ]);
  131. }
  132. ],
  133. ]
  134. ]
  135. ]) ?>
  136. </div>
  137. </div>
  138. </div>
  139. </div>