2017 © Pedro Peláez
 

yii2-behavior yii2-behaviors

Collection of Yii2 behaviors

image

marqu3s/yii2-behaviors

Collection of Yii2 behaviors

  • Monday, January 18, 2016
  • by marqu3s
  • Repository
  • 4 Watchers
  • 9 Stars
  • 625 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 4 Forks
  • 2 Open issues
  • 4 Versions
  • 18 % Grown

The README.md

Yii2 Behaviors

Installation

The preferred way to install this extension is through composer. Either run:, (*1)

php composer.phar require --prefer-dist marqu3s/yii2-behaviors "*"

or add, (*2)

"marqu3s/yii2-behaviors": "*"

to the require section of your composer.json file., (*3)

Available Behaviors

GRID

SaveGridPaginationBehavior

Saves the grid's current page and pageSize in PHP Session so you can restore it later automatically when revisiting the page where the grid is., (*4)

Usage: On the model that will be used to generate the dataProvider that will populate the grid, attach this behavior., (*5)

public function behaviors()
{
  return [
    'saveGridPage' => [
      'class' => SaveGridPaginationBehavior::class,
      'sessionVarName' => self::class . 'GridPage',
      'sessionPageSizeName' => self::class . 'GridPageSize'
    ]
  ];
}

Then, on your search() method, set the grid current page using one of these:, (*6)

$dataProvider = new ActiveDataProvider(
  [
    'query' => $query,
    'sort' => ...,
    'pagination' => [
      'page' => $this->getGridPage(), // <- Prefered method
      'pageSize' => $this->getGridPageSize(),
      ...
    ]
  ]
);

OR, (*7)

$dataProvider->pagination->page = $this->getGridPage();

SaveGridFiltersBehavior

Saves the Grid's current filters in PHP Session on every request and use [[loadWithFilters()]] to get the current filters and assign it to the grid., (*8)

Usage: On the model that will be used to generate the dataProvider that will populate the grid, attach this behavior., (*9)

public function behaviors()
{
  return [
    'saveGridFilters' => [
      'class' => SaveGridFiltersBehavior::class,
      'sessionVarName' => self::class . 'GridFilters'
    ]
  ];
}

Then, on your search() method, replace $this->load() by $dataProvider = $this->loadWithFilters($params, $dataProvider):, (*10)

$dataProvider = new ActiveDataProvider(
  [
    'query' => $query,
    'sort' => ...,
    'pagination' => [
      'page' => $this->getGridPage(), // <- Prefered method
      'pageSize' => $this->getGridPageSize(),
      ...
    ]
  ]
);

//$this->load($params); // <-- Replace or comment this
$dataProvider = $this->loadWithFilters($params, $dataProvider); // From SaveGridFiltersBehavior

SaveGridOrderBehavior

Saves the Grid's current order criteria in PHP Session., (*11)

Usage: On the model that will be used to generate the dataProvider that will populate the grid, attach this behavior., (*12)

public function behaviors()
{
    return [
        'saveGridOrder' => [
            'class' => SaveGridOrderBehavior::class,
            'sessionVarName' => self::class . 'GridOrder'
        ]
    ];
}

Then, on yout search() method, set the grid current order using these code:, (*13)

$dataProvider->sort->attributeOrders = $this->getGridOrder();

ActiveRecord

LogChangesBehavior

Creates a log everytime a model is created or updated. The log entry contains all changed attributes, their old and new values., (*14)

Install: Create the necessary table by using the log_active_record.sql script or by copying the migration script to your migration directory and execute yii migrate. If you want to use your own table, with your own naming conventions, you can customize the behaviour with your table name and columns., (*15)

Usage: add it to the behaviors() method of your ActiveRecord model and customize it using it´s attributes., (*16)

OPTIONAL: You may implement LogChangesInterface in your ActiveRecord and create a custom getDeletedRecordText() that returns a custom log message when a record is deleted., (*17)

public function behaviors()
{
     return [
         'LogChanges' => [
             'class' => LogChangesBehavior::class,

             // Customization
             'valuesReplacement' => [
                 'active' => [
                     0 => 'No',
                     1 => 'Yes',
                 ]
             ],
             'currencyAttributes' => [
                 'subtotal', 'total', 'tax'
             ]
         ],
     ];
}

That's all!, (*18)

The Versions

18/01 2016

dev-master

9999999-dev https://github.com/marqu3s/yii2-behaviors

Collection of Yii2 behaviors

  Sources   Download

MIT

The Requires

 

by Joao Marques

yii2 behavior

18/01 2016

0.1.0

0.1.0.0 https://github.com/marqu3s/yii2-behaviors

Colletion of Yii2 behaviors

  Sources   Download

MIT

The Requires

 

by Joao Marques

yii2 behavior

18/01 2016

v0.2.0

0.2.0.0 https://github.com/marqu3s/yii2-behaviors

Colletion of Yii2 behaviors

  Sources   Download

MIT

The Requires

 

by Joao Marques

yii2 behavior

18/01 2016

v0.2.1

0.2.1.0 https://github.com/marqu3s/yii2-behaviors

Colletion of Yii2 behaviors

  Sources   Download

MIT

The Requires

 

by Joao Marques

yii2 behavior