PHP | Problem -
<?php
class Fixture extends DataObject {
static $db = array(
"Date" => "Datetime",
);
static $has_one = array(
"FixturePage" => "FixturePage",
"HomeTeam" => "Team",
"AwayTeam" => "Team",
"Tournament" => "Tournament",
"Game" => "Game"
);
static $belongs_many_many = array(
"Rounds" => "Round"
);
static $summary_fields = array(
'Date' => 'Date',
'HomeTeam.Title' => 'Home Team',
'AwayTeam.Title' => 'Away Team',
'Tournament.Title' => 'Tournament'
);
public function getTitle() {
return "{$this->HomeTeam()->Title} vs. {$this->AwayTeam()->Title}";
}
public function populateDefaults(){
parent::populateDefaults();
$this->setField('Date', date('Y-m-d H:i:s', strtotime('now')));
}
public function getCmsFields() {
$fields = parent::getCmsFields();
// General Tab
$fields->addFieldToTab("Root.Main", new HeaderField("General"));
$fields->addFieldToTab("Root.Main", $dateField = new DatetimeField("Date", "Date"));
$dateField->getDateField()->setConfig('showcalendar', true);
$dateField->getDateField()->setConfig('jQueryUI.changeYear', true);
$dateField->getTimeField()->setConfig('showdropdown', true);
$fields->addFieldToTab("Root.Main", $dropdownTour = new DropdownField("TournamentID", "Tournament", Tournament::get()->map('ID', 'EventTourTitle')));
$fields->addFieldToTab("Root.Main", $dropdownGame = new DropdownField("GameID", "Game", Game::get()->map('ID')));
// Team Setup Tab
$fields->addFieldToTab("Root.Main", new HeaderField("Team Setup", "3"));
// Home Team
$fields->addFieldToTab("Root.Main", new HeaderField("Home Properties", "4"));
$fields->addFieldToTab("Root.Main", $dropdownHome = new DropdownField("HomeTeamID", "Home Team", Team::get()->map('ID')));
// Away Team
$fields->addFieldToTab("Root.Main", new HeaderField("Away Properties", "4"));
$fields->addFieldToTab("Root.Main", $dropdownAway = new DropdownField("AwayTeamID", "Away Team", Team::get()->map('ID')));
$dropdownHome->setEmptyString('Select Home Team');
$dropdownAway->setEmptyString('Select Away Team');
$dropdownTour->setEmptyString('Select Tournament');
$dropdownGame->setEmptyString('Select Game');
return $fields;
}
public function getCMSValidator() {
return new RequiredFields('Date', 'TournamentID', 'GameID', 'HomeTeamID', 'AwayTeamID');
}
public function validate() {
$result = parent::validate();
if($this->HomeTeamID == $this->AwayTeamID) {
$result->error('error message');
}
return $result;
}
public function Link()
{
if($FixturePage = $this->FixturePage())
{
$Action = 'show/' . $this->ID;
return $FixturePage->Link($Action);
}
}
}