/** * 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); } }
/** * @return void * @desc Re-build from data posted by this control the data object this control * is editing */ function BuildPostedDataObject() { $club = new Club($this->GetSettings()); if (isset($_POST['item'])) { $club->SetId($_POST['item']); } $club->SetName($_POST['name']); $club->SetTypeOfClub(isset($_POST['school']) ? Club::SCHOOL : Club::STOOLBALL_CLUB); $club->SetHowManyPlayers($_POST['how_many_players']); $club->SetAgeRangeLower($_POST['age_range_lower']); $club->SetAgeRangeUpper($_POST['age_range_upper']); $club->SetPlaysOutdoors(isset($_POST['outdoors'])); $club->SetPlaysIndoors(isset($_POST['indoors'])); $club->SetClubmarkAccredited(isset($_POST['clubmark'])); $club->SetTwitterAccount($_POST['twitter']); $club->SetFacebookUrl($_POST['facebook']); $club->SetInstagramAccount($_POST['instagram']); $club->SetShortUrl($_POST[$this->GetNamingPrefix() . 'ShortUrl']); $this->SetDataObject($club); }