Skip to content

yii2 Extended for bootstrap-contextmenu

Notifications You must be signed in to change notification settings

Jonyx4/yii2-contextmenu

 
 

Repository files navigation

yii2-contextmenu

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 ]];
 },

Forked to add a simple fix for boostrap 4 support (as "open" class does not work). Added class "show" to dropdown div.

About

yii2 Extended for bootstrap-contextmenu

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%