/** * Синхронизация параметров юзера из параметров гостя. Происходит при входе (логине) пользователя * @param int $user_id * @param int $guest_id * @return bool true if save was successfull */ public static function syncFromGuestsParameters($user_id, $guest_id) { $guest_parameters_obj = GuestsParameters::findOne($guest_id); if (!$guest_parameters_obj) { return false; } $users_parameters_obj = self::findOne($user_id); if (!$users_parameters_obj) { $users_parameters_obj = new self(); $users_parameters_obj->users_id = $user_id; } $attrs = $users_parameters_obj->attributes(); foreach ($attrs as $attr) { if ($attr == 'users_id') { continue; } $users_parameters_obj->{$attr} = $guest_parameters_obj->{$attr}; } return $users_parameters_obj->save(); }
/** * Синхронизация с юзер статистикой. Происходит при логауте юзера * @param int $user_id * @param int $guest_id * @return boolean true if save was successfull */ public static function syncFromUsersStats($user_id, $guest_id) { $users_stats_obj = UsersStats::findOne($user_id); if (!$users_stats_obj) { return false; } $guests_stats_obj = self::findOne($guest_id); if (!$guests_stats_obj) { $guests_stats_obj = new self(); $guests_stats_obj->guest_id = $guest_id; } $attrs = $guests_stats_obj->attributes(); foreach ($attrs as $attr) { if ($attr == 'guest_id') { continue; } $guests_stats_obj->{$attr} = $users_stats_obj->{$attr}; } return $guests_stats_obj->save(); }