本文整理汇总了PHP中Match::SetId方法的典型用法代码示例。如果您正苦于以下问题:PHP Match::SetId方法的具体用法?PHP Match::SetId怎么用?PHP Match::SetId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Match
的用法示例。
在下文中一共展示了Match::SetId方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: BuildPostedDataObject
/**
* 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]));
}
$s_key = $this->GetNamingPrefix() . 'Seasons';
if (isset($_POST[$s_key]) and strlen($_POST[$s_key])) {
$possibly_posted = explode(';', $_POST[$s_key]);
foreach ($possibly_posted as $season_id) {
$s_key = $this->GetNamingPrefix() . 'Season' . $season_id;
if (isset($_POST[$s_key]) and $_POST[$s_key] == $season_id) {
$season = new Season($this->GetSettings());
$season->SetId($_POST[$s_key]);
$match->Seasons()->Add($season);
}
}
}
$this->SetDataObject($match);
}
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:35,代码来源:tournament-seasons-control.class.php
示例2: BuildPostedItem
/**
* 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);
}
}
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:40,代码来源:matches-in-tournament-editor.class.php
示例3: BuildPostedDataObject
/**
* Builds a match object containing the result information posted by the control
*
*/
public function BuildPostedDataObject()
{
$tournament = new Match($this->GetSettings());
$tournament->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)) {
$tournament->SetId($s_id);
}
}
# Get the title
$s_key = $this->GetNamingPrefix() . 'Title';
if (isset($_POST[$s_key])) {
$tournament->SetTitle(strip_tags($_POST[$s_key]));
}
# Get the start date, because it's part of the title that has to be recreated for an internal postback
$s_key = $this->GetNamingPrefix() . 'Start';
if (isset($_POST[$s_key])) {
$tournament->SetStartTime($_POST[$s_key]);
}
# Matches - get from aggregated editor
$this->EnsureAggregatedEditors();
$matches = $this->matches_editor->DataObjects()->GetItems();
foreach ($matches as $match) {
$tournament->AddMatchInTournament($match);
}
$this->SetDataObject($tournament);
}
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:34,代码来源:tournament-matches-control.class.php
示例4: BuildPostedDataObject
/**
* @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);
}
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:82,代码来源:match-highlights-edit-control.class.php
示例5: BuildPostedDataObject
/**
* 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);
}
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:70,代码来源:tournament-edit-control.class.php
示例6: GetDuplicateFixture
//.........这里部分代码省略.........
$s_where = $this->SqlAddCondition($s_where, 'match_notes = ' . Sql::ProtectString($this->GetDataConnection(), $match_to_compare->GetNotes()));
$s_where = $this->SqlAddCondition($s_where, "{$s_mt}.team_id" . Sql::ProtectNumeric($match_to_compare->GetHomeTeamId(), true, true));
# If it's a new match we want to check that it's not a duplicate match type of one already added.
# If it's an updated match only an admin can change that. If not an admin, data's not even available so don't compare.
if ($is_new_match or $b_user_is_match_admin) {
$s_where = $this->SqlAddCondition($s_where, 'match_type = ' . Sql::ProtectNumeric($match_to_compare->GetMatchType()));
}
# If it's a tournament the player type should be specified by the user so check whether it's changed.
# For any other match it's inferred automatically from other metadata about the match as it's saved,
# and we're already checking whether that other data has changed so don't check for player type.
if ($match_to_compare->GetMatchType() == MatchType::TOURNAMENT) {
$s_where = $this->SqlAddCondition($s_where, 'player_type_id' . Sql::ProtectNumeric($match_to_compare->GetPlayerType(), true, true));
}
# If there's an id we're comparing whether the existing match has changed.
# If no id we're looking whether the match has already been added, probably by someone else.
if (!$is_new_match) {
$s_where = $this->SqlAddCondition($s_where, "{$s_match}.match_id" . Sql::ProtectNumeric($match_to_compare->GetId(), false, true));
# Only compare title properties for an update to a match, not for a match being added. If a new match is being added
# the same match may exist with a different title because a result has been filled in - we still want to treat that as
# a duplicate and not add the new match. But if the match is being updated it can only come from the match editing screen,
# where the existing title is visible. The title may have changed due to an updated result, but OK to treat this as a changed
# fixture in that event - an email about the match update is going to be sent and the match marked as updated anyway, so no problem.
$s_where = $this->SqlAddCondition($s_where, 'match_title = ' . Sql::ProtectString($this->GetDataConnection(), $match_to_compare->GetTitle(), false));
$s_where = $this->SqlAddCondition($s_where, 'custom_title' . Sql::ProtectBool($match_to_compare->GetUseCustomTitle(), false, true));
# A new match would have either no or a newly-generated short URL, which inevitably would be different from the existing match
# had it already been entered. But if we're updating the match the short URL may have been changed deliberately and we want to
# recognise that change, not throw it away as a duplicate.
$s_where = $this->SqlAddCondition($s_where, 'short_url = ' . Sql::ProtectString($this->GetDataConnection(), $match_to_compare->GetShortUrl(), false));
}
$s_sql = $this->SqlAddWhereClause($s_sql, $s_where);
$result = $this->GetDataConnection()->query($s_sql);
if ($o_row = $result->fetch()) {
$id_of_duplicate = $o_row->match_id;
# if it's a new match, this gives info on the match as it already exists
$is_duplicate = true;
}
$result->closeCursor();
# If basic match details appear to be a duplicate, does it have the same away team(s) too?
if ($is_duplicate) {
$s_sql = "SELECT team_id FROM {$s_mt} WHERE match_id = " . Sql::ProtectNumeric($id_of_duplicate) . " AND team_role = " . TeamRole::Away();
$result = $this->GetDataConnection()->query($s_sql);
$existing_away_team_ids = array();
while ($row = $result->fetch()) {
$existing_away_team_ids[] = (int) $row->team_id;
}
$result->closeCursor();
if (count($existing_away_team_ids) != count($match_to_compare->GetAwayTeams())) {
# Different number of teams...
$is_duplicate = false;
}
# Same number of away teams... now are those away teams the same ones as in the match we're comparing?
if ($is_duplicate) {
foreach ($match_to_compare->GetAwayTeams() as $team) {
/* @var $team Team */
if (!in_array($team->GetId(), $existing_away_team_ids, true)) {
$is_duplicate = false;
break;
}
}
}
}
# If basic match details and away teams appear to be a duplicate, does it have the same season(s) too?
if ($is_duplicate) {
# 1. If the user isn't admin and is updating match, don't check. They're not allowed to change season data so it's not even available.
# 2. If the user isn't admin and it's a new match, is the existing match in the given season - don't care if it's in others too
# 3. If the user is an admin, we want to look for an exact match
if ($b_user_is_match_admin or $is_new_match) {
$s_sql = "SELECT season_id FROM " . $this->GetSettings()->GetTable('SeasonMatch') . " WHERE match_id = " . Sql::ProtectNumeric($id_of_duplicate);
$result = $this->GetDataConnection()->query($s_sql);
$existing_season_ids = array();
while ($row = $result->fetch()) {
$existing_season_ids[] = (int) $row->season_id;
}
$result->closeCursor();
if (count($existing_season_ids) == $match_to_compare->Seasons()->GetCount() or !$b_user_is_match_admin and $is_new_match) {
# Same number of seasons...
} else {
# Different number of seasons...
$is_duplicate = false;
}
# Disposed of result, now are those seasons are the same ones as in the match we're comparing?
if ($is_duplicate) {
foreach ($match_to_compare->Seasons() as $season) {
/* @var $season Season */
if (!in_array($season->GetId(), $existing_season_ids, true)) {
$is_duplicate = false;
break;
}
}
}
}
}
# Return the duplicate if one was found, otherwise return null
if ($is_duplicate) {
$match_to_compare->SetId($id_of_duplicate);
return $match_to_compare;
} else {
return null;
}
}
示例7: BuildPostedDataObject
/**
* 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);
}
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:90,代码来源:match-result-edit-control.class.php
示例8: BuildPostedDataObject
/**
* 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);
}
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:76,代码来源:match-fixture-edit-control.class.php
示例9: BuildItems
/**
* 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;
}
示例10: BuildPostedScorecard
/**
* 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);
//.........这里部分代码省略.........
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:101,代码来源:scorecard-edit-control.class.php