function OnSiteInit() { parent::OnSiteInit(); # check parameter if (isset($_GET['season']) and is_numeric($_GET['season'])) { $this->i_season_id = (int) $_GET['season']; } else { if (isset($_POST['Season']) and is_numeric($_POST['Season'])) { $this->i_season_id = (int) $_POST['Season']; } } if (isset($_GET['type']) and is_numeric($_GET['type'])) { $this->i_match_type = (int) $_GET['type']; } else { if (isset($_POST['MatchType']) and is_numeric($_POST['MatchType'])) { $this->i_match_type = (int) $_POST['MatchType']; } else { $this->i_match_type = MatchType::FRIENDLY; } } if (isset($_GET['team']) and is_numeric($_GET['team'])) { $this->team = new Team($this->GetSettings()); $this->team->SetId($_GET['team']); } else { if (isset($_POST['team']) and is_numeric($_POST['team'])) { $this->team = new Team($this->GetSettings()); $this->team->SetId($_POST['team']); } } if (!isset($this->i_season_id) and !$this->team instanceof Team) { $this->Abort(); } }
public function OnPageInit() { # Get team to display players for if (!isset($_GET['team']) or !is_numeric($_GET['team'])) { $this->Redirect(); } $this->team = new Team($this->GetSettings()); $this->team->SetId($_GET['team']); }
function OnSiteInit() { parent::OnSiteInit(); # check parameter if (isset($_GET['season']) and is_numeric($_GET['season'])) { $this->season = new Season($this->GetSettings()); $this->season->SetId((int) $_GET['season']); } if (isset($_GET['team']) and is_numeric($_GET['team'])) { $this->team = new Team($this->GetSettings()); $this->team->SetId($_GET['team']); } }
/** * Re-build from data posted by this control a single data object which this control is editing * * @param int $i_counter * @param int $i_id */ protected function BuildPostedItem($i_counter = null, $i_id = null) { $s_key = $this->GetNamingPrefix() . 'Team' . $i_counter; $team = new Team($this->GetSettings()); if (isset($_POST[$s_key]) and is_numeric($_POST[$s_key])) { $team->SetId($_POST[$s_key]); } $s_key = $this->GetNamingPrefix() . 'TeamValue' . $i_counter; if (isset($_POST[$s_key])) { $team->SetName($_POST[$s_key]); } # Infer player type from name if (stristr($team->GetName(), "ladies")) { $team->SetPlayerType(PlayerType::LADIES); } else { if (stristr($team->GetName(), "mixed")) { $team->SetPlayerType(PlayerType::MIXED); } else { if (stristr($team->GetName(), "Junior mixed")) { $team->SetPlayerType(PlayerType::JUNIOR_MIXED); } else { if (stristr($team->GetName(), "junior") or stristr($team->GetName(), "girls")) { $team->SetPlayerType(PlayerType::GIRLS); } } } } if ($team->GetId() or $team->GetName()) { $this->DataObjects()->Add($team); } else { $this->IgnorePostedItem($i_counter); } }
/** * Re-build from data posted by this control a single data object which this control is editing * * @param int $i_counter * @param int $i_id */ protected function BuildPostedItem($i_counter = null, $i_id = null) { $match = new Match($this->GetSettings()); $match->SetMatchType(MatchType::TOURNAMENT_MATCH); $key = $this->GetNamingPrefix() . 'MatchId' . $i_counter; if (isset($_POST[$key]) and is_numeric($_POST[$key])) { $match->SetId($_POST[$key]); } $key = $this->GetNamingPrefix() . 'MatchOrder' . $i_counter; if (isset($_POST[$key]) and is_numeric($_POST[$key])) { $match->SetOrderInTournament($_POST[$key]); } $key = $this->GetNamingPrefix() . 'MatchIdValue' . $i_counter; if (isset($_POST[$key])) { $match->SetTitle($_POST[$key]); } $key = $this->GetNamingPrefix() . 'HomeTeamId' . $i_counter; if (isset($_POST[$key]) and $_POST[$key]) { $team = new Team($this->GetSettings()); $team->SetId($_POST[$key]); $match->SetHomeTeam($team); } $key = $this->GetNamingPrefix() . 'AwayTeamId' . $i_counter; if (isset($_POST[$key]) and $_POST[$key]) { $team = new Team($this->GetSettings()); $team->SetId($_POST[$key]); $match->SetAwayTeam($team); } if ($match->GetId() or $match->GetHomeTeamId() and $match->GetAwayTeamId()) { $this->DataObjects()->Add($match); } else { $this->IgnorePostedItem($i_counter); } }
/** * Re-build from data posted by this control a single data object which this control is editing * * @param int $i_counter * @param int $i_id */ protected function BuildPostedItem($i_counter = null, $i_id = null) { $s_key = $this->GetNamingPrefix() . 'Points' . $i_counter; $s_award_key = $this->GetNamingPrefix() . 'Awarded' . $i_counter; $i_points = (int) (isset($_POST[$s_key]) and is_numeric($_POST[$s_key])) ? $_POST[$s_key] : 0; if (isset($_POST[$s_award_key]) and $_POST[$s_award_key] == '2') { $i_points = $i_points - $i_points * 2; } $s_key = $this->GetNamingPrefix() . 'PointsTeam' . $i_counter; $o_team = null; $o_team = new Team($this->GetSettings()); if (isset($_POST[$s_key]) and is_numeric($_POST[$s_key])) { $o_team->SetId($_POST[$s_key]); } $s_key = $this->GetNamingPrefix() . 'Reason' . $i_counter; $s_reason = (isset($_POST[$s_key]) and strlen($_POST[$s_key]) <= 200) ? $_POST[$s_key] : ''; if ($i_points != 0 or $o_team->GetId() or $s_reason) { $o_adjust = new PointsAdjustment($i_id, $i_points, $o_team, $s_reason); $i_date = $this->BuildPostedItemModifiedDate($i_counter, $o_adjust); $o_adjust->SetDate($i_date); $this->DataObjects()->Add($o_adjust); } else { $this->IgnorePostedItem($i_counter); } }
function OnPostback() { # get object $this->team = $this->edit->GetDataObject(); # Check user has permission to edit this team. Authentication for team owners is based on the URI # so make sure we get that from the database, not untrusted user input. if ($this->team->GetId() and !AuthenticationManager::GetUser()->Permissions()->HasPermission(PermissionType::MANAGE_TEAMS)) { $this->team_manager->ReadById(array($this->team->GetId())); $check_team = $this->team_manager->GetFirst(); $this->team->SetShortUrl($check_team->GetShortUrl()); } if ($this->team->GetId() and !AuthenticationManager::GetUser()->Permissions()->HasPermission(PermissionType::MANAGE_TEAMS, $this->team->GetLinkedDataUri()) or !$this->team->GetId() and !AuthenticationManager::GetUser()->Permissions()->HasPermission(PermissionType::MANAGE_TEAMS)) { $this->GetAuthenticationManager()->GetPermission(); } # save data if valid if ($this->IsValid()) { $i_id = $this->team_manager->SaveTeam($this->team); $this->team->SetId($i_id); $this->Redirect($this->team->GetNavigateUrl()); } }
/** * Re-build from data posted by this control a single data object which this control is editing * * @param int $i_counter * @param int $i_id */ protected function BuildPostedItem($i_counter = null, $i_id = null) { $s_key = $this->GetNamingPrefix() . 'Team' . $i_counter; $o_team = null; $o_team = new Team($this->GetSettings()); if (isset($_POST[$s_key]) and is_numeric($_POST[$s_key])) { $o_team->SetId($_POST[$s_key]); } $s_key = $this->GetNamingPrefix() . 'TeamValue' . $i_counter; if (isset($_POST[$s_key])) { $o_team->SetName($_POST[$s_key]); } $s_key = $this->GetNamingPrefix() . 'WithdrawnLeague' . $i_counter; $b_withdrawn_league = (isset($_POST[$s_key]) and $_POST[$s_key] == '1'); if ($o_team->GetId() or $b_withdrawn_league) { $team_in_season = new TeamInSeason($o_team, null, $b_withdrawn_league); $this->DataObjects()->Add($team_in_season); } else { $this->IgnorePostedItem($i_counter); } }
/** * @return void * @desc Re-build from data posted by this control the data object this control is editing */ function BuildPostedDataObject() { $team = new Team($this->GetSettings()); if (isset($_POST['item'])) { $team->SetId($_POST['item']); } if (isset($_POST['name'])) { $team->SetName($_POST['name']); } $team->SetWebsiteUrl($_POST['websiteUrl']); $team->SetIsActive(isset($_POST['playing'])); $team->SetIntro(ucfirst(trim($_POST['intro']))); $team->SetPlayingTimes($_POST['times']); $team->SetCost($_POST['yearCost']); $team->SetContact($_POST['contact']); $team->SetPrivateContact($_POST['private']); $ground = new Ground($this->GetSettings()); $ground->SetId($_POST['ground']); $team->SetGround($ground); if (isset($_POST['team_type'])) { $team->SetTeamType($_POST['team_type']); if ($team->GetTeamType() == Team::SCHOOL_YEARS) { $team->SetSchoolYears(array(1 => isset($_POST['year1']), 2 => isset($_POST['year2']), 3 => isset($_POST['year3']), 4 => isset($_POST['year4']), 5 => isset($_POST['year5']), 6 => isset($_POST['year6']), 7 => isset($_POST['year7']), 8 => isset($_POST['year8']), 9 => isset($_POST['year9']), 10 => isset($_POST['year10']), 11 => isset($_POST['year11']), 12 => isset($_POST['year12']))); } } if ($this->is_admin) { $team->SetShortUrl($_POST[$this->GetNamingPrefix() . 'ShortUrl']); $team->SetPlayerType($_POST['playerType']); if (isset($_POST['club']) and is_numeric($_POST['club'])) { $club = new Club($this->GetSettings()); $club->SetId($_POST['club']); $team->SetClub($club); } } $this->SetDataObject($team); }
/** * @access public * @return void * @param int[] $a_ids * @desc Delete from the db the Teams matching the supplied ids */ public function Delete($a_ids) { # check parameter $this->ValidateNumericArray($a_ids); if (!count($a_ids)) { throw new Exception('No teams to delete'); } $s_ids = join(', ', $a_ids); # Get more information on the teams $teams = array(); $s_sql = "SELECT team_id, short_url, owner_role_id FROM nsa_team WHERE team_id IN ({$s_ids})"; $result = $this->GetDataConnection()->query($s_sql); while ($row = $result->fetch()) { $team = new Team($this->GetSettings()); $team->SetId($row->team_id); $team->SetShortUrl($row->short_url); $team->SetOwnerRoleId($row->owner_role_id); $teams[] = $team; } $result->closeCursor(); # Check that current user is an admin or a team owner require_once "authentication/authentication-manager.class.php"; $user = AuthenticationManager::GetUser(); foreach ($teams as $team) { /* @var $team Team */ if (!$user->Permissions()->HasPermission(PermissionType::MANAGE_TEAMS, $team->GetLinkedDataUri())) { throw new Exception("Unauthorised"); } } # delete owner role $authentication_manager = new AuthenticationManager($this->GetSettings(), $this->GetDataConnection(), null); foreach ($teams as $team) { /* @var $team Team */ if ($team->GetOwnerRoleId()) { $authentication_manager->DeleteRole($team->GetOwnerRoleId()); } } unset($authentication_manager); # delete from short URL cache require_once 'http/short-url-manager.class.php'; $o_url_manager = new ShortUrlManager($this->GetSettings(), $this->GetDataConnection()); foreach ($teams as $team) { /* @var $team Team */ $o_url_manager->Delete($team->GetShortUrl()); } unset($o_url_manager); # Delete relationships to matches $s_match_link = $this->GetSettings()->GetTable('MatchTeam'); $s_sql = 'DELETE FROM ' . $s_match_link . ' WHERE team_id IN (' . $s_ids . ') '; $this->GetDataConnection()->query($s_sql); # Delete relationships to competitions $s_season_link = $this->GetSettings()->GetTable('TeamSeason'); $s_sql = 'DELETE FROM ' . $s_season_link . ' WHERE team_id IN (' . $s_ids . ') '; $this->GetDataConnection()->query($s_sql); # Delete players require_once "player-manager.class.php"; $player_manager = new PlayerManager($this->GetSettings(), $this->GetDataConnection()); $player_manager->ReadPlayersInTeam($a_ids); $players = $player_manager->GetItems(); if (count($players)) { $player_ids = array(); foreach ($players as $player) { $player_ids[] = $player->GetId(); } $player_manager->Delete($player_ids); } unset($player_manager); # delete team(s) $s_sql = 'DELETE FROM nsa_team WHERE team_id IN (' . $s_ids . ') '; $this->GetDataConnection()->query($s_sql); return $this->GetDataConnection()->GetAffectedRows(); }
/** * @return void * @desc Re-build from data posted by this control the data object this control is editing */ function BuildPostedDataObject() { $match = new Match($this->GetSettings()); $match->SetId($this->GetDataObjectId()); # Get match date $s_key = $this->GetNamingPrefix() . 'Date'; if (isset($_POST[$s_key]) and strlen($_POST[$s_key]) and is_numeric($_POST[$s_key])) { $match->SetStartTime($_POST[$s_key]); } # Get team names $s_key = $this->GetNamingPrefix() . 'Home'; if (isset($_POST[$s_key])) { $team_data = explode(MatchHighlightsEditControl::DATA_SEPARATOR, $_POST[$s_key], 2); if (count($team_data) == 2) { $o_home = new Team($this->GetSettings()); $o_home->SetId($team_data[0]); $o_home->SetName($team_data[1]); $match->SetHomeTeam($o_home); } } $s_key = $this->GetNamingPrefix() . 'Away'; if (isset($_POST[$s_key])) { $team_data = explode(MatchHighlightsEditControl::DATA_SEPARATOR, $_POST[$s_key], 2); if (count($team_data) == 2) { $o_away = new Team($this->GetSettings()); $o_away->SetId($team_data[0]); $o_away->SetName($team_data[1]); $match->SetAwayTeam($o_away); } } # Get the result $s_key = $this->GetNamingPrefix() . 'Result'; if (isset($_POST[$s_key])) { $s_result = $_POST[$s_key]; if (strlen($s_result)) { $match->Result()->SetResultType($s_result); } } # Get players of the match. Fields to use depend on which radio button was selected. $s_key = $this->GetNamingPrefix() . 'POM'; if (isset($_POST[$s_key])) { $pom_type = (int) $_POST[$s_key]; if ($pom_type == MatchHighlightsEditControl::PLAYER_OF_THE_MATCH_OVERALL) { $s_key = $this->GetNamingPrefix() . 'Player'; if (isset($_POST[$s_key]) and $_POST[$s_key]) { $player = new Player($this->GetSettings()); $player->SetName($_POST[$s_key]); $s_key = $this->GetNamingPrefix() . 'PlayerTeam'; if (isset($_POST[$s_key])) { $player->Team()->SetId($_POST[$s_key]); } $match->Result()->SetPlayerOfTheMatch($player); } } else { if ($pom_type == MatchHighlightsEditControl::PLAYER_OF_THE_MATCH_HOME_AND_AWAY) { $s_key = $this->GetNamingPrefix() . 'PlayerHome'; if (isset($_POST[$s_key]) and $_POST[$s_key]) { $player = new Player($this->GetSettings()); $player->SetName($_POST[$s_key]); $player->Team()->SetId($match->GetHomeTeamId()); $match->Result()->SetPlayerOfTheMatchHome($player); } $s_key = $this->GetNamingPrefix() . 'PlayerAway'; if (isset($_POST[$s_key]) and $_POST[$s_key]) { $player = new Player($this->GetSettings()); $player->SetName($_POST[$s_key]); $player->Team()->SetId($match->GetAwayTeamId()); $match->Result()->SetPlayerOfTheMatchAway($player); } } } } $s_key = $this->GetNamingPrefix() . 'Comments'; if (isset($_POST[$s_key])) { $match->SetNewComment($_POST[$s_key]); } $this->SetDataObject($match); }
/** * Populates the collection of business objects from raw data * * @return bool * @param MySqlRawData $result */ protected function BuildItems(MySqlRawData $result) { # use CollectionBuilder to handle duplicates $club_builder = new CollectionBuilder(); $club = null; while ($row = $result->fetch()) { # check whether this is a new club if (!$club_builder->IsDone($row->club_id)) { # store any exisiting club if ($club != null) { $this->Add($club); } # create the new club $club = new Club($this->GetSettings()); $club->SetId($row->club_id); $club->SetName($row->club_name); $club->SetTypeOfClub($row->club_type); $club->SetHowManyPlayers($row->how_many_players); $club->SetAgeRangeLower($row->age_range_lower); $club->SetAgeRangeUpper($row->age_range_upper); $club->SetPlaysOutdoors($row->plays_outdoors); $club->SetPlaysIndoors($row->plays_indoors); $club->SetShortUrl($row->short_url); $club->SetTwitterAccount($row->twitter); $club->SetFacebookUrl($row->facebook); $club->SetInstagramAccount($row->instagram); $club->SetClubmarkAccredited($row->clubmark); } # team the only cause of multiple rows (so far) so add to current club if ($row->team_id) { $team = new Team($this->GetSettings()); $team->SetId($row->team_id); $team->SetName($row->team_name); $team->SetShortUrl($row->team_short_url); $club->Add($team); } } # store final club if ($club != null) { $this->Add($club); } }
/** * Builds data posted on pages 2/3 back into a match object * @return Match */ private function BuildPostedScorecard() { $match = new Match($this->GetSettings()); $match->SetId($this->GetDataObjectId()); # Must have data on which team is which, otherwise none of the rest makes sense # Team ids are essential for saving data, while team names and match title are # purely so they can be redisplayed if the page is invalid $key = "teams"; if (!isset($_POST[$key]) or strpos($_POST[$key], ScorecardEditControl::DATA_SEPARATOR) === false) { return $match; } $teams = explode(ScorecardEditControl::DATA_SEPARATOR, $_POST[$key], 6); if (count($teams) != 6) { return $match; } switch ($teams[0]) { case "0": $match->Result()->SetHomeBattedFirst(false); $home_batting = $this->GetCurrentPage() == 3; break; case "1": $match->Result()->SetHomeBattedFirst(true); $home_batting = $this->GetCurrentPage() == 2; break; default: $home_batting = $this->GetCurrentPage() == 2; } $home_team = new Team($this->GetSettings()); $home_team->SetId($teams[1]); $home_team->SetName($teams[2]); $match->SetHomeTeam($home_team); $away_team = new Team($this->GetSettings()); $away_team->SetId($teams[3]); $away_team->SetName($teams[4]); $match->SetAwayTeam($away_team); $match->SetTitle($teams[5]); # Read posted batting data $key = "batRows"; if (isset($_POST[$key])) { # This controls not only which fields are read, but also which are redisplayed on an invalid postback or for the next innings. $match->SetMaximumPlayersPerTeam(intval($_POST[$key])); } for ($i = 1; $i <= $match->GetMaximumPlayersPerTeam(); $i++) { $key = "batName{$i}"; if (isset($_POST[$key])) { # The row exists - has it been filled in? if (trim($_POST[$key])) { # Read the batter data in this row $player = new Player($this->GetSettings()); $player->SetName($_POST[$key]); $player->Team()->SetId($home_batting ? $home_team->GetId() : $away_team->GetId()); $key = "batHowOut{$i}"; $how_out = (isset($_POST[$key]) and is_numeric($_POST[$key])) ? (int) $_POST[$key] : null; $key = "batOutBy{$i}"; $dismissed_by = null; if (isset($_POST[$key]) and trim($_POST[$key])) { $dismissed_by = new Player($this->GetSettings()); $dismissed_by->SetName($_POST[$key]); $dismissed_by->Team()->SetId($home_batting ? $away_team->GetId() : $home_team->GetId()); } $key = "batBowledBy{$i}"; $bowler = null; if (isset($_POST[$key]) and trim($_POST[$key])) { $bowler = new Player($this->GetSettings()); $bowler->SetName($_POST[$key]); $bowler->Team()->SetId($home_batting ? $away_team->GetId() : $home_team->GetId()); } # Correct caught and bowled if marked as caught if ($how_out == Batting::CAUGHT and !is_null($dismissed_by) and !is_null($bowler) and trim($dismissed_by->GetName()) == trim($bowler->GetName())) { $how_out = Batting::CAUGHT_AND_BOWLED; $dismissed_by = null; } $key = "batRuns{$i}"; $runs = (isset($_POST[$key]) and is_numeric($_POST[$key])) ? (int) $_POST[$key] : null; $key = "batBalls{$i}"; $balls = (isset($_POST[$key]) and is_numeric($_POST[$key])) ? (int) $_POST[$key] : null; # Add that batting performance to the match result $batting = new Batting($player, $how_out, $dismissed_by, $bowler, $runs, $balls); if ($home_batting) { $match->Result()->HomeBatting()->Add($batting); } else { $match->Result()->AwayBatting()->Add($batting); } } } } $key = "batByes"; if (isset($_POST[$key]) and is_numeric($_POST[$key])) { $player = new Player($this->GetSettings()); $player->SetPlayerRole(Player::BYES); $player->Team()->SetId($home_batting ? $home_team->GetId() : $away_team->GetId()); $batting = new Batting($player, null, null, null, (int) $_POST[$key]); if ($home_batting) { $match->Result()->HomeBatting()->Add($batting); } else { $match->Result()->AwayBatting()->Add($batting); } } $key = "batWides"; if (isset($_POST[$key]) and is_numeric($_POST[$key])) { $player = new Player($this->GetSettings()); $player->SetPlayerRole(Player::WIDES); $player->Team()->SetId($home_batting ? $home_team->GetId() : $away_team->GetId()); $batting = new Batting($player, null, null, null, (int) $_POST[$key]); if ($home_batting) { $match->Result()->HomeBatting()->Add($batting); } else { $match->Result()->AwayBatting()->Add($batting); } } $key = "batNoBalls"; if (isset($_POST[$key]) and is_numeric($_POST[$key])) { $player = new Player($this->GetSettings()); $player->SetPlayerRole(Player::NO_BALLS); $player->Team()->SetId($home_batting ? $home_team->GetId() : $away_team->GetId()); $batting = new Batting($player, null, null, null, (int) $_POST[$key]); if ($home_batting) { $match->Result()->HomeBatting()->Add($batting); } else { $match->Result()->AwayBatting()->Add($batting); } } $key = "batBonus"; if (isset($_POST[$key]) and is_numeric($_POST[$key])) { $player = new Player($this->GetSettings()); $player->SetPlayerRole(Player::BONUS_RUNS); $player->Team()->SetId($home_batting ? $home_team->GetId() : $away_team->GetId()); $batting = new Batting($player, null, null, null, (int) $_POST[$key]); if ($home_batting) { $match->Result()->HomeBatting()->Add($batting); } else { $match->Result()->AwayBatting()->Add($batting); } } $key = "batTotal"; if (isset($_POST[$key]) and is_numeric($_POST[$key])) { if ($home_batting) { $match->Result()->SetHomeRuns($_POST[$key]); } else { $match->Result()->SetAwayRuns($_POST[$key]); } } $key = "batWickets"; if (isset($_POST[$key]) and is_numeric($_POST[$key])) { if ($home_batting) { $match->Result()->SetHomeWickets($_POST[$key]); } else { $match->Result()->SetAwayWickets($_POST[$key]); } } # Read posted bowling data $key = "bowlerRows"; if (isset($_POST[$key])) { # This controls not only which fields are read, but also which are redisplayed on an invalid postback or for the next innings. $match->SetOvers(intval($_POST[$key])); } for ($i = 1; $i <= $match->GetOvers(); $i++) { $key = "bowlerName{$i}"; if (isset($_POST[$key])) { # The row exists - has it been filled in? if (trim($_POST[$key])) { # Read the bowler data in this row # strlen test allows 0 but not empty string, because is_numeric allows empty string $player = new Player($this->GetSettings()); $player->SetName($_POST[$key]); $player->Team()->SetId($home_batting ? $away_team->GetId() : $home_team->GetId()); $key = "bowlerBalls{$i}"; $balls = (isset($_POST[$key]) and is_numeric($_POST[$key]) and strlen(trim($_POST[$key]))) ? (int) $_POST[$key] : null; $key = "bowlerNoBalls{$i}"; $no_balls = (isset($_POST[$key]) and is_numeric($_POST[$key]) and strlen(trim($_POST[$key]))) ? (int) $_POST[$key] : null; $key = "bowlerWides{$i}"; $wides = (isset($_POST[$key]) and is_numeric($_POST[$key]) and strlen(trim($_POST[$key]))) ? (int) $_POST[$key] : null; $key = "bowlerRuns{$i}"; $runs = (isset($_POST[$key]) and is_numeric($_POST[$key]) and strlen(trim($_POST[$key]))) ? (int) $_POST[$key] : null; # Add that over to the match result $bowling = new Over($player); $bowling->SetBalls($balls); $bowling->SetNoBalls($no_balls); $bowling->SetWides($wides); $bowling->SetRunsInOver($runs); if ($home_batting) { $match->Result()->AwayOvers()->Add($bowling); } else { $match->Result()->HomeOvers()->Add($bowling); } } } } return $match; }
/** * Builds a match object containing the result information posted by the control * */ public function BuildPostedDataObject() { $match = new Match($this->GetSettings()); $match->SetMatchType(MatchType::TOURNAMENT); # Get match id $s_key = $this->GetNamingPrefix() . 'item'; if (isset($_POST[$s_key])) { $s_id = $_POST[$s_key]; if (strlen($s_id)) { $match->SetId($s_id); } } # Get the title $s_key = $this->GetNamingPrefix() . 'Title'; if (isset($_POST[$s_key])) { $match->SetTitle(strip_tags($_POST[$s_key])); } # Get the qualification type $s_key = $this->GetNamingPrefix() . 'Qualify'; if (isset($_POST[$s_key])) { $match->SetQualificationType($_POST[$s_key]); } # Get the player type $s_key = $this->GetNamingPrefix() . 'PlayerType'; if (isset($_POST[$s_key])) { $match->SetPlayerType($_POST[$s_key]); } $s_key = $this->GetNamingPrefix() . "Players"; if (isset($_POST[$s_key]) and strlen($_POST[$s_key])) { $match->SetMaximumPlayersPerTeam($_POST[$s_key]); } # Get the number of overs $s_key = $this->GetNamingPrefix() . "Overs"; if (isset($_POST[$s_key]) and strlen($_POST[$s_key])) { $match->SetOvers($_POST[$s_key]); } # Get the short URL $s_key = $this->GetNamingPrefix() . 'ShortUrl'; if (isset($_POST[$s_key])) { $match->SetShortUrl($_POST[$s_key]); } # Get the start date $s_key = $this->GetNamingPrefix() . 'Start'; $match->SetStartTime(DateControl::GetPostedTimestampUtc($s_key)); $match->SetIsStartTimeKnown(DateControl::GetIsTimePosted($s_key)); # Get the initial team $team = new Team($this->GetSettings()); $s_key = $this->GetNamingPrefix() . 'ContextTeam'; if (isset($_POST[$s_key]) and strlen($_POST[$s_key])) { $team->SetId($_POST[$s_key]); $match->AddAwayTeam($team); } # Get the ground $s_key = $this->GetNamingPrefix() . 'Ground'; if (isset($_POST[$s_key]) and strlen($_POST[$s_key])) { $o_ground = new Ground($this->GetSettings()); $o_ground->SetId($_POST[$s_key]); $match->SetGround($o_ground); } # Get the notes $s_key = $this->GetNamingPrefix() . 'Notes'; if (isset($_POST[$s_key])) { $match->SetNotes($_POST[$s_key]); } $this->SetDataObject($match); }
/** * Builds a match object containing the result information posted by the control * */ public function BuildPostedDataObject() { $o_match = new Match($this->GetSettings()); $o_match->SetId($this->GetDataObjectId()); # Get match date $s_key = $this->GetNamingPrefix() . 'Date'; if (isset($_POST[$s_key]) and strlen($_POST[$s_key]) and is_numeric($_POST[$s_key])) { $o_match->SetStartTime($_POST[$s_key]); } # Get team names $s_key = $this->GetNamingPrefix() . 'Home'; if (isset($_POST[$s_key])) { $team_data = explode(";", $_POST[$s_key], 2); if (count($team_data) == 2) { $o_home = new Team($this->GetSettings()); $o_home->SetId($team_data[0]); $o_home->SetName($team_data[1]); $o_match->SetHomeTeam($o_home); } } $s_key = $this->GetNamingPrefix() . 'Away'; if (isset($_POST[$s_key])) { $team_data = explode(";", $_POST[$s_key], 2); if (count($team_data) == 2) { $o_away = new Team($this->GetSettings()); $o_away->SetId($team_data[0]); $o_away->SetName($team_data[1]); $o_match->SetAwayTeam($o_away); } } # Get who batted first $s_key = $this->GetNamingPrefix() . 'BatFirst'; if (isset($_POST[$s_key])) { $s_batted = $_POST[$s_key]; if ($s_batted == 'home') { $o_match->Result()->SetHomeBattedFirst(true); } else { if ($s_batted == 'away') { $o_match->Result()->SetHomeBattedFirst(false); } } } # Get the result $s_key = $this->GetNamingPrefix() . 'Result'; if (isset($_POST[$s_key])) { $s_result = $_POST[$s_key]; if (strlen($s_result)) { $o_match->Result()->SetResultType($s_result); } } # Get the home score $s_key = $this->GetNamingPrefix() . 'HomeRuns'; if (isset($_POST[$s_key])) { $s_home_runs = $_POST[$s_key]; if (strlen($s_home_runs)) { $o_match->Result()->SetHomeRuns($s_home_runs); } } $s_key = $this->GetNamingPrefix() . 'HomeWickets'; if (isset($_POST[$s_key])) { $s_home_wickets = $_POST[$s_key]; if (strlen($s_home_wickets)) { $o_match->Result()->SetHomeWickets($s_home_wickets); } } # Get the away score $s_key = $this->GetNamingPrefix() . 'AwayRuns'; if (isset($_POST[$s_key])) { $s_away_runs = $_POST[$s_key]; if (strlen($s_away_runs)) { $o_match->Result()->SetAwayRuns($s_away_runs); } } $s_key = $this->GetNamingPrefix() . 'AwayWickets'; if (isset($_POST[$s_key])) { $s_away_wickets = $_POST[$s_key]; if (strlen($s_away_wickets)) { $o_match->Result()->SetAwayWickets($s_away_wickets); } } $s_key = $this->GetNamingPrefix() . 'Comments'; if (isset($_POST[$s_key])) { $o_match->SetNewComment($_POST[$s_key]); } $this->SetDataObject($o_match); }
/** * Populates the collection of business objects from raw data * * @return bool * @param MySqlRawData $o_result */ protected function BuildItems(MySqlRawData $o_result) { $this->Clear(); $o_match_builder = new CollectionBuilder(); $o_team_builder = new CollectionBuilder(); $o_tournament_match_builder = new CollectionBuilder(); $season_builder = new CollectionBuilder(); while ($o_row = $o_result->fetch()) { if (!$o_match_builder->IsDone($o_row->match_id)) { if (isset($o_match)) { $this->Add($o_match); $o_team_builder->Reset(); $o_tournament_match_builder->Reset(); $season_builder->Reset(); } # create new $o_match = new Match($this->GetSettings()); $this->BuildMatchSummary($o_match, $o_row); if ($o_match->GetMatchType() == MatchType::TOURNAMENT_MATCH and isset($o_row->tournament_match_id)) { $o_tourn = new Match($this->o_settings); $o_tourn->SetMatchType(MatchType::TOURNAMENT); $o_tourn->SetId($o_row->tournament_match_id); if (isset($o_row->tournament_title)) { $o_tourn->SetTitle($o_row->tournament_title); } if (isset($o_row->tournament_url)) { $o_tourn->SetShortUrl($o_row->tournament_url); } $o_match->SetTournament($o_tourn); unset($o_tourn); } if (isset($o_row->home_team_id) and !is_null($o_row->home_team_id)) { $o_home = new Team($this->o_settings); $o_home->SetId($o_row->home_team_id); if (isset($o_row->home_team_name)) { $o_home->SetName($o_row->home_team_name); } if (isset($o_row->home_short_url)) { $o_home->SetShortUrl($o_row->home_short_url); } $o_match->SetHomeTeam($o_home); unset($o_home); } $this->BuildGround($o_match, $o_row); } # Add away teams if (isset($o_row->away_team_id) && !$o_team_builder->IsDone($o_row->away_team_id)) { $o_away = new Team($this->o_settings); $o_away->SetId($o_row->away_team_id); if (isset($o_row->away_team_name)) { $o_away->SetName($o_row->away_team_name); } if (isset($o_row->away_short_url)) { $o_away->SetShortUrl($o_row->away_short_url); } $o_match->AddAwayTeam($o_away); unset($o_away); } # Add matches in tournament if (isset($o_row->match_id_in_tournament) and is_numeric($o_row->match_id_in_tournament) and !$o_tournament_match_builder->IsDone($o_row->match_id_in_tournament)) { $o_tmatch = new Match($this->o_settings); $o_tmatch->SetMatchType(MatchType::TOURNAMENT_MATCH); $o_tmatch->SetId($o_row->match_id_in_tournament); $o_tmatch->SetTitle($o_row->tournament_match_title); $o_tmatch->SetShortUrl($o_row->tournament_match_url); $o_tmatch->SetStartTime($o_row->tournament_match_time); $o_tmatch->SetIsStartTimeKnown($o_row->tournament_match_start_time_known); $o_tmatch->SetOrderInTournament($o_row->order_in_tournament); $o_match->AddMatchInTournament($o_tmatch); unset($o_tmatch); } # Add seasons $this->BuildSeason($o_match, $o_row, $season_builder); } # Add final match if (isset($o_match)) { $this->Add($o_match); } return true; }
/** * Populates the collection of business objects from raw data * * @return bool * @param MySqlRawData $o_result */ protected function BuildItems(MySqlRawData $o_result) { $this->Clear(); $o_match_builder = new CollectionBuilder(); $o_team_builder = new CollectionBuilder(); while ($o_row = $o_result->fetch()) { if (!$o_match_builder->IsDone($o_row->match_id)) { if (isset($o_match)) { $this->Add($o_match); $o_team_builder->Reset(); } # create new $o_match = new Match($this->GetSettings()); $o_match->SetId($o_row->match_id); if (isset($o_row->start_time)) { $o_match->SetStartTime($o_row->start_time); } if (isset($o_row->home_runs)) { $o_match->Result()->SetHomeRuns($o_row->home_runs); } if (isset($o_row->away_runs)) { $o_match->Result()->SetAwayRuns($o_row->away_runs); } if (isset($o_row->match_result_id)) { $o_match->Result()->SetResultType($o_row->match_result_id); } if (isset($o_row->home_team_id) and !is_null($o_row->home_team_id)) { $o_home = new Team($this->o_settings); $o_home->SetId($o_row->home_team_id); if (isset($o_row->home_team_name)) { $o_home->SetName($o_row->home_team_name); } if (isset($o_row->home_short_url)) { $o_home->SetShortUrl($o_row->home_short_url); } $o_match->SetHomeTeam($o_home); unset($o_home); } if (isset($o_row->ground_id)) { $o_ground = new Ground($this->GetSettings()); $o_ground->SetId($o_row->ground_id); $o_match->SetGround($o_ground); unset($o_ground); } } # Add away teams if (isset($o_row->away_team_id) && !$o_team_builder->IsDone($o_row->away_team_id)) { $o_away = new Team($this->o_settings); $o_away->SetId($o_row->away_team_id); if (isset($o_row->away_team_name)) { $o_away->SetName($o_row->away_team_name); } if (isset($o_row->away_short_url)) { $o_away->SetShortUrl($o_row->away_short_url); } $o_match->AddAwayTeam($o_away); unset($o_away); } } # Add final match if (isset($o_match)) { $this->Add($o_match); } return true; }
/** * Builds a match object containing the result information posted by the control * */ public function BuildPostedDataObject() { $o_match = new Match($this->GetSettings()); # Get match id $s_key = $this->GetNamingPrefix() . 'item'; if (isset($_POST[$s_key])) { $s_id = $_POST[$s_key]; if (strlen($s_id)) { $o_match->SetId($s_id); } } # Get the short URL $s_key = $this->GetNamingPrefix() . 'ShortUrl'; if (isset($_POST[$s_key])) { $o_match->SetShortUrl($_POST[$s_key]); } # Get the start date $s_key = $this->GetNamingPrefix() . 'Start'; $o_match->SetStartTime(DateControl::GetPostedTimestampUtc($s_key)); $o_match->SetIsStartTimeKnown(DateControl::GetIsTimePosted($s_key)); # Get the home team # Test for (int)$_POST[$s_key] deliberately excludes "Not known" value, which is 0 $o_home = new Team($this->GetSettings()); $s_key = $this->GetNamingPrefix() . 'Home'; if (isset($_POST[$s_key]) and strlen($_POST[$s_key]) and (int) $_POST[$s_key]) { $o_home->SetId($_POST[$s_key]); $o_match->SetHomeTeam($o_home); } # Get the away team # Test for (int)$_POST[$s_key] deliberately excludes "Not known" value, which is 0 $o_away = new Team($this->GetSettings()); $s_key = $this->GetNamingPrefix() . 'Away'; if (isset($_POST[$s_key]) and strlen($_POST[$s_key]) and (int) $_POST[$s_key]) { $o_away->SetId($_POST[$s_key]); $o_match->SetAwayTeam($o_away); } # Get the ground $s_key = $this->GetNamingPrefix() . 'Ground'; if (isset($_POST[$s_key]) and strlen($_POST[$s_key])) { $o_ground = new Ground($this->GetSettings()); $o_ground->SetId($_POST[$s_key]); $o_match->SetGround($o_ground); } # Get the notes $s_key = $this->GetNamingPrefix() . 'Notes'; if (isset($_POST[$s_key])) { $o_match->SetNotes($_POST[$s_key]); } # Get the match type $s_key = $this->GetNamingPrefix() . 'MatchType'; if (isset($_POST[$s_key]) and is_numeric($_POST[$s_key])) { $o_match->SetMatchType($_POST[$s_key]); } # Get the tournament if ($o_match->GetMatchType() == MatchType::TOURNAMENT_MATCH) { $s_key = $this->GetNamingPrefix() . 'Tournament'; if (isset($_POST[$s_key]) and is_numeric($_POST[$s_key])) { $tournament = new Match($this->GetSettings()); $tournament->SetMatchType(MatchType::TOURNAMENT); $tournament->SetId($_POST[$s_key]); $o_match->SetTournament($tournament); } } # Get the season $s_key = $this->GetNamingPrefix() . 'Season'; if (isset($_POST[$s_key]) and strlen($_POST[$s_key])) { $o_season = new Season($this->GetSettings()); $o_season->SetId($_POST[$s_key]); $o_match->Seasons()->Add($o_season); } $this->SetDataObject($o_match); }
/** * Populates the collection of business objects from raw data * * @return bool * @param MySqlRawData $o_result */ protected function BuildItems(MySqlRawData $o_result) { /* @var $o_competition Competition */ # use CollectionBuilder to handle duplicates $o_comp_builder = new CollectionBuilder(); $o_season_builder = new CollectionBuilder(); $o_team_builder = new CollectionBuilder(); $o_points_builder = new CollectionBuilder(); $o_matchtype_builder = new CollectionBuilder(); $o_competition = null; $o_season = null; while ($o_row = $o_result->fetch()) { # check whether this is a new competition if (!$o_comp_builder->IsDone($o_row->competition_id)) { # store any exisiting competition and reset if ($o_competition != null) { if ($o_season != null) { $o_competition->AddSeason($o_season, true); } $o_season = null; $o_matchtype_builder->Reset(); $this->Add($o_competition); $o_season_builder->Reset(); } # create the new competition $o_competition = new Competition($this->o_settings); $o_competition->SetId($o_row->competition_id); $o_competition->SetName($o_row->competition_name); if (isset($o_row->intro)) { $o_competition->SetIntro($o_row->intro); } if (isset($o_row->contact)) { $o_competition->SetContact($o_row->contact); } if (isset($o_row->notification_email)) { $o_competition->SetNotificationEmail($o_row->notification_email); } if (isset($o_row->website)) { $o_competition->SetWebsiteUrl($o_row->website); } if (isset($o_row->short_url)) { $o_competition->SetShortUrl($o_row->short_url); } if (isset($o_row->active)) { $o_competition->SetIsActive($o_row->active); } if (isset($o_row->players_per_team)) { $o_competition->SetMaximumPlayersPerTeam($o_row->players_per_team); } if (isset($o_row->overs)) { $o_competition->SetOvers($o_row->overs); } $o_competition->SetPlayerType($o_row->player_type_id); if (isset($o_row->update_search) and $o_row->update_search == 1) { $o_competition->SetSearchUpdateRequired(); } if (isset($o_row->category_id) && !is_null($o_row->category_id)) { $cat = new Category(); $cat->SetId($o_row->category_id); if (isset($o_row->category_name)) { $cat->SetName($o_row->category_name); } if (isset($o_row->code)) { $cat->SetUrl($o_row->code); } $o_competition->SetCategory($cat); } } # Seasons are the first cause of multiple rows (first in sort order after competition) if (isset($o_row->season_id)) { if (!$o_season_builder->IsDone($o_row->season_id)) { if ($o_season != null) { $o_competition->AddSeason($o_season, true); } $o_season = new Season($this->o_settings); $o_season->SetId($o_row->season_id); $o_season->SetName($o_row->season_name); $o_season->SetIsLatest($o_row->is_latest); $o_season->SetStartYear($o_row->start_year); $o_season->SetEndYear($o_row->end_year); if (isset($o_row->season_intro)) { $o_season->SetIntro($o_row->season_intro); } if (isset($o_row->results)) { $o_season->SetResults($o_row->results); } if (isset($o_row->show_table)) { $o_season->SetShowTable($o_row->show_table); } if (isset($o_row->show_runs_scored)) { $o_season->SetShowTableRunsScored($o_row->show_runs_scored); } if (isset($o_row->show_runs_conceded)) { $o_season->SetShowTableRunsConceded($o_row->show_runs_conceded); } if (isset($o_row->season_short_url)) { $o_season->SetShortUrl($o_row->season_short_url); } } # Team only present if there is a season if (isset($o_row->team_id)) { if (!$o_team_builder->IsDone($o_row->team_id)) { if (isset($o_team)) { unset($o_team); } $o_team = new Team($this->GetSettings()); $o_team->SetId($o_row->team_id); $o_team->SetName($o_row->team_name); $o_team->GetGround()->SetId($o_row->ground_id); if (isset($o_row->team_short_url)) { $o_team->SetShortUrl($o_row->team_short_url); } $o_season->AddTeam($o_team); if (isset($o_row->withdrawn_league) and (bool) $o_row->withdrawn_league) { $o_season->TeamsWithdrawnFromLeague()->Add($o_team); } } # Points adjustments - should come with team and in order of team if (isset($o_row->point_id) and !$o_points_builder->IsDone($o_row->point_id)) { $o_point = new PointsAdjustment($o_row->point_id, $o_row->points, $o_team, $o_row->reason, $o_row->points_date); $o_season->PointsAdjustments()->Add($o_point); } } # Match types come with a season if (isset($o_row->match_type) and !$o_matchtype_builder->IsDone($o_row->match_type)) { $o_season->MatchTypes()->Add((int) $o_row->match_type); } } } # store final competition if ($o_competition != null) { if ($o_season != null) { $o_competition->AddSeason($o_season, true); } $this->Add($o_competition); } }
/** * Populates the collection of business objects from raw data * * @return bool * @param MySqlRawData $result */ protected function BuildItems(MySqlRawData $result) { # use CollectionBuilder to handle duplicates $school_builder = new CollectionBuilder(); $school = null; while ($row = $result->fetch()) { # check whether this is a new school if (!$school_builder->IsDone($row->club_id)) { # store any exisiting school if ($school != null) { $this->Add($school); } # create the new school $school = new School($this->GetSettings()); $school->SetId($row->club_id); $school->SetName($row->club_name); $school->SetTypeOfClub($row->club_type); $school->SetHowManyPlayers($row->how_many_players); $school->SetAgeRangeLower($row->age_range_lower); $school->SetAgeRangeUpper($row->age_range_upper); $school->SetPlaysOutdoors($row->plays_outdoors); $school->SetPlaysIndoors($row->plays_indoors); $school->SetShortUrl($row->short_url); $school->SetTwitterAccount($row->twitter); $school->SetFacebookUrl($row->facebook); $school->SetInstagramAccount($row->instagram); $school->SetClubmarkAccredited($row->clubmark); # Infer partial address from school name $school_name = $school->GetName(); $comma = strrpos($school_name, ","); if ($comma !== false) { $school->Ground()->GetAddress()->SetTown(trim(substr($school_name, $comma + 1))); $school->Ground()->GetAddress()->SetPaon(substr($school_name, 0, $comma)); } } # team the only cause of multiple rows (so far) so add to current school if ($row->team_id) { $team = new Team($this->GetSettings()); $team->SetId($row->team_id); $team->SetName($row->team_name); $team->SetShortUrl($row->team_short_url); $school->Add($team); } } # store final club if ($school != null) { $this->Add($school); } }
/** * Populates the collection of business objects from raw data * * @return bool * @param MySqlRawData $o_result */ protected function BuildItems(MySqlRawData $o_result) { /* @var $o_season Season */ $this->Clear(); # use CollectionBuilder to handle duplicates $o_season_builder = new CollectionBuilder(); $o_team_builder = new CollectionBuilder(); $o_rule_builder = new CollectionBuilder(); $o_points_builder = new CollectionBuilder(); $o_type_builder = new CollectionBuilder(); $o_season = null; while ($o_row = $o_result->fetch()) { # check whether this is a new season if (!$o_season_builder->IsDone($o_row->season_id)) { # store any exisiting season and reset if ($o_season != null) { $this->Add($o_season); $o_team_builder->Reset(); $o_rule_builder->Reset(); $o_points_builder->Reset(); $o_type_builder->Reset(); } # create the new season $o_season = new Season($this->GetSettings()); $this->BuildSeason($o_season, $o_row); } # Teams the first cause of multiple rows if (isset($o_row->team_id)) { if (!$o_team_builder->IsDone($o_row->team_id)) { if (isset($o_team)) { unset($o_team); } $o_team = new Team($this->GetSettings()); $o_team->SetId($o_row->team_id); $o_team->SetName($o_row->team_name); $ground = new Ground($this->GetSettings()); $ground->SetId($o_row->team_ground_id); $o_team->SetGround($ground); if (isset($o_row->team_short_url)) { $o_team->SetShortUrl($o_row->team_short_url); } $o_season->AddTeam($o_team); if (isset($o_row->withdrawn_league) and (bool) $o_row->withdrawn_league) { $o_season->TeamsWithdrawnFromLeague()->Add($o_team); } } # Points adjustments - should come with team and in order of team if (isset($o_row->point_id) and !$o_points_builder->IsDone($o_row->point_id)) { $o_point = new PointsAdjustment($o_row->point_id, $o_row->points, $o_team, $o_row->reason, $o_row->points_date); $o_season->PointsAdjustments()->Add($o_point); } } # Season rules if (isset($o_row->season_rule_id) and !$o_rule_builder->IsDone($o_row->season_rule_id)) { $o_mr = new MatchResult($o_row->match_result_id); $o_mr->SetHomePoints($o_row->home_points); $o_mr->SetAwayPoints($o_row->away_points); $o_season->PossibleResults()->Add($o_mr); unset($o_mr); } # Match types if (isset($o_row->season_match_type) and !$o_type_builder->IsDone($o_row->season_match_type)) { $o_season->MatchTypes()->Add((int) $o_row->season_match_type); } } # store final season if ($o_season != null) { $this->Add($o_season); } return true; }