public function oAuthSuccess($client)
 {
     // get user data from client
     $userAttributes = $client->getUserAttributes();
     $email = $userAttributes['emails'][0]['value'];
     $player = Player::findByEmail($email);
     if ($player == null) {
         $player = new Player();
         $player->email = $email;
         if (isset($userAttributes['image']) && isset($userAttributes['image']['url'])) {
             $photo = explode('?', $userAttributes['image']['url'])[0];
             $player->photo = $photo;
         }
         if (isset($userAttributes['name'])) {
             $player->first_name = $userAttributes['name']['givenName'];
             $player->last_name = $userAttributes['name']['familyName'];
         }
         $player->generateAuthKey();
         $player->generateAccessToken();
         $player->save();
     }
     if (Yii::$app->user->login($player, 3600 * 24 * 30)) {
         return $this->redirect(Url::previous());
     }
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Forward::find();
     $forwardTable = Forward::tableName();
     $playerTable = Player::tableName();
     $teamTable = Team::tableName();
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 50], 'sort' => ['defaultOrder' => ['goals' => SORT_DESC, 'penalty' => SORT_DESC]]]);
     // enable sorting for the related columns
     $addSortAttributes = ["player.lastname", "team.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$forwardTable}id" => $this->id, 'goals' => $this->goals, 'penalty' => $this->penalty, 'matches' => $this->matches, 'team_id' => $this->team_id, 'player_id' => $this->player_id, 'season_id' => $this->season_id]);
     $query->andFilterWhere(['like', 'team.name', $this->getAttribute('team.name')])->andFilterWhere(['like', 'player.lastname', $this->getAttribute('player.lastname')]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Membership::find();
     $membershipTable = Membership::tableName();
     $teamTable = Team::tableName();
     $playerTable = Player::tableName();
     $ampluaTable = Amplua::tableName();
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $query->joinWith(['amplua' => function ($query) use($ampluaTable) {
         $query->from(['amplua' => $ampluaTable]);
     }]);
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 20]]);
     // enable sorting for the related columns
     $addSortAttributes = ["team.name", "amplua.name", "player.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$membershipTable}.id" => $this->id, 'command_id' => $this->command_id, 'player_id' => $this->player_id, 'number' => $this->number, 'amplua_id' => $this->amplua_id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'team.name', $this->getAttribute('team.name')]);
     $query->andFilterWhere(['like', 'player.lastname', $this->getAttribute('player.name')]);
     $query->andFilterWhere(['like', 'amplua.name', $this->getAttribute('amplua.name')]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Transfer::find();
     $transferTable = Transfer::tableName();
     // set up query with relation to `player.lastname`
     $playerTable = Player::tableName();
     // set up query with relation to `teamFrom.name` and `teamTo.name`
     $teamTable = Team::tableName();
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $query->joinWith(['teamFrom' => function ($query) use($teamTable) {
         $query->from(['teamFrom' => $teamTable]);
     }]);
     $query->joinWith(['teamTo' => function ($query) use($teamTable) {
         $query->from(['teamTo' => $teamTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     // enable sorting for the related columns
     $addSortAttributes = ["player.lastname", "teamFrom.name", "teamTo.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$transferTable}.id" => $this->id, 'season_id' => $this->season_id, 'transfer_type_id' => $this->transfer_type_id, 'player_id' => $this->player_id, 'probability' => $this->probability, 'command_from_id' => $this->command_from_id, 'command_to_id' => $this->command_to_id, 'is_active' => $this->is_active, 'contract_date' => $this->contract_date, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'sum', $this->sum])->andFilterWhere(['like', 'clubs', $this->clubs])->andFilterWhere(['like', 'others', $this->others])->andFilterWhere(['like', 'teamFrom.name', $this->getAttribute('teamFrom.name')])->andFilterWhere(['like', 'teamTo.name', $this->getAttribute('teamTo.name')])->andFilterWhere(['like', 'player.lastname', $this->getAttribute('player.lastname')]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Contract::find();
     $contractTable = Contract::tableName();
     $playerTable = Player::tableName();
     $teamTable = Team::tableName();
     $seasonTable = Season::tableName();
     $ampluaTable = Amplua::tableName();
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $query->joinWith(['teamFrom' => function ($query) use($teamTable) {
         $query->from(['teamFrom' => $teamTable]);
     }]);
     $query->joinWith(['season' => function ($query) use($seasonTable) {
         $query->from(['season' => $seasonTable]);
     }]);
     $query->joinWith(['amplua' => function ($query) use($ampluaTable) {
         $query->from(['amplua' => $ampluaTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     $addSortAttributes = ["player.lastname", "teamFrom.name", "team.name", "season.name", "amplua.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$contractTable}.id" => $this->id, 'command_id' => $this->command_id, 'season_id' => $this->season_id, 'amplua_id' => $this->amplua_id, 'number' => $this->number, 'command_from_id' => $this->command_from_id, 'year_from' => $this->year_from, 'year_till' => $this->year_till, 'matches' => $this->matches, 'goals' => $this->goals, 'is_active' => $this->is_active, 'debut' => $this->debut, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'teamFrom.name', $this->getAttribute('teamFrom.name')])->andFilterWhere(['like', 'team.name', $this->getAttribute('team.name')])->andFilterWhere(['like', 'player.lastname', $this->getAttribute('player.lastname')])->andFilterWhere(['like', 'season.name', $this->getAttribute('season.name')])->andFilterWhere(['like', 'amplua.name', $this->getAttribute('amplua.name')]);
     return $dataProvider;
 }
Beispiel #6
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = PlayerModel::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['like', 'id', $this->id])->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'country_id', $this->country_id]);
     return $dataProvider;
 }
 public function actionEdit($id)
 {
     $player = Player::find()->with(['playerPairStatisticCount' => function ($query) {
         $query->orderBy(['training_matches_count' => SORT_DESC]);
     }])->with('playerStatisticSummary')->with('playerSkill')->where(['id' => $id])->one();
     if ($player->playerSkill == null) {
         $player->link('playerSkill', new PlayerSkill());
     }
     $request = Yii::$app->request;
     if ($request->isPost) {
         if ($player->playerSkill->load($request->post()) && $player->playerSkill->save()) {
             return $this->redirect(['player/player', 'id' => $player->id]);
         }
     }
     return $this->render('edit', ['player' => $player]);
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Player::find();
     $playerTable = Player::tableName();
     // set up query with relation to `user.username`
     $ampluaTable = Amplua::tableName();
     $query->joinWith(['amplua' => function ($query) use($ampluaTable) {
         $query->from(['amplua' => $ampluaTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     // enable sorting for the related columns
     $addSortAttributes = ["amplua.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$playerTable}.id" => $this->id, 'birthday' => $this->birthday, 'height' => $this->height, 'weight' => $this->weight, 'amplua_id' => $this->amplua_id, 'country_id' => $this->country_id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'firstname', $this->firstname])->andFilterWhere(['like', 'lastname', $this->lastname])->andFilterWhere(['like', 'slug', $this->slug])->andFilterWhere(['like', 'notes', $this->notes])->andFilterWhere(['like', 'image', $this->image])->andFilterWhere(['like', 'more_ampluas', $this->more_ampluas])->andFilterWhere(['like', 'amplua.name', $this->getAttribute('amplua.name')]);
     return $dataProvider;
 }
 /**
  * Creates a new Career model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate($playerID = null)
 {
     $model = new Career();
     if (!isset($playerID)) {
         throw new \yii\web\BadRequestHttpException('Unidentified playerID');
     }
     $player = Player::findOne($playerID);
     if (!isset($player)) {
         throw new \yii\web\BadRequestHttpException('Unidentified player model');
     }
     $model->player_id = $playerID;
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         if (Yii::$app->request->isAjax) {
             $out = ['success' => 'true'];
             return Json::encode($out);
         }
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         if (Yii::$app->request->isAjax) {
             return $this->renderAjax('create', ['model' => $model]);
         }
         return $this->render('create', ['model' => $model]);
     }
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Career::find();
     $team = new Team();
     $league = new League();
     $season = new Season();
     $player = new Player();
     $careerTable = Career::tableName();
     $teamTable = Team::tableName();
     $leagueTable = League::tableName();
     $seasonTable = Season::tableName();
     $playerTable = Player::tableName();
     $query->joinWith(['team' => function ($query) use($teamTable) {
         $query->from(['team' => $teamTable]);
     }]);
     $query->joinWith(['league' => function ($query) use($leagueTable) {
         $query->from(['league' => $leagueTable]);
     }]);
     $query->joinWith(['player' => function ($query) use($playerTable) {
         $query->from(['player' => $playerTable]);
     }]);
     $query->joinWith(['season' => function ($query) use($seasonTable) {
         $query->from(['season' => $seasonTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     $addSortAttributes = ['team.name', 'player.lastname', 'league.name', 'season.name'];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$careerTable}.id" => $this->id, 'player_id' => $this->player_id, 'season_id' => $this->season_id, 'championship_matches' => $this->championship_matches, 'championship_goals' => $this->championship_goals, 'cup_matches' => $this->cup_matches, 'cup_goals' => $this->cup_goals, 'euro_matches' => $this->euro_matches, 'euro_goals' => $this->euro_goals, 'avg_mark' => $this->avg_mark, 'goal_passes' => $this->goal_passes]);
     $query->andFilterWhere(['like', "team.name", $this->getAttribute('team.name')])->andFilterWhere(['like', "player.lastname", $this->getAttribute('player.lastname')])->andFilterWhere(['like', "league.name", $this->getAttribute('league.name')])->andFilterWhere(['like', "season.name", $this->getAttribute('season.name')]);
     return $dataProvider;
 }
 /**
  * Url: /player/{$id}-{$slug}
  * @param int $id Player id
  * @param $slug
  * @return mixed
  * @throws NotFoundHttpException
  */
 public function actionPlayer($id, $slug)
 {
     $player = Player::findOne($id);
     if (!isset($player)) {
         throw new NotFoundHttpException('Страница не найдена.');
     }
     $image = $player->getAsset(Asset::THUMBNAIL_CONTENT);
     $options = ['templateType' => 'col2', 'title' => 'Dynamomania.com | ' . $player->name, 'columnFirst' => ['post' => ['view' => '@frontend/views/site/team_member', 'data' => compact('player', 'image'), 'weight' => 0]], 'columnSecond' => ['blog_column' => SiteBlock::getBlogPosts(), 'banner1' => SiteBlock::getBanner(Banner::REGION_NEWS), 'banner2' => SiteBlock::getBanner(Banner::REGION_NEWS), 'banner3' => SiteBlock::getBanner(Banner::REGION_NEWS), 'banner4' => SiteBlock::getBanner(Banner::REGION_NEWS), 'banner5' => SiteBlock::getBanner(Banner::REGION_NEWS)]];
     return $this->render('@frontend/views/site/index', $options);
 }
 public function getPlayer2()
 {
     return $this->hasOne(Player::className(), ['id' => 'player_id_2']);
 }
 public function actionPlayers($id)
 {
     $trainingMatch = TrainingMatch::findOne($id);
     $request = Yii::$app->request;
     if ($request->isPost) {
         $post = $request->post();
         // Сброс старых игроков
         foreach ($trainingMatch->greenPlayers as $player) {
             $trainingMatch->unlink('greenPlayers', $player);
         }
         foreach ($trainingMatch->purplePlayers as $player) {
             $trainingMatch->unlink('purplePlayers', $player);
         }
         // Добавление новых
         if (isset($post['green_players_ids'])) {
             $greenPlayers = Player::find()->where(['id' => $post['green_players_ids']])->all();
             foreach ($greenPlayers as $player) {
                 $trainingMatch->link('greenPlayers', $player);
             }
         }
         if (isset($post['purple_players_ids'])) {
             $purplePlayers = Player::find()->where(['id' => $post['purple_players_ids']])->all();
             foreach ($purplePlayers as $player) {
                 $trainingMatch->link('purplePlayers', $player);
             }
         }
         // Сохранение в БД
         $trainingMatch->save();
     }
     return [$trainingMatch->greenPlayers, $trainingMatch->purplePlayers];
 }
Beispiel #14
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getPlayers()
 {
     return $this->hasMany(Player::className(), ['country_id' => 'id']);
 }
Beispiel #15
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getPlayers()
 {
     return $this->hasMany(Player::className(), ['id' => 'player_id'])->viaTable('{{%video_player}}', ['video_id' => 'id']);
 }
 public function getRefusedPlayers()
 {
     return $this->hasMany(Player::className(), ['id' => 'player_id'])->viaTable('training_match_refused_player', ['training_match_id' => 'id']);
 }
Beispiel #17
0
use yii\helpers\ArrayHelper;
/* @var $this yii\web\View */
/* @var $model common\models\Career */
/* @var $form yii\widgets\ActiveForm */
?>

<div class="career-form">

    <?php 
$form = ActiveForm::begin();
?>

    <?php 
$availablePlayers = [];
if (isset($model->player_id)) {
    $player = Player::findOne($model->player_id);
    if (isset($player->id)) {
        $availablePlayers = [$player->id => $player->name];
    }
}
echo $form->field($model, 'player_id')->widget(SelectizeDropDownList::classname(), ['loadUrl' => Url::to(['player/player-list']), 'items' => $availablePlayers, 'options' => ['multiple' => false], 'clientOptions' => ['valueField' => 'value', 'labelField' => 'text', 'persist' => false]]);
?>
 

    <?php 
echo $form->field($model, 'league_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(League::find()->all(), 'id', 'name'), 'language' => 'ru', 'options' => ['placeholder' => 'Выберите лигу...'], 'pluginOptions' => ['allowClear' => true]]);
?>

    <?php 
echo $form->field($model, 'season_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(Season::find()->orderBy(['id' => SORT_DESC])->all(), 'id', 'name'), 'language' => 'ru', 'options' => ['placeholder' => 'Выберите сезон...'], 'pluginOptions' => ['allowClear' => true]]);
?>
 public function actionRefuse($id)
 {
     $trainingMatch = TrainingMatch::find()->where(['id' => $id])->one();
     if (!Yii::$app->user->isGuest) {
         $userId = Yii::$app->user->identity->id;
         $request = Yii::$app->request;
         if ($request->isPost) {
             $post = $request->post();
             $player = Player::find()->where(['id' => $userId])->one();
             $trainingMatch->unlink('purplePlayers', $player);
             $trainingMatch->unlink('greenPlayers', $player);
             $trainingMatch->link('refusedPlayers', $player);
             $trainingMatch->save();
         }
     }
     return $this->goBack();
 }
 /**
  * Finds the Player model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param string $id
  * @return Player the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Player::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 public function getPlayer()
 {
     return $this->hasOne(Player::className(), ['user_id' => 'id']);
 }