本文整理汇总了PHP中Match::GetPlayerType方法的典型用法代码示例。如果您正苦于以下问题:PHP Match::GetPlayerType方法的具体用法?PHP Match::GetPlayerType怎么用?PHP Match::GetPlayerType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Match
的用法示例。
在下文中一共展示了Match::GetPlayerType方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: OnLoadPageData
function OnLoadPageData()
{
/* @var $match_manager MatchManager */
/* @var $editor TournamentEditControl */
# get id of Match
$i_id = $this->match_manager->GetItemId();
if (!$i_id) {
return;
}
# no need to read if redisplaying invalid form
if ($this->IsValid()) {
$this->match_manager->ReadByMatchId(array($i_id));
$this->tournament = $this->match_manager->GetFirst();
if ($this->tournament instanceof Match) {
$this->b_user_is_match_owner = AuthenticationManager::GetUser()->GetId() == $this->tournament->GetAddedBy()->GetId();
$this->b_is_tournament = $this->tournament->GetMatchType() == MatchType::TOURNAMENT;
} else {
return;
}
}
if ($this->b_user_is_match_admin or $this->b_user_is_match_owner) {
# Get all seasons
# Don't filter by match type at this point because we want to know what other types of match the seasons support.
# If it's tournaments only, they'll be treated differently.
require_once 'stoolball/season-manager.class.php';
$season_manager = new SeasonManager($this->GetSettings(), $this->GetDataConnection());
$season_dates = Season::SeasonDates($this->tournament->GetStartTime());
$season_manager->FilterByDateStart($season_dates[0]);
$season_manager->FilterByDateEnd($season_dates[1]);
$season_manager->ReadSeasonSummaries(array($this->tournament->GetPlayerType()));
$this->editor->Seasons()->SetItems($season_manager->GetItems());
unset($season_manager);
}
}
示例2: CreateSeasonControls
/**
* Creates the controls when the editor is in its season view
*
*/
private function CreateSeasonControls(Match $match, XhtmlElement $match_box)
{
/* @var $season Season */
$css_class = 'TournamentEdit checkBoxList';
if ($this->GetCssClass()) {
$css_class .= ' ' . $this->GetCssClass();
}
$match_outer_1 = new XhtmlElement('div');
$match_outer_1->SetCssClass($css_class);
$this->SetCssClass('');
$match_outer_1->SetXhtmlId($this->GetNamingPrefix());
$match_outer_2 = new XhtmlElement('div');
$this->AddControl($match_outer_1);
$match_outer_1->AddControl($match_outer_2);
$match_outer_2->AddControl($match_box);
$heading = 'Select seasons';
if ($this->show_step_number) {
$heading .= ' – step 3 of 3';
}
$o_title_inner_1 = new XhtmlElement('span', $heading);
$o_title_inner_2 = new XhtmlElement('span', $o_title_inner_1);
$o_title_inner_3 = new XhtmlElement('span', $o_title_inner_2);
$match_box->AddControl(new XhtmlElement('h2', $o_title_inner_3, "large"));
# Preserve match title, because we need it to send the email when the seasons are saved
$title = new TextBox($this->GetNamingPrefix() . 'Title', $match->GetTitle(), $this->IsValidSubmit());
$title->SetMode(TextBoxMode::Hidden());
$match_box->AddControl($title);
# If the list of seasons includes ones in which the only match type is tournament, then
# they're annual tournaments like Expo and Seaford. Although those tournaments can be listed
# in other seasons (they're of interest to the league teams), we don't want other tournaments
# listed on pages which are supposed to be just about those annual tournaments. So exclude them
# from the collection of possible seasons. Next bit of code will add them back in for any
# tournaments which actually are meant to be in those seasons.
$seasons = $this->seasons->GetItems();
$len = count($seasons);
for ($i = 0; $i < $len; $i++) {
# Make sure only seasons which contain tournaments are listed. Necessary to include all match types
# in the Seasons() collection from the database so that we can test what other match types seasons support.
if (!$seasons[$i]->MatchTypes()->Contains(MatchType::TOURNAMENT)) {
unset($seasons[$i]);
continue;
}
if ($seasons[$i]->MatchTypes()->GetCount() == 1 and $seasons[$i]->MatchTypes()->GetFirst() == MatchType::TOURNAMENT) {
unset($seasons[$i]);
}
}
$this->seasons->SetItems($seasons);
# If the list of possible seasons doesn't include the one(s) the match is already in,
# or the ones the context team plays in, add those to the list of possibles
$a_season_ids = array();
foreach ($this->seasons as $season) {
$a_season_ids[] = $season->GetId();
}
foreach ($match->Seasons() as $season) {
if (!in_array($season->GetId(), $a_season_ids, true)) {
$this->seasons->Insert($season);
$a_season_ids[] = $season->GetId();
}
}
if (isset($this->context_team)) {
$match_year = Date::Year($match->GetStartTime());
foreach ($this->context_team->Seasons() as $team_in_season) {
/* @var $team_in_season TeamInSeason */
if (!in_array($team_in_season->GetSeasonId(), $a_season_ids, true) and ($team_in_season->GetSeason()->GetStartYear() == $match_year or $team_in_season->GetSeason()->GetEndYear() == $match_year)) {
$this->seasons->Insert($team_in_season->GetSeason());
$a_season_ids[] = $team_in_season->GetSeasonId();
}
}
}
require_once 'xhtml/forms/checkbox.class.php';
$seasons_list = '';
if ($this->seasons->GetCount()) {
# Sort the seasons by name, because they've been messed up by the code above
$this->seasons->SortByProperty('GetCompetitionName');
$match_box->AddControl(new XhtmlElement('p', 'Tick all the places we should list your tournament:'));
$match_box->AddControl('<div class="radioButtonList">');
foreach ($this->seasons as $season) {
# Select season if it's one of the seasons the match is already in
$b_season_selected = false;
foreach ($match->Seasons() as $match_season) {
$b_season_selected = ($b_season_selected or $match_season->GetId() == $season->GetId());
}
/* @var $season Season */
$box = new CheckBox($this->GetNamingPrefix() . 'Season' . $season->GetId(), $season->GetCompetitionName(), $season->GetId(), $b_season_selected, $this->IsValidSubmit());
$seasons_list .= $season->GetId() . ';';
$match_box->AddControl($box);
}
$match_box->AddControl('</div>');
# Remember all the season ids to make it much easier to find the data on postback
$seasons = new TextBox($this->GetNamingPrefix() . 'Seasons', $seasons_list, $this->IsValidSubmit());
$seasons->SetMode(TextBoxMode::Hidden());
$match_box->AddControl($seasons);
} else {
$match_month = 'in ' . Date::MonthAndYear($match->GetStartTime());
$type = strtolower(PlayerType::Text($match->GetPlayerType()));
$match_box->AddControl(new XhtmlElement('p', "Unfortunately we don't have details of any {$type} competitions {$match_month} to list your tournament in."));
//.........这里部分代码省略.........
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:101,代码来源:tournament-seasons-control.class.php
示例3: CreateFixtureControls
/**
* Creates the controls when the editor is in its fixture view
*
*/
private function CreateFixtureControls(Match $match, XhtmlElement $match_box)
{
$css_class = 'TournamentEdit';
if ($this->GetCssClass()) {
$css_class .= ' ' . $this->GetCssClass();
}
$match_outer_1 = new XhtmlElement('div');
$match_outer_1->SetCssClass($css_class);
$this->SetCssClass('');
$match_outer_1->SetXhtmlId($this->GetNamingPrefix());
$match_outer_2 = new XhtmlElement('div');
$this->AddControl($match_outer_1);
$match_outer_1->AddControl($match_outer_2);
$match_outer_2->AddControl($match_box);
if ($match->GetId()) {
$heading = "Edit tournament";
} else {
$heading = "Add your tournament";
}
if ($this->show_step_number) {
$heading .= ' – step 1 of 3';
}
$o_title_inner_1 = new XhtmlElement('span', $heading);
$o_title_inner_2 = new XhtmlElement('span', $o_title_inner_1);
$o_title_inner_3 = new XhtmlElement('span', $o_title_inner_2);
$match_box->AddControl(new XhtmlElement('h2', $o_title_inner_3, "large"));
# Tournament title
$suggested_title = $match->GetTitle();
if (isset($this->context_season)) {
$suggested_title = $this->GetContextSeason()->GetCompetition()->GetName();
if (strpos(strtolower($suggested_title), 'tournament') === false) {
$suggested_title .= ' tournament';
}
} else {
if (isset($this->context_team)) {
$suggested_title = $this->GetContextTeam()->GetName();
if (strpos(strtolower($suggested_title), 'tournament') === false) {
$suggested_title .= ' tournament';
}
}
}
if ($suggested_title == "To be confirmed tournament") {
$suggested_title = "";
}
if ($suggested_title == "To be confirmed v To be confirmed") {
$suggested_title = "";
}
$title = new TextBox($this->GetNamingPrefix() . 'Title', $suggested_title, $this->IsValidSubmit());
$title->SetMaxLength(200);
$match_box->AddControl(new FormPart('Tournament name', $title));
# Open or invite?
require_once 'xhtml/forms/radio-button.class.php';
$qualify_set = new XhtmlElement('fieldset');
$qualify_set->SetCssClass('formPart radioButtonList');
$qualify_set->AddControl(new XhtmlElement('legend', 'Who can play?', 'formLabel'));
$qualify_radios = new XhtmlElement('div', null, 'formControl');
$qualify_set->AddControl($qualify_radios);
$qualify_radios->AddControl(new RadioButton($this->GetNamingPrefix() . 'Open', $this->GetNamingPrefix() . 'Qualify', 'any team may enter', MatchQualification::OPEN_TOURNAMENT, $match->GetQualificationType() === MatchQualification::OPEN_TOURNAMENT or !$match->GetId(), $this->IsValidSubmit()));
$qualify_radios->AddControl(new RadioButton($this->GetNamingPrefix() . 'Qualify', $this->GetNamingPrefix() . 'Qualify', 'only invited or qualifying teams can enter', MatchQualification::CLOSED_TOURNAMENT, $match->GetQualificationType() === MatchQualification::CLOSED_TOURNAMENT, $this->IsValidSubmit()));
$match_box->AddControl($qualify_set);
# Player type
$suggested_type = 2;
if (isset($this->context_season)) {
$suggested_type = $this->context_season->GetCompetition()->GetPlayerType();
} elseif (isset($this->context_team)) {
$suggested_type = $this->context_team->GetPlayerType();
}
if (!is_null($match->GetPlayerType())) {
$suggested_type = $match->GetPlayerType();
}
# Saved value overrides suggestion
$player_set = new XhtmlElement('fieldset');
$player_set->SetCssClass('formPart radioButtonList');
$player_set->AddControl(new XhtmlElement('legend', 'Type of teams', 'formLabel'));
$player_radios = new XhtmlElement('div', null, 'formControl');
$player_set->AddControl($player_radios);
$player_radios_1 = new XhtmlElement('div', null, 'column');
$player_radios_2 = new XhtmlElement('div', null, 'column');
$player_radios->AddControl($player_radios_1);
$player_radios->AddControl($player_radios_2);
$player_radios_1->AddControl(new RadioButton($this->GetNamingPrefix() . 'Ladies', $this->GetNamingPrefix() . 'PlayerType', 'Ladies', 2, $suggested_type === 2, $this->IsValidSubmit()));
$player_radios_1->AddControl(new RadioButton($this->GetNamingPrefix() . 'Mixed', $this->GetNamingPrefix() . 'PlayerType', 'Mixed', 1, $suggested_type === 1, $this->IsValidSubmit()));
$player_radios_2->AddControl(new RadioButton($this->GetNamingPrefix() . 'Girls', $this->GetNamingPrefix() . 'PlayerType', 'Junior girls', 5, $suggested_type === 5, $this->IsValidSubmit()));
$player_radios_2->AddControl(new RadioButton($this->GetNamingPrefix() . 'Children', $this->GetNamingPrefix() . 'PlayerType', 'Junior mixed', 4, $suggested_type === 6, $this->IsValidSubmit()));
$match_box->AddControl($player_set);
# How many?
$per_side_box = new XhtmlSelect($this->GetNamingPrefix() . "Players", null, $this->IsValid());
$per_side_box->SetBlankFirst(true);
for ($i = 6; $i <= 16; $i++) {
$per_side_box->AddControl(new XhtmlOption($i));
}
if ($match->GetIsMaximumPlayersPerTeamKnown()) {
$per_side_box->SelectOption($match->GetMaximumPlayersPerTeam());
} else {
if (!$match->GetId()) {
# Use eight as sensible default for new tournaments
//.........这里部分代码省略.........
开发者ID:stoolball-england,项目名称:stoolball-england-website,代码行数:101,代码来源:tournament-edit-control.class.php
示例4: WorkOutPlayerType
/**
* If not explicitly specified by the user, infer the player type from the teams involved
* @param Match $match
* @return int
*/
private function WorkOutPlayerType(Match $match)
{
require_once 'stoolball/player-type.enum.php';
/* @var $match Match */
# If player type is already specified, leave it alone. That should be the case for a tournament.
if (!is_null($match->GetPlayerType())) {
return $match->GetPlayerType();
}
# Second strategy, look at the teams playing the match
$teams = $match->GetAwayTeams();
if ($match->GetHomeTeamId()) {
$teams[] = $match->GetHomeTeam();
}
if (count($teams)) {
# Get the team ids...
$team_ids = array();
foreach ($teams as $team) {
$team_ids[] = $team->GetId();
}
# And use them to get the team player types...
$sql = "SELECT DISTINCT player_type_id FROM nsa_team WHERE team_id IN (" . implode(',', $team_ids) . ")";
$result = $this->GetDataConnection()->query($sql);
$player_types = array();
while ($row = $result->fetch()) {
$player_types[] = $row->player_type_id;
}
$result->closeCursor();
return $this->WorkOutPlayerTypeHelper($player_types);
}
# Third strategy, if no teams it could be a cup match where the teams will be known later?
# Look at the player types of the seasons it's involved in.
if ($match->Seasons()->GetCount()) {
# Get the season ids...
$season_ids = array();
foreach ($match->Seasons() as $season) {
$season_ids[] = $season->GetId();
}
# And use them to get the season player types...
$season = $this->GetSettings()->GetTable('Season');
$comp = $this->GetSettings()->GetTable('Competition');
$sql = "SELECT DISTINCT player_type_id FROM {$season} INNER JOIN {$comp} ON {$season}.competition_id = {$comp}.competition_id " . "WHERE season_id IN (" . implode(',', $season_ids) . ")";
$result = $this->GetDataConnection()->query($sql);
$player_types = array();
while ($row = $result->fetch()) {
$player_types[] = $row->player_type_id;
}
$result->closeCursor();
return $this->WorkOutPlayerTypeHelper($player_types);
}
# Seems a bit unlikely you could have a match without any seasons or any teams, but just in case...
return null;
}
示例5: SaveOrMatchTournamentTeam
/**
* Finds an existing team or saves a new team and returns the id
* @param Match $tournament
* @param Team $team
* @return int
*/
public function SaveOrMatchTournamentTeam(Match $tournament, Team $team)
{
if (is_null($team->GetPlayerType())) {
$team->SetPlayerType($tournament->GetPlayerType());
}
$team = $this->MatchExistingTeam($team);
if (!$team->GetId()) {
$team->SetShortUrlPrefix($tournament->GetShortUrl());
$team = $this->MatchExistingTeam($team);
}
if (!$team->GetId()) {
$team->SetTeamType(Team::ONCE);
$team->SetGround($tournament->GetGround());
$this->SaveTeam($team);
}
return $team->GetId();
}
示例6: CreateLinkToMatch
private function CreateLinkToMatch(Match $match)
{
$text = $match->GetTitle();
# Add player type for tournaments
if ($match->GetPlayerType() and $match->GetMatchType() === MatchType::TOURNAMENT and strpos(strtolower($match->GetTitle()), strtolower(PlayerType::Text($match->GetPlayerType()))) === false) {
$text .= ' (' . htmlentities(PlayerType::Text($match->GetPlayerType()), ENT_QUOTES, "UTF-8", false) . ')';
}
$link = new XhtmlAnchor();
$link->AddControl(htmlentities($text, ENT_QUOTES, "UTF-8", false));
$link->SetNavigateUrl($match->GetNavigateUrl());
if ($this->b_microformats) {
$link->SetCssClass('summary url');
# hCalendar
$link->AddAttribute("rel", "schema:url");
$link->AddAttribute("property", "schema:name");
$title_meta = new XhtmlElement('span', ' (stoolball)');
$title_meta->SetCssClass('metadata');
$link->AddControl($title_meta);
}
return $link;
}
示例7: OnPageLoad
function OnPageLoad()
{
$is_tournament = $this->match->GetMatchType() == MatchType::TOURNAMENT;
$class = $is_tournament ? "match" : "match vevent";
?>
<div class="$class" typeof="schema:SportsEvent" about="<?php
echo Html::Encode($this->match->GetLinkedDataUri());
?>
">
<?php
require_once 'xhtml/navigation/tabs.class.php';
$tabs = array('Summary' => '');
if ($is_tournament) {
$tabs['Tournament statistics'] = $this->match->GetNavigateUrl() . '/statistics';
# Make sure the reader knows this is a tournament, and the player type
$says_tournament = strpos(strtolower($this->match->GetTitle()), 'tournament') !== false;
$player_type = PlayerType::Text($this->match->GetPlayerType());
$says_player_type = strpos(strtolower($this->match->GetTitle()), strtolower(rtrim($player_type, '\''))) !== false;
$page_title = $this->match->GetTitle() . ", " . Date::BritishDate($this->match->GetStartTime(), false);
if (!$says_tournament and !$says_player_type) {
$page_title .= ' (' . $player_type . ' stoolball tournament)';
} else {
if (!$says_tournament) {
$page_title .= ' stoolball tournament';
} else {
if (!$says_player_type) {
$page_title .= ' (' . $player_type . ')';
}
}
}
$heading = new XhtmlElement('h1', $page_title);
$heading->AddAttribute("property", "schema:name");
echo $heading;
} else {
if ($this->match->GetMatchType() == MatchType::TOURNAMENT_MATCH) {
$tabs['Match statistics'] = $this->match->GetNavigateUrl() . '/statistics';
$tabs['Tournament statistics'] = $this->match->GetTournament()->GetNavigateUrl() . '/statistics';
$page_title = $this->match->GetTitle() . " in the " . $this->match->GetTournament()->GetTitle();
} else {
$tabs['Statistics'] = $this->match->GetNavigateUrl() . '/statistics';
$page_title = $this->match->GetTitle();
}
$o_title = new XhtmlElement('h1', Html::Encode($page_title));
$o_title->AddAttribute("property", "schema:name");
# hCalendar
$o_title->SetCssClass('summary');
$o_title_meta = new XhtmlElement('span', ' (stoolball)');
$o_title_meta->SetCssClass('metadata');
$o_title->AddControl($o_title_meta);
if ($this->match->GetMatchType() !== MatchType::TOURNAMENT_MATCH) {
$o_title->AddControl(", " . Date::BritishDate($this->match->GetStartTime(), false));
}
echo $o_title;
}
echo new Tabs($tabs);
?>
<div class="box tab-box">
<div class="dataFilter"></div>
<div class="box-content">
<?php
if ($is_tournament) {
require_once 'stoolball/tournaments/tournament-control.class.php';
echo new TournamentControl($this->GetSettings(), $this->match);
} else {
require_once 'stoolball/matches/match-control.class.php';
echo new MatchControl($this->GetSettings(), $this->match);
}
$this->DisplayComments();
$this->ShowSocial();
?>
</div>
</div>
</div>
<?php
$this->AddSeparator();
# add/edit/delete options
$user_is_admin = AuthenticationManager::GetUser()->Permissions()->HasPermission(PermissionType::MANAGE_MATCHES);
$user_is_owner = AuthenticationManager::GetUser()->GetId() == $this->match->GetAddedBy()->GetId();
$panel = new UserEditPanel($this->GetSettings(), 'this match');
$panel->AddCssClass("with-tabs");
if ($user_is_admin or $user_is_owner) {
$link_text = $is_tournament ? 'tournament' : 'match';
$panel->AddLink('edit this ' . $link_text, $this->match->GetEditNavigateUrl());
} else {
if ($this->match->GetMatchType() != MatchType::PRACTICE and !$is_tournament) {
$panel->AddLink('update result', $this->match->GetEditNavigateUrl());
}
}
if ($is_tournament) {
$panel->AddCssClass("with-tabs");
if ($user_is_admin or $user_is_owner) {
$panel->AddLink('add or remove teams', $this->match->EditTournamentTeamsUrl());
}
$panel->AddLink('add or remove matches', $this->match->GetEditTournamentMatchesUrl());
if (count($this->match->GetMatchesInTournament())) {
$panel->AddLink('update results', $this->match->GetNavigateUrl() . "/matches/results");
}
}
if ($user_is_admin or $user_is_owner) {
if ($is_tournament) {
//.........这里部分代码省略.........