liyunfang/yii2-contextmenu

yii2 Extended for bootstrap-contextmenu plugin https://github.com/sydcanem/bootstrap-contextmenu

Installs: 21 093

Dependents: 1

Suggesters: 0

Security: 0

Stars: 23

Watchers: 5

Forks: 10

Open Issues: 2

Type:yii2-extension

1.0.5 2015-09-25 02:35 UTC

This package is auto-updated.

Last update: 2024-11-07 16:27:03 UTC


README

yii2 Extended for bootstrap-contextmenu

yii2 Extended for bootstrap-contextmenu plugin https://github.com/sydcanem/bootstrap-contextmenu

Gird right - click operation, you can remove the operation column

Effect picture 1

Effect picture 2

Installation

The preferred way to install this extension is through composer.

Either run

 composer require --prefer-dist liyunfang/yii2-contextmenu

or add

"liyunfang/yii2-contextmenu": "*"

to the require section of your composer.json file.

Requirements

This extension require twitter-bootstrap

Usage

Once the extension is installed, simply use it in your code by :

GridView options

 'columns' => [
    [
        'class' => \liyunfang\contextmenu\SerialColumn::className(),
        'contextMenu' => true,
        //'contextMenuAttribute' => 'id',
        'template' => '{view} {update} <li class="divider"></li> {story}', 
        'buttons' => [
             'story' => function ($url, $model) {
                 $title = Yii::t('app', 'Story');
                 $label = '<span class="glyphicon glyphicon-film"></span> ' . $title;
                 $url = \Yii::$app->getUrlManager()->createUrl(['/user/story','id' => $model->id]);
                 $options = ['tabindex' => '-1','title' => $title, 'data' => ['pjax' => '0' ,  'toggle' => 'tooltip']];
                 return '<li>' . Html::a($label, $url, $options) . '</li>' . PHP_EOL;
              }
         ],
   ],
    ....
],
'rowOptions' => function($model, $key, $index, $gird){
     $contextMenuId = $gird->columns[0]->contextMenuId;
     return ['data'=>[ 'toggle' => 'context','target'=> "#".$contextMenuId ]];
 },

or use KartikSerialColumn,But this requires the installation of grid Kartik extension. Please see https://github.com/kartik-v/yii2-grid

GridView options

 'columns' => [
    [
        'class' => \liyunfang\contextmenu\KartikSerialColumn::className(),
        'contextMenu' => true,
        //'contextMenuAttribute' => 'id',
        //'template' => '{view} {update}', 
        'contentOptions'=>['class'=>'kartik-sheet-style'],
        'headerOptions'=>['class'=>'kartik-sheet-style'],
        'urlCreator' => function($action, $model, $key, $index) { 
                if('update' == $action){
                    return \Yii::$app->getUrlManager()->createUrl(['/user/index','id' => $model->id]);
                }
                if('view' == $action){
                    return \Yii::$app->getUrlManager()->createUrl(['/user/view','id' => $model->id]);
                }
                return '#'; 
        },
   ],
    ....
],
'rowOptions' => function($model, $key, $index, $gird){
     $contextMenuId = $gird->columns[0]->contextMenuId;
     return ['data'=>[ 'toggle' => 'context','target'=> "#".$contextMenuId ]];
 },

该扩展为gird行右击菜单,可以省去操作列。 提供了继承yii2 grid的SerialColumn 和 继承 Kartik gird的SerialColumn。