2017 © Pedro Peláez
 

yii2-extension yii2-balance

its a balance module

image

halumein/yii2-balance

its a balance module

  • Tuesday, August 1, 2017
  • by halumein
  • Repository
  • 1 Watchers
  • 0 Stars
  • 16 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Yii2-balance

Это модуль для реализации кошелька пользователя. Кошелек создается автоматически для нового пользователя, так же можно создать кошелек для уже существующего пользователя, или для всех пользователей, у которых еще нет кошелька, по нажатию на соответствующую кнопку на странице кошельков пользователей., (*1)

Установка

Выполнить команду, (*2)

php composer require halumein/yii2-balance "*"

Или добавить в composer.json, (*3)

"halumein/yii2-balance": "*",

И выполнить, (*4)

php composer update

Далее, мигрируем базу:, (*5)

php yii migrate --migrationPath=vendor/halumein/yii2-balance/migrations

Подключение и настройка

Для пользования необходимо подключить модуль в конфиге:, (*6)

```'php' 'modules' => [ 'balance' => [ 'class' => 'halumein\balance\Module', 'adminRoles' => ['superadmin', 'administrator'], 'otherRoles' => ['manager', 'user'], 'currencyName' => 'баллов' ], ... ], (*7)

Подключить компонент:
```'php'
    'components' => [
    ...
        'balance' => [
            'class' => 'halumein\balance\Balance'
        ],
    ...
    ]

Доступные следующие методы (подробнее см. компонент balance):, (*8)

    // начислить 500 баллов на кошелёк с id 12
    \Yii::$app->balance->addFounds(12, 500, 'Начисление бонусных баллов по акции', 123456);
    \Yii::$app->balance->removeFounds(12, 250, 'Оплата заказа 1234125');

Для того, чтобы кошелек автоматически создавался для пользователя нужно модифицировать стандартную модель 'User'(commmon\models\User) следующим образом:, (*9)

```'php' ... use halumein\balance\models\Score; ... public function afterSave($p1, $p2) { $findUser = Score::find()->where(['user_id' => $this->getId()])->one(); if (!$findUser){ $userBalance = new Score; $userBalance->user_id = $this->getId(); $userBalance->balance = 0;, (*10)

        if($userBalance->validate()){
            return $userBalance->save();
        } else die('Uh-oh, somethings went wrong!');
    }
}
В этой же модели (ниже) необходимо добавить метод getScore, который отвечает за получение текущего остатка пользователя:

```'php'
public function getScore($userId = null)
    {
            if ($userId){
                return $userScore = Score::find()->where(['user_id' => $userId])->one()->balance;
            }
            return $userScore = Score::find()->where(['user_id' => Yii::$app->user->id])->one()->balance;
    }

Если модель подключаемого User не соответствует 'common\models\User' то ее необходимо задать в Модуле(Module.php) изменив переменную $userModule; Для облегчения переходов и информатирования пользователя о количестве баланса предусмотренны следующие виджеты: 'php' <?php use halumein\balance\widgets\BalanceWidget; //Виджет для вывода пользователю его баланса со ссылкой на историю его транзакций use halumein\balance\widgets\ScoreButtonWidget; //Виджет для перехода на страницу кошельков use halumein\balance\widgets\TransactionButtonWidget; //Виджет для перехода на страницу транзакций ... echo BalanceWidget::widget(); echo ScoreButtonWidget::widget(); echo TransactionButtonWidget::widget(); ?>, (*11)

The Versions

01/08 2017

dev-master

9999999-dev https://github.com/halumein/yii2-balance

its a balance module

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Komarov Vlad

yii2 module yii 2 application balance halumein