Пример #1
0
 /**
  * 
  */
 public function buildSearchTable()
 {
     self::put('Zoekresultaten maken');
     // Personen
     $aPersons = Person::getAll();
     $personCount = 0;
     $deletePersonCount = 0;
     foreach ($aPersons as $oPerson) {
         $query = "SELECT DISTINCT(Team.competition_nefub_id), Competition.id\n\t\t\t\t\t\tFROM TeamPerson\n\t\t\t\t\t\tLEFT JOIN Team ON Team.nefub_id = TeamPerson.team_nefub_id\n\t\t\t\t\t\tLEFT JOIN Competition ON Team.competition_nefub_id = Competition.nefub_id\n\t\t\t\t\t\tWHERE TeamPerson.person_nefub_id = '" . $oPerson->nefub_id . "'\n\t\t\t\t\t\tAND Competition.season_nefub_id  = '" . Season::getInstance()->nefub_id . "'\n\t\t\t\t\t\tORDER BY Team.competition_nefub_id ASC";
         $aCompetitions = Competition::getAllFromQuery($query);
         $personCompetitions = array();
         foreach ($aCompetitions as $oCompetition) {
             if (trim($oCompetition->name)) {
                 $personCompetitions[] = $oCompetition->name;
             }
         }
         if (count($personCompetitions)) {
             $oSearchResult = SearchResult::selectByNefubId($oPerson->nefub_id, 'person');
             if (!$oSearchResult) {
                 $oSearchResult = new SearchResult();
                 $oSearchResult->nefub_id = $oPerson->nefub_id;
                 $oSearchResult->type = 'person';
                 $oSearchResult->url = '/persoon/' . $oPerson->nefub_id;
                 $personCount++;
             }
             $oSearchResult->name = $oPerson->name;
             $oSearchResult->subtitle = implode(', ', $personCompetitions);
             $oSearchResult->save();
         } else {
             $deletePersonCount += Database::delete_rows('SearchResult', array('nefub_id' => $oPerson->nefub_id, 'type' => 'person'));
         }
     }
     self::put($deletePersonCount . ' perso(o)n(en) verwijderd van zoekresultatenlijst');
     self::put($personCount . ' perso(o)n(en) toegevoegd aan zoekresultatenlijst');
     // Teams
     $aTeams = Team::getAll();
     $teamCount = 0;
     $deleteTeamCount = 0;
     foreach ($aTeams as $oTeam) {
         if ($oTeam->getCompetition() && $oTeam->season_nefub_id == Season::getInstance()->nefub_id) {
             $oSearchResult = SearchResult::selectByNefubId($oTeam->nefub_id, 'team');
             if (!$oSearchResult) {
                 $oSearchResult = new SearchResult();
                 $oSearchResult->nefub_id = $oTeam->nefub_id;
                 $oSearchResult->name = $oTeam->name;
                 $oSearchResult->type = 'team';
                 $oSearchResult->url = '/team/' . $oTeam->nefub_id;
                 $teamCount++;
             }
             $oSearchResult->subtitle = $oTeam->getCompetition()->name;
             $oSearchResult->save();
         } else {
             $deleteTeamCount += Database::delete_rows('SearchResult', array('nefub_id' => $oTeam->nefub_id, 'type' => 'team'));
         }
     }
     self::put($deleteTeamCount . ' team(s) verwijderd van zoekresultatenlijst');
     self::put($teamCount . ' team(s) toegevoegd aan zoekresultatenlijst');
 }